1. 程式人生 > >機器學習3- 梯度下降(Gradient Descent)

機器學習3- 梯度下降(Gradient Descent)

1、梯度下降用於求解無約束優化問題,對於凸問題可以有效求解最優解

2、梯度下降演算法很簡單就不一一列,其迭代公式:

\theta_{i} := \theta_{i} - \alpha \times \frac{\partial J_{\theta} }{\partial \theta_{i}}

3、梯度下降分類(BGD,SGD,MBGD)

3.1 批量梯度下降法(Batch Gradient Descent)

    批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新引數時使用所有的樣本來進行更新

3.2 隨機梯度下降法(Stochastic Gradient Descent)

     隨機梯度下降法,其實和批量梯度下降法原理類似,區別在與求梯度時沒有用所有的m個樣本的資料,而是僅僅選取一個樣本j來求梯度

 隨機梯度下降法,和批量梯度下降法是兩個極端,一個採用所有資料來梯度下降,一個用一個樣本來梯度下降。自然各自的優缺點都非常突出。對於訓練速度來說,隨機梯度下降法由於每次僅僅採用一個樣本來迭代,訓練速度很快,而批量梯度下降法在樣本量很大的時候,訓練速度不能讓人滿意。對於準確度來說,隨機梯度下降法用於僅僅用一個樣本決定梯度方向,導致解很有可能不是最優。對於收斂速度來說,由於隨機梯度下降法一次迭代一個樣本,導致迭代方向變化很大,不能很快的收斂到區域性最優解。

3.3 小批量梯度下降法(Mini-batch Gradient Descent)

  小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於m個樣本,我們採用x個樣子來迭代,1<x<m。一般可以取x=10,當然根據樣本的資料,可以調整這個x的值