iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
Google Developers Machine Learning

初心者的自我挑戰系列 第 8

Google Study Jam- Launching into machine learning on coursera Module2 - part2

今天開始學習~ 回到昨天的gradient descent.
之前我們提到loss function是拿來評估你的DL模型,但是我們知道了loss之後呢?該怎麼讓loss降低使得模型變好? 答案就是gradient descent,梯度下降法.
到底甚麼是梯度下降法?
你想像一張等高線圖,在圖上有高峰,有低谷.而這張圖就是你的Loss作圖得到.你要達到loss在低谷的位置,誤差才會是最小的.如此一來,我們可以將gradient descent拆做兩部分:
部分一: 找到往低谷的方向 (what's direction)
部分二: 每次移動多遠的距離 (how far?)

如何找到方向?在數學中我們學過:平面上直線的斜率是他的走向,而平面上的弧線使用公式解也可以求到特定點的切線方向,或是你可以使用微分!沒錯就是微積分的微分.那對於更高維度的模型呢?同樣的! -> 求偏微分. 一旦求偏維分之後你可以得到梯度方向,如此一來你就知道該往甚麼方向移動了! 當然其中求偏微分涉及數學的chain rule等等,不是那麼容易,尤其在model複雜時,不過有電腦幫你!

再來我們怎麼決定每次走多遠呢?
想像看看你是一個巨人每次都走一大段距離,剛剛好跨一步都超越山谷,那這種情況你不管怎麼走都到不了山谷! 再想看看你是一隻小螞蟻,你每次都只能走幾公尺,你要花幾天才能走到100km外的山谷? 因此每次走多遠是一個大學問! 也就是做DL 時的參數之一:
learning rate, 一般來說learning會由大調到小,我們希望透過這樣讓結果收斂到山谷裡.
當然也有一些adaptive的方法: 如adagrad adam等等,這邊就不詳述.

以上就是gradient descent的基本概念.



上一篇
Google Study Jam- Launching into machine learning on coursera Module2 - part1
下一篇
Google Study Jam- Launching into machine learning on coursera Module2 - part3
系列文
初心者的自我挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言