1. 程式人生 > >線性迴歸(logistic regression)

線性迴歸(logistic regression)

單變數線性迴歸

本文以單變數線性迴歸為例,且變數為一次方,多變數只需要增加變數x1,x2······的個數,變數x也可以有更高的次方。

h代表假設函式 theta代表引數 x代表輸入變數 y代表標籤 J代表損失函式 Alt 目標即為通過改變引數theta的值,最小化損失函式,即要使假設函式h的輸出儘可能接近標籤y。

例如預測房價問題,令輸入x為房子的尺寸(m^2),y為已知的對應x的房價(萬元),則要通過監督學習,使假設函式h對其他沒有見過的x,預測出最接近真實房價y的值,用一個二維平面圖來表示,x軸為房子的尺寸,y為房價,(x,y)對應的點就是一個樣本點,h就是一條最佳擬合所有樣本點並能將來泛化,為輸入的沒有見過的x預測出最可能的y的一條曲線。

如下圖的左邊,直線h就是一條嘗試擬合樣本點的假設函式的對應曲線。 圖源 吳恩達-機器學習

梯度下降

對應的代價函式J在三維空間中會有一個點(theta0,theta1)對應著最小的J值,這個點就是我們要尋找的最優引數。

如下圖,最低的那點對應著上圖右側部分標註出來的那一點,上圖右側是將下圖壓縮成二維平面圖的結果,一圈圈線代表著等高線,同一圈上的所有點對應著相同的J值,越往中心收縮,J值越小,直至收縮成一個點。 在這裡插入圖片描述 開始時,我們會隨機選擇引數theta,然後計算代價函式J,然後再根據當前的J,分別對引數theta0,theta1求偏導,更新引數,再計算J,迴圈往復,直至theta0,theta1逐漸接近上圖中的最低點,我們稱之為全域性最小值(global minimum),但很多時候我們有可能找到不同的區域性最小值(local minimum),如下圖 在這裡插入圖片描述

因為初始化的不同,兩者最終下降到了不同的最小值點。 梯度下降的演算法公式為 在這裡插入圖片描述

更新引數,注意要同步更新! 在這裡插入圖片描述在這裡插入圖片描述 這裡因為只有兩個引數,所以j只等於0和1,若有多個theta,則要遍歷所有。 其中alpha是學習率(learning rate),它決定了我們沿著能讓代價函式下降程度最大的方向向下邁出的步子有多大,在梯度下降中,我們每一次都同時讓所有的引數減去學習速率乘以代價函式的導數。 記住,我們必須同時更新theta0和theta1!

學習率大小的選擇

需要補充強調的是如果學習率太小了,結果就是隻能一點點地挪動,去努力接近最低點,這樣就需要很多步才能到達最低點,所以如果太小的話,可能會很慢,它會需要很多步才能到達全域性最低點。

如果太大,那麼梯度下降法可能會越過最低點,甚至可能無法收斂,下一次迭代又移動了一大步,越過一次,又越過一次,一次次越過最低點,直到你發現實際上離最低點越來越遠,所以,如果太大,它會導致無法收斂,甚至發散。

參考資料:吳恩達 機器學習