機器學習-學習筆記-梯度下降-SGD/BGD
根據Andrew Ng的Lecture notes, 我重新整理了梯度下降(including LMS/BGDSGD)的相關知識。
首先,引入一個例子,
假設我們現在有一個數據集,資料集中包含了A城市的47套房屋的資訊,資訊有房屋的居住面積,房間數量和價格,資料集如下圖。我們要做的是,根據房屋的居住面積和房間數量來預測它的價格。
簡單的以
進一步表示,
假設
來表示
為了求出y的值,首先我們隨機給
好了,現在我們的問題轉化成了怎麼讓
首先,我們用一個函式來表示
這個公式來源於數學中學習過的最小二乘法OLS(Ordinary least squares)。
LMS演算法
來,先看一幅圖,
這是一幅3D圖,水平平面的橫縱軸分別是
下面我來介紹一下LMS演算法的概念,我們把這幅圖想象成一座山,我們是站在山上某個位置的人,我們的目的是找到這座山的最低點。
首先我們隨機選取一個起點,如圖的+號位置作為我們現在在山上的位置,然後我們每一次沿著最陡的方向往下走一步,邁的步伐大小設為α,我們不停地朝著最陡的方向下山,直到到達一個區域性最低點(周圍沒有更低的地方),這也就是梯度下降GD(gradient descent)的思想。
下面我們用數學公式來表示LMS演算法,
高等數學裡講過,偏導數是函式值變化最快的方向,在我們這個例子裡,也就是我們在山上站立位置周圍下山最陡的方向。
進一步解這個函式,
那麼對於資料集中的每一座房屋,
這就是LMS每一次更新的原則,也稱作Widrow-Hoff學習法則。
只使用單座房屋的j的計算方式並不能求出
批量梯度下降
批量梯度下降中
也就是每一次選擇下降方向時,我們要把所有的房屋資料計算一遍。
批量梯度下降可以找到一個全域性最優解,如下圖。但是如果資料集量過大,那麼那麼迭代速度會極其極其慢。
隨機梯度下降
隨機梯度下降中
隨機梯度下降不能精確地收斂到全域性最小值,但是在資料量過大的時候,這種方法更快。