ML Lecture 3-1: Gradient Descent
假設今天function有兩個參數,這裡用 {θ1, θ2} 表示
先隨機選一組 θ(上標表示第幾次更新的參數組,下標表示該參數組中的第幾個component)
$$ \text{Randomly start at }\theta^0=\begin{bmatrix}{\theta^0_1}\\[6pt]{\theta^0_2}\end{bmatrix} $$
更新一次:
$$ \theta^1= \begin{bmatrix} \theta^1_1 \\[6pt] \theta^1_2 \end{bmatrix}=\begin{bmatrix} \theta^0_1 \\[6pt]\theta^0_2 \end{bmatrix}-\eta\begin{bmatrix} \frac{{\partial}L(\theta^0_1)}{\partial\theta_1}\\[8pt] \frac{{\partial}L(\theta^0_2)}{\partial\theta_2}\end{bmatrix} $$
更新兩次:
$$ \theta^2= \begin{bmatrix} \theta^2_1 \\[6pt]\theta^2_2 \end{bmatrix}=\begin{bmatrix} \theta^1_1 \\[6pt]\theta^1_2 \end{bmatrix}-\eta\begin{bmatrix} \frac{{\partial}L(\theta^1_1)}{\partial\theta_1}\\[10pt] \frac{{\partial}L(\theta^1_2)}{\partial\theta_2}\end{bmatrix} $$
上面兩個式子也可以看成
$$ \theta^1=\theta^0-\eta{\nabla}L(\theta^0) $$
$$ \theta^2=\theta^1-\eta{\nabla}L(\theta^1) $$
如同前面提過,把兩個偏微分值擺成一個向量,就是 Gradient(∇)
而gradient(∇) 這個向量可以看成 Loss 的等高線的法線方向,因此,乘上負的 learning rate 就像是往反方向走,同時放大一個固定長度(η)
$$ {\nabla}L=\begin{bmatrix} \frac{{\partial}L}{{\partial}w} \\[6pt] \frac{{\partial}L}{{\partial}b} \end{bmatrix} $$
因此,learning rate (η) 的調整很重要
但是,learning rate 是一個固定的常數,這樣會在學習一開始速度很慢達到error最低處,後期又變太快,所以要找個方法可以自動調整learning rate ,或是稱作 Adaptive Learning Rates
一個簡單的方法是讓learning rate 隨著時間減少:
這個方法叫做 Vanilla Gradient descent
$$ \eta^t=\frac{\eta}{\sqrt{t+1}} $$