常看到很多地方說梯度的反方向是函式下降最快的方向,為何?這裡給出詳
細的解釋和理解過程。首先來說說梯度:
梯度的本意是乙個向量(向量),表示某一函式在該點處的方向導數沿著某個方向可以使方向導數取得最大值,即函式在該點處沿著某方向(梯度的方向)變化最快,梯度的模為方向導數的最大值。
沿某一方向變化,是用方向導數描述,變化最快,即方向導數取最大值。總結起來是說,梯度就是在函式某點的方向導數取得最大值的方向。
好,既然這樣,還記得在 bp神經網路(一)–方向導數 推導的定理嗎?
d fd
x∣(x
0,y0
)=fx
(x0,
y0
)cosα
+fy(
x0,y
0)
sin
α\left. \fracf}x} \right|_ = f_x(x_0,y_0)\cos\alpha+f_y\sin\alpha
dxdf∣
∣∣∣
(x0
,y0
)=f
x(x
0,y
0)cosα+
fy(
x0,
y0)
sinα
方向導數可以用上式表示,我們寫成向量相乘的形式,取向量a=(
fx(x
0,y0
),fy
(x0,
y0))
a=(f_x(x_0,y_0),f_y(x_0,y_0))
a=(fx
(x0
,y0
),fy
(x0
,y0
)),取向量b=(
cosα,
sinα)
b=(\cos\alpha,\sin\alpha)
b=(cosα,
sinα
),由向量內積的乘法定理有:
d fd
x∣(x
0,y0
)=a⋅
b\left. \fracf}x} \right|_ = a\cdot b
dxdf∣
∣∣∣
(x0
,y0
)=a
⋅b根據向量內積的定義有:
d fd
x∣(x
0,y0
)=a⋅
b=∣a
∣⋅∣b
∣cosθ
\left. \fracf}x} \right|_ = a\cdot b = |a| \cdot |b|\cos\theta
dxdf∣
∣∣∣
(x0
,y0
)=a
⋅b=∣
a∣⋅∣
b∣cosθ
其中,θ
\theta
θ為a、b之間的夾角。可見,當夾角為0時方向導數取得最大值,即向量a與向量b方向相同時,才能取得最大值。由於向量a當取完點(x0
,y0)
(x_0,y_0)
(x0,y
0)後就確定下來了,因為此時向量a=(
fx(x
0,y0
),fy
(x0,
y0))
a=(f_x(x_0,y_0),f_y(x_0,y_0))
a=(fx
(x0
,y0
),fy
(x0
,y0
))為乙個常數。當在函式上固定了(x0
,y0)
(x_0,y_0)
(x0,y
0)點,不斷變化 α
\alpha
α的值尋找最大方向導數,當其與向量a同方向,方向導數取得最大,這時的方向就是梯度的方向(因為這是梯度的定義),也是向量a的方向,此時的方向就是梯度的方向,方向導數的最大值就是梯度的模。因此說梯度的方向就是函式變化(上公升)最快的方向,那麼其反方向自然是下降最快的方向了。
神經網路入門之bp演算法,梯度下降
此時就出現了反向傳播這個過程。而配合反向傳播的就是梯度下降法了。現在很多同學可能會很暈,當時我第一次看的時候也很暈。為了容易理解梯度下降法,建議去看ng的斯坦福網課第二節,非常清楚。比我寫的清楚多了。梯度下降法是求 區域性 最好的w。設誤差函式為 j 12 y o 2 12 y f wix i 2 ...
BP神經網路與MATLAB實現案例二
你現在手裡有一袋子雞腿 j 一袋子葡萄 t 要去換人家的西瓜 h 假設雞腿20元 斤,葡萄17元 斤,西瓜2元 斤 也就是h 20j 17t 2 當然我們要通過機器去實現它 給出一組資料 讓我們對她進行一系列的 化 input,ps1 mapminmax j t target,ps2 mapminm...
梯度下降 神經網路如何學習?(深度學習第二章)
反覆地將乙個函式的輸入按照負梯度的倍數來輸入的過程被稱為梯度下降,它是讓成本函式向區域性最小值收斂的方法。神經網路學習就是減小成本方程 建議讀michael nielsen關於深度學習和神經網路的數 就是要找到特定的權重偏置,從而使乙個代價函式最小化 計算乙個訓練樣本的價值,需要求出網路的輸出,和期...