1. 梯度
在微積分里面,對多元函數的參數求∂偏導數,把求得的各個參數的偏導數以向量的形式寫出來,就是梯度。比如函數f(x,y), 分別對x,y求偏導數,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,簡稱grad f(x,y)或者▽f(x,y)。對於在點(x0,y0)的具體梯度向量就是(∂f/∂x0, ∂f/∂y0)T.或者▽f(x0,y0),如果是3個參數的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)T,以此類推。
那么這個梯度向量求出來有什么意義呢?他的意義從幾何意義上講,就是函數變化增加最快的地方。具體來說,對於函數f(x,y),在點(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者說,沿着梯度向量的方向,更加容易找到函數的最大值。反過來說,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度減少最快,也就是更加容易找到函數的最小值。
2.梯度下降法
什么是梯度下降法呢/
舉個例子,我們在下山的時候,如果山中濃霧太大,而且我們有不清楚路線,那我們可以以當前的所處的位置為基准,尋找這個位置最陡峭的地方,然后朝着山的高度下降的地方走,同理,如果我們的目標是上山,也就是爬到山頂,那么此時應該是朝着最陡峭的方向往上走。然后每走一段距離,都反復采用同一個方法,最后就能成功的抵達山谷。
梯度下降法的過程與這個例子很相似,一個函數可微分。這個函數就代表着一座山。我們的目標就是找到這個函數的最小值,也就是山底。根據之前的場景假設,最快的下山的方式就是找到當前位置最陡峭的方向,然后沿着此方向向下走,對應到函數中,就是找到給定點的梯度 ,然后朝着梯度相反的方向,就能讓函數值下降的最快!因為梯度的方向就是函數之變化最快的方向,所以,我們重復利用這個方法,反復求取梯度,最后就能到達局部的最小值,這就類似於我們下山的過程。
什么是梯度:
一個多元函數的梯度方向是該函數值增大最陡的方向。具體化到1元函數中時,梯度方向首先是沿着曲線的切線的,然后取切線向上增長的方向為梯度方向,2元或者多元函數中,梯度向量為函數值f對每個變量的導數,該向量的方向就是梯度的方向,當然向量的大小也就是梯度的大小。
梯度下降法詳解:
對於一個多元函數j(x),在x點處做線性逼近(求一階導數)
j(x+x0)=j(x)+Δ'(x)*øj(x0)+o(無窮小),其中øj(x0)為j(x0)的倒數;
對於一個函數做了線性逼近,可以判斷在x這個點的增加方向和減小方向;雖然做線線逼近不能告訴我們這個函數的極值點在什么地方,但能告訴我們極值點在什么方向,因此我們可以根據這個方向(即下山的方向)選取一個較小的步長(學習率)來沿着這個方向走下去,找到極值點。
J是關於x的一個函數,我們當前所處的位置為x0點,要從這個點走到J的最小值點,也就是山底。首先我們先確定前進的方向,也就是梯度的反向,然后走一段距離的步長,也就是α,走完這個段步長,就到達了x1這個點!

幾種梯度下降法介紹
批量梯度下降法(Batch Gradient Descent)
批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新參數時使用所有的樣本來進行更新,這個方法對應於前面3.3.1的線性回歸的梯度下降算法,也就是說3.3.1的梯度下降算法就是批量梯度下降法。
由於我們有m個樣本,這里求梯度的時候就用了所有m個樣本的梯度數據。
隨機梯度下降法(Stochastic Gradient Descent)
隨機梯度下降法,其實和批量梯度下降法原理類似,區別在與求梯度時沒有用所有的m個樣本的數據,而是僅僅選取一個樣本j來求梯度。對應的更新公式是:
隨機梯度下降法,和4.1的批量梯度下降法是兩個極端,一個采用所有數據來梯度下降,一個用一個樣本來梯度下降。自然各自的優缺點都非常突出。對於訓練速度來說,隨機梯度下降法由於每次僅僅采用一個樣本來迭代,訓練速度很快,而批量梯度下降法在樣本量很大的時候,訓練速度不能讓人滿意。對於准確度來說,隨機梯度下降法用於僅僅用一個樣本決定梯度方向,導致解很有可能不是最優。對於收斂速度來說,由於隨機梯度下降法一次迭代一個樣本,導致迭代方向變化很大,不能很快的收斂到局部最優解。
那么,有沒有一個中庸的辦法能夠結合兩種方法的優點呢?有!這就是4.3的小批量梯度下降法。
小批量梯度下降法(Mini-batch Gradient Descent)
小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於m個樣本,我們采用x個樣子來迭代,1<x<m。一般可以取x=10,當然根據樣本的數據,可以調整這個x的值。對應的更新公式是:
下面談談隨機梯度下降法;
這種方法主要是解決梯度計算的問題,上面談到梯度計算很困難就是因為樣本大那隨機梯度下降法只計算一個樣本;
簡要談一談鞍點,如圖
鞍點(saddle point)這個詞來自 z=x^2-y^2的圖形,在x軸方向向上曲,在y軸方向向下曲,像馬鞍,鞍點為(0,0)。
擁有兩個以上參數的函數。它的曲面在鞍點好像一個馬鞍,在某些方向往上曲,在其他方向往下曲。在一幅等高線圖里,一般來說,當兩個等高線圈圈相交叉的地點,就是鞍點。
由於只是初學,簡要了解一下什么是梯度下降法;以后在有機會再深入探討;
本文參考:
1. 鞍點參考原文:https://blog.csdn.net/baidu_27643275/article/details/79250537
2.梯度下降參考原文:https://www.cnblogs.com/pinard/p/5970503.html