1. 程式人生 > >機器學習——梯度下降演算法

機器學習——梯度下降演算法

對機器學習感興趣,上網易公開課聽吳恩達得機器學習課程,第二堂課得梯度下降就不是特別懂

度娘一下,發現一篇部落格,閱之,毛瑟頓開,整理如下、

原博地址http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html

引入第一個概念擬合函式


這個函式說白了就是ax+by+c,只不過這裡x,y記為x1,x2、a,b,c記為theta0~2

其中x1,x2…xn是一組特徵值,是資料調研得到的一組資料,所以這裡其實重要得是theta,中間的HthetaX

令x1=1則有了下式


這裡得thetaT其實就是theta得一組向量,也就對應了吳教授視訊得取theta=0向量那一段

注意這個公式裡X是大寫的X而不是小寫的x1,x2其實也就是泛指一組資料而不是一個具體得維度

那麼又怎麼確定這個h(x)也就是theta向量取得nice呢?很自然得引入了損失函式

公式,因為是取一組奈斯得theta值,所以引數從x變為了theta,設為J

疊加符號裡m為資料得組數

梯度下降得圖形裡是各種漂亮得弧面型

其中由於將其畫在二維平面上,因此智慧展示三個維度的立體座標系

注意看的話會發現其縱軸也就是Z軸是損失函式J,而兩個橫軸均為theta

所以圖形上的一個點也就對應著給定一組theta,即給定一個向量theta後的J的值。

因為我們的目的是使J值儘可能的小,其充分必要條件就是在梯度下降的“山脈”圖裡的最低點,也就是等高線裡的最低點



視訊裡對應上圖時間點是這樣的描述“梯度下降演算法經過第一次迭代之後,由於改變了引數的空間,所以一次梯度下降之後會得到這樣的結果”

那麼問題自然而然的就回歸到在給定座標系的一組<theta,J>值後,一次次迭代找到最奈斯的theta值。

對應房屋售價估算場景裡。

這是給定初始theta的圖



而經過一次迭代之後,也就是第一次更新theta的值,J的函式值發生了變化


經過n次迭代之後,也就得到了最奈斯的J值

至於為啥梯度下降可以得到最奈斯的值,假如theta只有一個維度,那麼J(theta)是一個二次函式,

同時J(theta)的表示式中偏導數符號變成了導數符號,而換到二次函式上時,某一點的到數值是該點的切線值,沿著切線可以遞迴到函式的極小值點