# CS156_Machine Learning Course Lecture 03 -The Linear Model I ###### tags: `CS156` `Machine Learning` [撥放清單](https://www.youtube.com/watch?v=mbyG85GZ0PI&list=PLD63A284B7615313A) [課程連結](https://www.youtube.com/watch?v=FIbVs5GbBlQ) ## Review of Lecture 2 - [ ] 0.31 ![](https://i.imgur.com/5ZdgM7d.jpg) 上一堂課我們討論學習的可行性,但那只是在機率的意義上可行。我們根據擁有樣本外效果的箱子在機率意義上做了建模的動作。我們並不知道樣本外的效果如何,因此,為了能夠知道$E_{out}(h)$,我們利用樣本內的資料透過Hoeffding Inequality來跟蹤樣本外的資料,我們認為$E_{in}$偏離$E_{out}$會超過容忍值$\epsilon$的機率是很小的,如下公式: $\mathbb{P}[\vert E_{in}(h) - E_{out}(h) \vert > \epsilon] \leq 2e^{-2\epsilon^2N}$ 其中$N$代表樣本數量,因為是個負指數,因此$N$愈大,這偏離的機率就愈小。不過上面的公式只適用於單一個箱子的情況,也就是只適用於只有一個hypothesis的情況。因此,當我們看一個擁有完整模型的情況時,(我們假設它是擁有$M$個有限hypothesis的hypothesis set)適用什麼? 從不良的泛化意義上來看,如果第一個hypothesis有0.5%的機率是不好的,然後第二個hypothesis也有0.5%的機率是不好的,那我們可能會很倒楣的讓這0.5%的機率不斷的累積,最終會有很大的可能,其中一個hypothesis是不好的。當其中一個hypothesis是不好的,而我們真的那麼倒楣的選擇這個hypothesis做為最終的那一個hypothesis的話,那$E_{in}$就無法跟蹤到$E_{out}$,這代表它們之間的偏離就會很大。 我們的概念很簡單,$g$是最終所選擇的那個hypothesis,這個$g$同時也是$M$的成員之一。那$E_{in}$無法成功跟蹤$E_{out}$的機率就會變成是所有hypothesis,其$E_{in}$無法成功跟蹤$E_{out}$的機率總和。道理很簡單,因為$g$是成員之一,如果$g$是不好的,那你就是從這$M$個hypothesis中選到其中一個,再利用union bound的觀念,也就是這些不好的事情發生的事件最多就是機率的總和。我們不考慮事件之間的機率是否存在重疊,因為我們直接考慮worst-case,也就是最壞的情況。 對於模型的假設而言,事件可能不是獨立的,因為我們擁有相同的樣本,變的就只有hypothesis。因此不同的hypothesis的偏差就會跟另一個hypothesis可能是有關的。但因為我們採用union bound,因此這些都跟我們無關,不管相關性如何,我們都bound住這個事件發生的可能性。所以最終我們得到的不等式就變成: $\mathbb{P}[\vert E_{in}(h) - E_{out}(h) \vert > \epsilon] \leq 2Me^{-2\epsilon^2N}$ 現在又出現問題了,當你的hypothesis set愈大,那$M$就愈大,那這個機率就會變的更大,某些時候甚至會變成沒有意義。 目前為止我們還沒有確定學習的最終結果,我們只是建立一個原則,那就是透過學習是可以泛化的。我們將會花一點時間來說明,一個通用的學習模型(無限模型)是可以泛化的,而且是可以成功的將它bound住的。 ## Outline - [ ] 6.04 ![](https://i.imgur.com/EJFMa65.jpg) 這堂課程中我們會從資料開始,並且在課程中反複的使用這些資料。接著會利用第一堂課說明過的perceptron,將其泛化應用到不可分離的資料。因為我們知道perceptron可以應用於線性可分的資料,因此我們想知道當它應用在線性不可分的資料時會發生什麼事。 接下來再將模型泛化至非二分類的函數,而是一個實數函數(real-valued function)。其中Linear Regression是最重要的技術之一。一樣的會討論到泛化至非線性的情況。 ## A real data set - [ ] 8.21 ![](https://i.imgur.com/IxXg0fV.jpg) 首先從資料開始看,不論你對你所生成的玩票性質的資料集有多麼肯定,你都應該要試著去得到一個實際的資料集並確認在系統上實際的效能如何。 上圖顯示出我們的資料集,來自郵局中的郵政編碼,將人所寫的郵政編碼提取單個字符(單個數字),大小為16x16,灰階圖片。這看起來很簡單,只是有些字不同人寫起來就是模稜兩可的,像7又像1,像0又像8的。 如果讓操作員來看這些數字,會有著2.5%的誤差率,如果學習模型可以來到這個誤差率,甚至超過,那我們就可以讓流程自動化。 ## Input representation - [ ] 12.51 ![](https://i.imgur.com/HbztJ67.jpg) 上圖右是輸入的圖片,這圖片剛才說過是16x16 pixels,代表它有著16x16=256個實數輸入。因此,它的輸入$\textbf{x}=(x_0,x_1,x_2,\cdots,x_{256})$,這邊的$x_0$在線性模型中是一個constant coordinate(常數座標),賦值為1。每一個輸入都會對應一個$w$,因此$w$也是從$w_0, w_1,\cdots, w_{256}$ 在這種情況下,我們直接使用perceptron會發現,這個線性模型存在著太多的參數,有著256+1=257個參數,這是一個很大的空間。然後這個糟糕的演算法(poor algorithm)會試著用你的集合同時確認所有的$w$的值。 我們要知道的是,重要的可能不是那單一的像素的值,我們可能可以從這個圖片輸入中提取一些特徵,然後再將提取出來的特徵提供給演算法,再讓演算法來找出模式(pattern)。 這給了我們一個想法,我們不必要將每一個pixel做為輸入,而是從影像中提取出影像的描述符(descriptor)。所以我們根據這個圖片中的數值是多少,會有強度與平均強度的問題。舉例來說,1沒有很多黑色的點,但8是有的很多的,而5可能有一點之類的。所以如果我們將所有像素的強度加總,那可能可以得到一個與身份相關的數值,這是一種原始信息的較高層次的表示。 以對稱性來看,把1左右、上下翻轉可以發現,重疊的區域是蠻大的。所以我們可以定義一個對稱的度量方式,以此得到原始與翻轉之後的差異。如果是1,那得到的差異值就會比較小,如果是5,那或許就會比較大一點。 以上面兩個抽象表示,我們得到的新的$\textbf{x}=(x_0,x_1,x_2)$,從256+1個特徵降到剩2+1個特徵,一個是強度,一個是對稱性。當然,這個過程中可能我們會遺失很多信息,但你失去的可能也是無效信息。因此,對學習演算法而言,這樣的輸入是一種很好的representation(表示)。 我們成功的將特徵從256+1降為2+1,這意味著這個線性模型也剩下$w_0,w_1,w_2$。 ## Illustration of features - [ ] 14.50 ![](https://i.imgur.com/Sfm7MQp.jpg) 現在我們的資料經過剛才的整理得到兩個特徵,分別是$x_1$: 強度(intensity),$x_2$: 對稱性(Symmetry)。如果我們將這兩個特徵分佈可視化來看就會得到上面簡報的結果。這邊只取1、5的比較,可以發現,就分佈而言,5的強度是高過於1的,但對稱性來說則是1高過於5。另外一個值得觀察的是,這個分佈已經幾乎是線性可分。但要完全的分離那是不可能的,以左上角那個點來看,雖然看起來就是一條線,但是對寫這個數字的人來說它確實是5,它的分佈已經是在1的那個cluster上面。因此無論如何我們總是會有一些小誤差,但不希望是一個很大的誤差。 ## What PLA does - [ ] 18.25 ![](https://i.imgur.com/qchWB0u.jpg) 現在聊聊perceptron learning algorithm(PLA)的作用。PLA主要將$E_{in}$、$E_{out}$的演化視為迭代函數。當我們使用PLA的時候,主要將演算法用於$E_{in}$,要記得,我們並不知道$E_{out}$是什麼。 上圖來看,$x$軸是迭代次數,綠線色為$E_{in}$,紫色為$E_{out}$,因為PLA一次只會關注一個點,因此在好一個資料點的時候可能會造成其它資料點的錯誤,因此綠色線會有上上下下的波動。而且資料不是線性可分的情況下,PLA的效能非常不好,只需要一次的迭代就可能讓資料變差,而且因為是線性不可分,因此PLA永遠都不會收斂。這個範例中,我們強迫演算法在第1000次的迭代停止,這邊得到的hypothesis就稱為$g$。 雖然我們說$E_{out}$是未知的,但為了說明這邊還是有繪製出一條線。結果來看,$E_{in}$很好的隨著$E_{out}$的軌跡,兩者的波動幾乎是一致的,而綠色與紫色線中間的gap就是$\epsilon$。 最終演算法的決策邊界就像上圖右的Final perceptron boundary,那條線就是最終的hypothesis所決定出來的boundary。 ## The 'pocket' algorithm - [ ] 19.57 ![](https://i.imgur.com/HfqHt5e.jpg) pocket algorithm,人如其名,就是將目前為止最好的那一個algorithm放在你的口袋名單中,當你遇到一個更好的algorithm的時候,再把口袋那一個換掉。相較PLA,我們知道過程中某一個hypothesis是好的,但是我們留不住它,pocket algorithm是可以原汁原味的保留最好的那一個。如上圖右所呈現,採用pocket algorithm所得到的$E_{in}, E_{out}$的結果是完全與PLA不一樣的。 ## Classification boundary - PLA versus Pocket - [ ] 20.56 ![](https://i.imgur.com/tMl1aT3.jpg) 上面說明,當我們使用PLA執行到最後的時候所得的決策邊界與使用Pocket之間的差異,很明顯的,Pocket的選擇是我們一般會選擇的結果。可以更好的分離資料。不用擔心過了這個村就沒這東西可以買的情形。 ## Outline - [ ] 21.49 ![](https://i.imgur.com/0yv4V1Y.jpg) 現在我們要開始進入Linear Regression,regression這個詞意味著其輸出是real-valued,沒有其它的意義。只要是real-valed function,就可以稱為regression problem。線性回歸常被應用於統計與經濟學中。 課程中舉一個例子,假設想知道學生畢業十年後的年收入與他在校時期各科成績的相關性,那模型的output就是十年後的年收入,輸入就是在校時期的各科成績,以這樣的資料集來做訓練就可以知道什麼樣的科系對十年後的年收入影響是大的(線性回歸訓練之後會得到各特徵的權重,這權重就可以做為重要性的表示)。 ## Credit again - [ ] 27.29 ![](https://i.imgur.com/xW5Doqz.jpg) 為了能夠跟分類問題有所比較,再以信用卡申請為例說明。在分類問題中,我們希望得到的是是否放款,但在線性回歸中,剛才說過是一個real-valued function,也就是輸出是一個數值,這意謂著我們做的是預測要給客戶的信用額度。 輸入$x$的部份可能跟先前是否放款的是一樣的,有客戶的相關資訊,年紀、年收、工作年資、當前負債…等等。從年收來看,如果年收30000,你可能不會放給他200000的信用額度,對吧。其它的部份則是跟一個人的穩定度有關。 其輸出形式如此公式:$h(x)=\sum^d_{i=0}w_ix_i=w^Tx$(最右邊是以向量化來表示)。就線性回歸而言,輸出是real-valued,事實上它的輸入$x$是一種線性輸入。這個公式跟先前的公式很像,差別在於閥值,在談分類問題的時候,超過閥值就是+1,低於閥值就是-1,拿掉閥值那就是一個信用評分。但我們現在的案例中,這個沒有閥值的輸出就是可以放款的額度。 ## The data set - [ ] 28.52 ![](https://i.imgur.com/If1AF9d.jpg) 資料集一樣是一個data pair,其中$x$為客戶資料,$y$為信用額度且$y \in \mathbb{R}$。 ## How to measure the error - [ ] 31.21 ![](https://i.imgur.com/UGQGGCI.jpg) 在瞭解線性回歸在做什麼之前,我們要先知道怎麼測量誤差。首先,我們的hypothesis $h(x)=w^Tx$,其中$w$是權重,權重會決定你得到怎麼樣的hypothesis,好的hypothesis會很好的近似$f(x)$,不好的hypothesis則沒辦法很好的近似$f(x)$,我們希望將這個好、不好做一個量化,將這個量化之後的值做為演算法的調整指南,以此為依據從一個hypothesis調整為另一個hypothesis。因此我們要定義一個誤差的估測方式,然後演算法會試著最小化這個誤差值。 在線性回歸中,使用的誤差函數(error function)稱為squared error,$(h(x) - f(x))^2$。在先前課程提到二分類問題中,我們計算的是分類錯誤的頻率(frequency),以此得到$E_{in}, E_{out}$。在線性回歸中,如果某一個用戶實際得到的放款是1000,那線性回歸輸出900,那可能還不錯,但反過來,如果實際得到的放款是1000,但線性回歸輸出5000,那就不是很好的結果。所以我們需要衡量這個結果有多糟,我們希望結果不是那麼糟。 整個in-sample error的加總為$E_{in}(h)=\dfrac{1}{N}\sum^N_{n=1}(h(x)-y_n)^2$,不同的$h$會有不同的error,我們加總的是整個in-sample所有的error,再取其平均。這樣就可以明白hypothesis在這個資料集上的表現。然後我們希望演算法可以將這個誤差最小化。 ## Illustration of linear regression - [ ] 33.32 ![](https://i.imgur.com/79m2u4t.jpg) 上面給出一個簡單的線性回歸範例,輸入是一維,也就是只有一個相關變數,$x$。範例中假設這個$x$是你的在學成績GPA,而$y$則是你十年後的年收入。線性回歸會繪製出一條線(藍色線),根據平方誤差來擬合這個資料集。 上圖,$y$軸上的點(高度)取決於$x_0$,也就是bias,而斜率則取決於$x_1$,也就是在學成績的GPA。從這條回歸線也可以看的到,這並不能完美的擬合整個資料集,因此會有誤差,這個誤差如上圖紅線所呈現,每個資料點到回歸線且垂直$x$的距離就是誤差值。將這些紅色線到回歸線的距離加總就是我們課程中所提的樣本內誤差。 線性回歸可以適用於多維度資料,只是課程中為了說明才會用單純的一個變數來呈現,圖右即為兩個變數的三維情況。基本上的觀念是一樣的。這時候切割的就不再是一條線,而是一個超平面,比空間維度還要小一維的超平面。 ## The expression for $E_{in}$ - [ ] 36.23 ![](https://i.imgur.com/HkxUlST.jpg) 這邊給出$E_{in}$的表達式:$E_{in}=\dfrac{1}{N}\sum_{n=1}^N(h(x_n)-y_n)^2$,以hypothesis所得的output,$h(x)$,來減掉實際值$y$的平方,然後加總取平均,也就是平方誤差(squared error),其中$h(x)=w^Tx$。如果以向量化來表示的話,那$E_{in}=\dfrac{1}{N} \Vert \text{X}w-\text{y} \Vert^2$。 可以發現以向量化來表示的時候整個式子是比較簡潔的,其中$\text{X}$是每一筆資料的轉置所堆疊起來,如果你資料多的話那它可以是一個很高的向量,$\text{y}$則是相對應的label或value。 ## Minimizing $E_{in}$ - [ ] 39.53 ![](https://i.imgur.com/mOO360Y.jpg) 當我們要做最小化$E_{in}$的時候可以發現,$\text{X}, \text{y}$基本上都是不變的,會變的就只有$w$,因此這個最小化過程就是跟$w$有關,寫為$E_{in}(w)=\dfrac{1}{N}\Vert \text{X}w-\text{y} \Vert^2$。 優化過程中我們會計算導數,也就是$\nabla E_{in}(w)=\dfrac{2}{N}\text{X}^T(\text{X}w-\text{y})$,然後我們希望求得最小值,也就是0。帶入之後會發現,在$\text{X}^T\text{X}w=\text{X}^T\text{y}$的時候就會是0。 值得注意的是,雖然剛才說過$\text{X}$是一個很高的矩陣,但不是方陣,不可逆,但是$\text{X}^T\text{X}$卻是一個方陣,那就可逆了,我們就會得到$w=\text{X}^\dagger \text{y}$($\dagger$音為dagger),其中$\text{X}^\dagger = (\text{X}^T\text{X})^{-1}\text{X}^T$。 $\text{X}^\dagger$又稱為$\text{X}$的pseudo-inverse(偽逆),這樣的求解方式又稱為Normal Equation,正規方程式。 ## The pseudo-inverse - [ ] 42.27 ![](https://i.imgur.com/yzQ9nnH.jpg) - [ ] 43.25 ![](https://i.imgur.com/m3eZ8Of.jpg) $\text{X}^\dagger = (\text{X}^T\text{X})^{-1}\text{X}^T$,這是稍早提到計算pseudo-inverse以得到線性回歸的解。 雖然矩陣的維度看似很大,但轉置之後會自己再做一次相乘留下的就只有$d+1 \text{ x } d+1$,其中$d$是你的資料維度,如果你的資料有2個特徵,那這邊計算之後就只會是一個3x3的矩陣。然後再計算這個矩陣的inverse,再乘上資料轉置。不過這些事通常都是軟體會處理掉,不用太擔心,有個概念就好。 ## The linear regression algorithm - [ ] 44.25 ![](https://i.imgur.com/XHbrwOU.jpg) 這邊給出一個完整的線性回歸演算法,只有簡單的三步驟: 1. 建構你的資料,讓你的輸入資料$\text{X}$的每一個row都是你的資料集,每一個column都是你的特徵,$\text{y}$則是相對應的target vector 2. 計算pseudo-inverse 3. 計算$w=\text{X}^\dagger\text{y}$ 這種方式可以稱為one-step learning。 ## Linear regression for classification - [ ] 49.07 ![](https://i.imgur.com/ZmJHo4h.jpg) 相同的方法還可以應用於分類問題,以線性回歸來看,學到的是一個real-valued function,也就是$y=f(x) \in \mathbb{R}$,但二分類問題的結果來看,+1、-1也是real-valued,因為$\pm 1 \in \mathbb{R}$。 一樣的,我們利用線性回歸,用一個$w$讓$w^Tx_n \approx y_n$,其中$y_n$是$\pm 1$,然後$w^Tx_n$會接近$\pm 1$。 ## Linear regression boundary - [ ] 49.12 ![](https://i.imgur.com/AeCrN7q.jpg) 這邊給出線性回歸應用於分類的決策邊界。這範例之前看過了,藍色(+1)、粉紅(-1)各為不同分類的區域,有一條線分割這個區間,一邊得到的是+1(藍色),一邊得到的是-1(粉色)。我們試著利用符號讓real-valued function來解釋分類。但線性回歸有一個問題,那就是我們試著讓每一個點都是-1(粉色區來說),但有些距離較遠的資料點我們還是把它視為-1來計算,這就有問題了。這並不是真正的分類,但是一個不錯的開始。 個人認知,將線性回歸直接應用於分類,較遠的資料點會影響較重,讓整條回歸線為了擬合而傾向該資料點。 ## Linear is limited - [ ] 52.08 ![](https://i.imgur.com/NliDqc1.jpg) 我們可能會發現到,當我們處理的是線性不可分的資料時,其實我們處理的是基本上可分離的不可分的資料(少數資料除外)。以上圖為例,藍圈為+1,紅叉為-1,很明顯的這是一個線性不可分的資料。但如果我們的hypothesis可以有非線性的決策邊界(上圖右),那就可以分割這個資料集了。只是那並不是線性的hypothesis,還沒有學到這邊。課程中就是要跟你說用線性的hypothesis來處理這個問題。 ## Another example - [ ] 54.29 ![](https://i.imgur.com/uYFPGYY.jpg) 以信用放款或額度的範例來看,課程中提過一個特徵就是居住時間,居住在一個地方愈長的似乎代表穩定與值得信賴,這似乎是一個影響輸出結果的變數,換一種說法,這似乎是一個線性影響輸出的變數。也就是居住時間愈長,放的款似乎就會愈多的概念。如果我們可以用非線性特徵來取代它,可能居住未滿一年的就視為不穩定,超過五年的就視為穩定,用這種方式來取代原始的線性關係。 現在另一個問題是,都變非線性特徵了,那線性在那? ## Linear in what? - [ ] 56.09 ![](https://i.imgur.com/olkGzR2.jpg) 回頭看線性回歸,主要計算來自線性公式$\sum^d_{i=0}w_ix_i$,線性分類的話也是一樣,差別在於有一個標記函數(sign function)依著線性計算所得結果來決定類別。如果是採用求導的方式求解,那會因為$w$是線性的而可行,因為這種情況下$x$就像是一個常數一般不變的,它可以是任意值。我們可以對這個輸入$x$做非線性的轉換,讓它僅僅保留更為複雜的資料,但維持不變。而當我們用著這個非線性資料來做訓練的時候,會因為$w$而讓它仍然是處於線性模型狀態,非線性特徵會具有線性依賴性。 這邊說明的應該是,你的模型取決於權重$w$,求導過程中你求的也是$w$對loss function的導數,有推導過的就會知道,得到的就是相對應的input feature,所以即使你的input是非線性的也無所謂,在過程中它只是一個常數般的存在,$w$是線性就可以了。 ## Transform the data nonlinearly - [ ] 58.03 ![](https://i.imgur.com/dPw52QC.jpg) 回到剛才的問題,我們的資料是一個二維的資料並且不考慮bias($x_0$),假設這個二維的資料是座標,將上圖左的中間想像成是一個中心點,然後做一個非線性的處理,就是將兩個特徵都取平方,有一點在計算距離的感覺,我們會發現這樣處理之後可以得到圖右的結果,它變成線性可分了。這時候你也只需要利用感知器就可以完美的分割資料集了。 後續新的資料點只要用相同的作法先做非線性轉換,就可以進行分類預測。 ## QA Q1:如果系統化而非從資料中找出非線性轉換? A1:非線性轉換是一個後續會說明的問題,而且非線性轉換跟泛化的問題習習相關,當我們的特徵做非線性轉換,可能用更複雜的多項式處理,這會對模型的泛化造成影響。這都會在後續的課程中再提出,也只在在瞭解相關理論之後才能更清楚如何處理。 Q2:簡報第15頁有一個問題,樣本內、外的誤差跟課程提過的機率有什麼關係? A2:我們這邊只處理樣本內誤差,因此只有寫出$E_{in}$。通常在學習過程中,我們只會處理樣本內的誤差。換個方式來說,樣本內弄的好,樣本外就也可以弄的好。因此我們不會處理樣本外的問題,就只處理樣本內的,然後從理論上來保證樣本內好棒棒,那樣本外就沒問題,這就可以了。我們在計算線性回歸的誤差時,所計算的是均方誤差,也就是平方加總之後取平均。因此,當我們在定義樣本外誤差的時候,其實就是計算平方誤差的期望值。在二分類問題中,我們所計算的就是錯誤的筆數取平均,其實就是錯誤的機率,也就是錯誤的期望值。 Q3:在學期成績與未來收入的範例中,我感興趣的是,我們可以從何處取得資料? A3:很明顯的,每一所學校的校友會都會持續的追蹤校友的發展。 Q4:為什麼線性回歸中要包含$w_0$?在二分類問題中,為什麼將$y$以+1、-1來表示是可以行的。 A4:首先回答threshold這個問題,從簡報第13頁可以看的出來,這條回歸線並不是homogeneous line(齊次線),它並沒有通過原點。如果不加入threshold,那這條線就會通過原點。通常根據這些變數會有一些偏移值,而這個偏移就由threshold來補償。第二個問題,如果採用線性回歸,那我們可以做到的保證就是hypothesis的輸出與樣本的平方誤差會是最小。當輸出變成是+1、-1的時候,我們的hypothesis的輸出會接近+1或-1,而且擁有均方誤差,如果你接近+1而不是-1,那至少會是positive,而接近-1的時候則是negative。(後面不是很清楚老師的說明,避免誤人子弟不再記錄) Q5:通常應該如何提取特徵? A5:最好的方法就是看一下原始資料,看一下問題,然後試著找出對這個問題有意義的特徵。沒有那種通用的方法,只有看著你的資料還有問題來嚐試。轉換過的資料也都是特徵,特徵的特徵也是特徵。 Q6:是否資料不為i.i.d就無法在上面有任何的假設? A6:當我們得到輸入的時候,問題便是獨立性與依賴性,並且用獨立性來得到泛化的邊界。假設我們有$N$個input,我們希望這些輸入是根據某一個機率分佈獨立生成的。如果這些資料是獨立的,那轉換之後它還是獨立的。 Q7:是否存在一種使用不同超平面與交集來分離資料的方法? A7:我們現在說的線性模型是很多模型的基礎,如果採用帶有soft-threshold的線性模型,而不是hard-threshold,把它們放在一起那就是神經網路了。如果採用線性模型,然後試著以原則方法選擇分離的邊界,那就是支援向量機。如果用非線性轉換然後找到一種高效的計算,那就是kernel method。 Q8:如果系統性的評估$E_{in},E_{out}$的好壞? A8:這是理論問題,$E_{in}$可以很好的估測,找出可以讓誤差最小的那一個hypothesis就是,但樣本外的,也就是$E_{out}$,後續會有理論說明一些方法來估測。但,總體來說,我們靠的是先前課程說過的理論,樣本內跟蹤樣本外的誤差,樣本內好,那樣本外就好。好比先前課程說明感知器,樣本內與樣本外的誤差走勢幾乎一致,那就是好的。 A9:如果擬合的是一個多項式資料,那仍然是線性回歸嗎? Q9:確實的。想像你有一個資料點,你把它做多項式的轉換,然後擬合一條通往新空間的線(就是那個多項式空間的線),新空間中的線仍然是舊空間中的多項式。 Q10:線性回歸中的最小平方法與最大似乎估計之間有什麼關係? A10:統計文獻中的線性回歸對於機率與噪點的假設甚多。某些情況下,你可以將之與最大似然相關聯。也許可以說,有著平方誤差的高斯,這種情況下,將之最小化就會對應最大似然。因此是有相關性的。在機器學習背景下實作線性回歸的一個好處,就是不用對分佈有過多的假設,因為我們希望的是應用在一般情況,而不是特定情況。 Q11:能否至少給出一組常用的非線性轉換? A11:在SVM中我們可以做很多轉換,像是多項式,又或者其中一個好用的函數,radial basis function(徑向基函數)。這後續都會有相關理論的說明。 Q12:機器學習是否不可能找到偽隨機數生成器(Pseudo-Random Number Generator)的模式? A12:Pseudo-Random在獲得種子(seed)之後就可以生成它。但通常使用的方式是使用Pseudo-Random number,然後取幾位數來做為不同輸入的輸出。因此要單純的觀察輸入來做解密是幾乎不可能的事。 Q13:連續響應(continuous responses)與離散響應(discrete responses)有什麼不同的處理方式嗎? A13:這是由問題來決定,以假用放款範例來看,如果要決定的是要不要放款,那就會採用分類的hypothesis set,如果要決定的是貸款額度,那就會使用回歸,因此這是取決於問題本身。 Q13:是什麼原因讓非線性轉換做的更好? A13:後續課程理論之後再說明會比較好,本次的課程只是單純的讓大家知道可以用非線性轉換來處理線性不可分的資料集。