iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 5
0

前面知道建立模組的參數及一些方法,那要如何找出最適合的模組呢?
我們有個公式:y=Wx+B,我們要怎麼找到「W」和「B」的最佳值,也就是最小的誤差呢?當然是一個一個放進去找囉~


我們現在有一個模組,要想辦法「訓練」(train)它,讓他達到最佳化。例如上面的例子,我們有個公式「y=Wx+B」,要找到最佳的「W」和「B」,也就是得到誤差最小的公式。要怎麼做呢?就是把數字帶進去,然後找到最小的誤差值。

根據Reducing Loss的說明,誤差值會長的像是「U」字型,越上面誤差值越大,最下面的點就是最小誤差值,也就是我們所要的最佳解。要計算的方式就是慢慢算,每次都要把資料全部算完,然後觀察誤差值,再逐漸縮小範圍,最後找到最小的誤差值。如何知道最小值呢?最小值的兩邊,無論是還沒有到或是超過,誤差值都會比最小值還要大(也可以看斜率就知道是不是最小值),因此可以找到最小值。
所以我們可以使用這個範例:Exercise ,來玩看看如何快速找到最小值,因為當我們給予的參數太小,會要測很多次,但萬一太大,也會花很多次數來找,如何適當的參數也是一個學問。畢竟每算一次都是要把所有資料跑一次,當參數不對或是資料太多,每次的找尋最佳解都是花很多心力。
這個作法就是「梯度下降法(gradient descent)」,也稱為最速下降法,藉由來回的比對找出最小值。缺點包含:靠近極小值時速度減慢、可能會「之字型」下降,都是會影響找到最小值的時間。

不過在U型中,我們出發點重要嗎?看來是可以不用,我們可以找的一個適當的出去點,可以減少次數。
但是呢,有的卻不是U型,在神經網路中有W型,或是多個W,也就是wwww,因此要把所有最小值找出然後找出「真的最小值」。除了梯度下降法外,還有隨機梯度下降法(Stochastic gradient descent, SGD),以及屬SGD的經過訓練後數據所進行的小批次梯度下降法(mini-batch gradient descent)


睫毛之聲:

調教我們的model,還要這麼費工。這樣的概念好像之前上課所說的「排序法」,想辦法進行快速的排序,所以有想到泡泡排序法、快速排序法等等,這些梯度下降法也是相同的概念,更快速的找出最小值,因此有梯度下降法、隨機梯度下降法、小批次梯度下降法。


上一篇
【Day4】First:損失函數
下一篇
【Day6】First:遊戲區
系列文
Machine Learning(by Google)30

尚未有邦友留言

立即登入留言