close

本課程第一週的第二部分,開始介紹迴歸 (regression) 的相關細節,

image

所謂的Regression 指的就是針對連續性的input 和output 去建立關係,

如果要利用房屋的尺寸來預測價格,

首先就是把歷史資料如同上圖中的紅色叉叉一樣畫出來,然後用一條方程式去試圖概括這些歷史資料,

因為正確的答案有被拿來建模,所以是屬於 supervised learning ,

而只要這條方程式被建立起來,假設我們有個1250 feet2 的房子,就能代入這條方程式去算出其價格,

image

術語上,這些有進入模型的資料我們稱之為「訓練組」 training set,x/y 分別是輸入/輸出值,x又被稱之為「特徵」feature,

一般習慣用m來表現資料數量,然後會以類似次方的形式標在右上角來表示是第幾組資料。

建立起來的關聯就是我們的方程式,也就是「模型」,通常會用f來表示。

image

那這個用來描述input/output 關聯的方程式該如何定義呢? 

在機器學習的世界中,正是由演算法來幫忙完成這件事,而在房價例子中,我們使用的手法叫做「線性迴歸」 linear regression,

最簡單的一元變數方程式是 f=wx+b,w和b分別是國中學過的斜率slope和截距intercept,又可以被稱為univariate linear regression,

反之如果有多重變數,就是multivariate。

透過改變 w 和 b,就可以生出各種不同的「模型」,

而機器學習就是用這些模型去針對input 做出許多不同的估計值 (y-hat),y-hat和真實值y的差異最小的,就是最好的模型。

要評估 y-hat 與 y 之間的差異,當然就需要另外一條方程式,叫做 cost function (中文好像常翻成「代價函數」)

image

在上面的投影片中,左邊便示範了剛講的情境,假設我們用某個特定的線性方程式去擬合 (fitting) 6筆資料, 

對於左邊數來第三筆資料就會產生一個估計值 (紫色圓圈,y-hat(i)),但是那筆資料的真實值其實在更高的位子 y(i),

所以就產生了誤差,最直接的誤差計算方式便是把兩個值相減,然後再取平方成為方差 (squared error) ,就成為右邊的方程式,

而在建模時,我們當然要針對每一筆資料都去檢視其估計值的誤差,所以要做summation,然後再去取平均 (除以m),

這就是所謂的cost function,通常用 J 來代稱,

而機器學習會不斷嘗試各種w/b的組合,去找到一個有最低誤差的方程式,也就是下面投影片左半邊所說的。

可以注意到在分母的地方多了一個2,這是因為後續優化模形時需要做微分去找到 cost function會變小的方向,

如果現在分母多加一個2,微分時運算起來會比較順眼。

image

如今我們已經知道評價一個model 的好壞的方式,那要如何讓演算法自動去更新這個模型,讓誤差值可以降低呢?

image

上圖左邊先以最單純的 y = wx 方程式來介紹,我們可以看到 w=1時是完全符合資料的,

而隨著我們改變w,斜率的變化會帶來不同的模型,w離1越遠,誤差值就會越大,

而在右邊我們把w 對 cost function 做圖,就能看到上一句講的,w=1 是最低點,越遠誤差越大,形成一條二次曲線,

因此只要我們先隨機找到一個w 產生模型後,針對所有資料去計算出 cost function的值,

接下來要做的就是找到一個新的w 引導 cost function 往低點走,而這個手法就是下個段落要介紹的 Gradient Descent (梯度下降),

這個梯度下降找新的w 的過程,會一直持續直到 cost function得到的值不再降低為止。

image

上面的例子只是最單純的 y=wx,如果是y=wx+b 則會有兩個參數 w和b是可以調整,而cost function 就會變成3D圖,如下。

image

 

arrow
arrow

    William.Echoes 發表在 痞客邦 留言(0) 人氣()