2.1 模型表示
我們學習的第一個算法是線性回歸算法玛痊。
在監(jiān)督學習中传趾,我們有一個數(shù)據(jù)集晤郑,這個數(shù)據(jù)集被稱為訓練集(Training Set)。
我們用小寫字母m來表示訓練樣本的數(shù)目袍辞。
以房屋價格的訓練為例徽缚,將訓練集里房屋價格喂給學習算法,學習算法工作后輸出一個函數(shù)h革屠,h代表hypothesis(假設)。
函數(shù)h輸入為房屋尺寸大小x排宰,h根據(jù)輸入來得出y值似芝,y值對應房子的價格。因此板甘,h是一個從x到y(tǒng)的函數(shù)映射党瓮。
h該如何表達呢?
一種可能的表達方式為
因為只含有一個特性(輸入變量)盐类,因此這樣的問題叫做單變量線性回歸問題寞奸。
2.2 代價函數(shù)
我們現(xiàn)在要做的是為我們的模型
選擇合適的參數(shù)和。
建模誤差(modeling error):模型所預測的值與訓練集中實際值之間的差距在跳。
我們的目標是選擇出可以使得建模誤差的平方和能夠最小的模型參數(shù)枪萄。
即使得代價函數(shù):
最小。
剛才的代價函數(shù)也稱作平方誤差函數(shù)(平方誤差代價函數(shù))猫妙。之所以求出誤差的平方和瓷翻,是因為誤差平方代價函數(shù)對于大多數(shù)問題尤其回歸問題,都是一個合理的選擇割坠。
平方誤差代價函數(shù)是解決回歸問題最常用的手段齐帚。
2.3 代價函數(shù)的直觀理解
2.4 第一個機器學習算法——梯度下降
使用梯度下降來求函數(shù)最小值(代價函數(shù)的最小值)。
思想:開始時隨機選擇一個參數(shù)的組合
計算代價函數(shù)彼哼,然后尋找一下個能讓代價函數(shù)值下降最多的參數(shù)組合对妄,持續(xù)這么做直到一個局部最小值(local minimum)。
由于沒有嘗試完所有的參數(shù)組合敢朱,所以不能確定我們得到的是否為全局最小值(global minimum)剪菱,選擇不同的初始參數(shù)組合,可能會得到不同的局部最小值拴签。
其中是學習率(learning rate)琅豆,決定了讓代價函數(shù)下降程度最大的方向向下邁出的步長。
在批量梯度下降中篓吁,每一次都同時讓所有的參數(shù)減去學習速率乘以代價函數(shù)的導數(shù)茫因。
注意一個微妙的問題:
梯度下降算法實現(xiàn)時需要同步對各個參數(shù)進行更新,因此需要先將各個參數(shù)的更新值計算出來暫時保存杖剪,當所有更新值都計算完畢后同時更新新一輪參數(shù)冻押。
同步更新是更自然的實現(xiàn)方法
梯度下降的直觀理解
對于這個問題驰贷,求導目的是取切線。
如果太小了洛巢,挪動會很慢括袒,需要很多步才能到達全局最低點。
如果太大了稿茉,可能會越過最低點锹锰,甚至無法收斂,一次一次越過最低點漓库,實際上離最低點越來越遠恃慧。
我們可以發(fā)現(xiàn),隨著每一步的梯度下降渺蒿,圖線越來越趨近于平緩痢士,斜率越來越小,最終移動幅度非常小茂装,已經(jīng)收斂到局部極小值怠蹂。
2.6 梯度下降的線性回歸
將梯度下降和代價函數(shù)結(jié)合,應用于具體的擬合直線的線性回歸算法里少态。
批量梯度下降城侧,指在梯度下降的每一步中,我們都用到了所有的訓練樣本彼妻,在梯度下降中赞庶,計算微分求導項時,我們需要進行求和運算澳骤。
此外歧强,在計算代價函數(shù)J最小值的時候有一種數(shù)值解法,不需要梯度下降這種迭代算法为肮,是一種成為正規(guī)方程(normal equations)的方法摊册。
實際上,在數(shù)據(jù)量較大時颊艳,梯度下降發(fā)比正規(guī)方程要更適用一些茅特。