梯度下降是一種演算法專門讓Model進行學習,也就是更新內部參數的演算法,
要調整Model裡的參數,首先我們必須要找到Model應該要往哪個方向調整,再來就是我們要讓它調整多少!
在訓練Model中,我們所要達到的終極目標其實就是降低Loss Function,
而我們只要對整個神經網路的每個參數(權重、偏差)和LossFunction進行偏微分!
我們就可以拿到該個參數對LossFunction的影響力了,
譬如來說我們今天對LossFunction還有神經網路裡的其中一個參數W1進行了偏微分,
我們就回拿到一個值,這個值代表著W1對LossFunction的影響力!也就是說調整這個W1會讓LossFunction改變多少,
當我們的應響力越大,代表我們能調整LossFunction的值就越多,我們裡應調整的值就越大!
所以影響力和應該調整的值是呈正比的,我們就直接拿影響力(偏微分的結果)當作調整的值囉!
而對每個參數做偏微分後,我們就可以拿到每個參數應該要調整的大小的矩陣,我們稱這個矩陣叫做"梯度"。
直接把這個梯度加在參數上面是不可行的,我們偏微分的結果是影響力,這個結果是想辦法把LossFunction的輸出
"往上提升"的,我們的終極目標可是降低LossFunction呢,我們該怎麼辦?
這個梯度其實就是LossFunction往最大值走的捷徑,那麼換個方向想,如果扣掉著個梯度,不就是往最小值的捷徑嗎?
是的!要往最低點走我們就要將參數扣掉"負梯度",這個負梯度需要計算嗎?其實它就是前面提到的梯度加個負號罷
了。
==>抱歉課程結束了~我Gradient Decent沒有截到圖 QAQ 這篇只好上純文字。