發布時間: 2020-06-29 10:40:54
?【人工智能】機器學習訓練方法—梯度下降?
在機器學習領域中,如要說哪一個優化算法最廣為認知,用途最廣的,那這個算法非梯度下降算法莫屬。梯度下降算法是一種非常經典的求極小值的算法。例如:在線性回歸里面我們可以通過使用最小二乘法解析最優解,但是在解析過程中存在的一些問題卻讓人覺得非常的難受。而且無論是使用L1正則化還是L2正則化,它們得到的結果并不是讓人很滿意。
梯度下降的優化思想是利用當前位置負梯度的方向作為搜索方向,該方向作為當前位置最快的下降方向,梯度下降中越接近目標值,變化量越小,梯度下降的公式如下:
?
其中,η成為學習率,i表示第i條數據。權重參數w每次迭代變化的大小。
收斂:目標函數的值變化非常小或達到到較大的迭代次數
梯度下降方法,我們就可以把其理解成一站在山頂上的人,要下山一樣,比如下圖中紅色的地方作為山頂,是我們的起始的地方,藍色的地方作為山腳。那么我們怎么才能到達藍色的區域呢?根據梯度下降的思想,應該是這樣的:
第一步、我們首先要找到自己所在的位置,只有這樣才能確定往下走的方向
第二步、找到從自己所在的位置到藍色區域的最快路線
第三步、然后沿著第二步找到的路線,然后往下走出一小步,這時候我們處于一個新的位置
第四步、重復前面幾步
第五步、到底藍色區域
?
當然,通過上圖我們也可以看到,下山的路并不止一條,只是因為上圖這不是一個標準的凸函數,這種情況下,我們往往找到的是局部最優解。所以在剛開始的時候,你可以從不同的位置上去嘗試不同的下山路徑,尋找更小的極小值點。如果函數是一個標準的凸函數,那么你要做的只需要往一個方向進行梯度下降即可,例如下面這種
?
梯度下降訓練方法可以分為以下幾種:
l 批量梯度下降(BGD),使用所有數據集中的樣本(共m個樣本)在當前點的梯度之和來對權重參數進行更新操作。
l 隨機梯度下降(SGD),隨機選取一個數據集中的樣本在當前的梯度來對權重參數進行更新操作
l 小批量梯度下降(MBGD),結合BGD與SGD的特性,每次選擇數據集中n個樣本的梯度來對權重參數進行更新操作。
上一篇: 云計算存儲虛擬化之virtio