iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
AI & Data

Machine Learning for Dummies系列 第 9

[Day 9] 梯度下降法會遇到的問題

昨天的文章中,談到了我們如何用梯度下降法,來找到 Loss Function 的最低點。方法看似簡單(希望被我講得真的很簡單),但實際上執行的時候,可能會遭遇到一些問題。

學習速度多大?

在梯度下降法當中,我們下降的速度(與方向)是跟依據這個式子:

Imgur

你可能會想說,要快點達到目的地的話,不如我們就把 Imgur (代表學習速度)的值設定大一點,讓我們每一次都走大步一點吧。但這樣可能會造成 overshotting(如下圖左邊),反而造成達到最低點的速度變慢。就像是

好吧,既然把 Imgur 調大可能有麻煩,那不然就把它調的小一點吧,但這樣一來,我們可能要走非常多步,才能找到那個最低點(如下圖右邊),這樣不僅耗時也耗資源(機器也是要吃電才能跑的啊!)


(圖片來源)

那麼什麼樣的 Imgur 才是最好的呢?其實沒有人知道,因為沒有人知道我們要走出的山谷長什麼樣子。絕對不是像昨天或上面的 U 字型這麼簡單,如果處理到真正的問題,將會有更多的維度,情況也就更加複雜。

在機器學習裡面,有一些不同的方法與技巧,讓 Imgur 的值隨著狀況不斷變化,增加我們到達最低點的機率與速度。

從哪裡開始?

更讓人摸不著頭緒的是,我們的第一步要從哪裡開始?在同一片山谷當中,即便我們用同一套方法帶領我們往前走,但是很有可能起始的點不同,會帶我們到不同的地方去。就像下面這張圖,三個不同的起始點,會帶我們到三個不同的 local minimum


(圖片來源)

等等,只是區域極小值?不是極小值?

還記得昨天的文章提到

如果我們真的幸運達到最低點了,那麼這個最低點的梯度將會是 0,也就是說,我們將不會再踏出任何一步。

但正確來說,我們只要達到斜率等於零的地方,我們就不會再踏出任何一步。斜率等於零的狀況有以下幾種

Imgur

  1. 極大值
  2. 區域極小值
  3. 區域極大值
  4. 極小值
  5. 一個剛好斜率為零的點

因為我們不是神,所以不會知道我們在的地方,是「極小值」還是只是「區域極小值」,或者,其實我們根本就站在其他地方。

那我們該怎麼辦?

要找到更小的 Loss function 的值,其實就是一個不斷優化的過程。這個過程沒有終點,只能夠憑著對於該問題的經驗,以及不斷實驗的精神,一步步的向前進。也難怪有人說這是一門藝術。

小結

不知道講到這邊,大家對於機器學習有沒有一點初步的概念了呢?接下來,會開始介紹機器學習的相關工具,以及利用梯度下降法來實作機器學習!

我們明天見囉


上一篇
[Day 8] 梯度下降法
下一篇
[Day 10] 安裝 Anaconda 與使用 Jupyter
系列文
Machine Learning for Dummies30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言