iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
0
Google Developers Machine Learning

ML Study Jam -機器學習系列 第 9

Day 9 Optimization part 1(試著最佳化模型吧)

  • 分享至 

  • xImage
  •  

Launching into Machine Learning

Optimization part 1

接下來就談談一些關於最佳化的問題吧,首先有幾個步驟我們要去做釐清,第一個就是如何去定義我們模型,第二個就是介紹loss function,最後介紹梯度下降法。

定義模型

定義模型的方法有很多種,最簡單就是以一條直線來進行分類或是回歸,如同下方這張圖,利用很簡單的直線方程式來定義我的輸入與輸出,並且透過更改參數得到最佳解,那如果今天資料維度很多要怎麼辦呢?最簡單的方式就是從平面轉成立體,也就是大家在說的超平面的概念。

https://ithelp.ithome.com.tw/upload/images/20190916/201202893hvoVsXyrr.png

但問題來了下面這張圖若使用線性的數學模型來做解決的話,藍紅黃這三條直線看起來好像都擬合這些數據,那要怎麼辦呢?最好的方式是使用loss function與Gradient Descent的方法來找最佳解。

https://ithelp.ithome.com.tw/upload/images/20190916/201202891xpihymvgu.png


Loss function

Loss function 依照回歸問題常用的MSE、RMSE、MAE與分類問題常使用cross entropy。詳細的數學公式我放在這裡去做推導,有興趣的朋友可以參考看看。
延續前面的觀念,要怎麼進行評估呢?最簡單的方式就是把我這條直線與實際值的結果去做加總,若差距越小代表這條直線越擬合這整個數據。所以即便是兩條人眼看得差不多的直線經過計算後我們還是可以拿到比較精準的直線。而MSE、RMSE這兩項常常被拿來做比較,有個quiz也有問這的關係,我就簡單說一下,因為它的公式加了一個根號的關係,所以它的單位會是跟原始數據的單位會是一樣的所以省去轉換的這一個步驟。

https://ithelp.ithome.com.tw/upload/images/20190916/201202890FWe2oSv2F.pnghttps://ithelp.ithome.com.tw/upload/images/20190916/20120289oSMp8jIvvH.png

接著介紹一下cross entropy的計算方式,通常在輸出層的地方分類問題會加入softmax函數,所以預估出來ŷ是0~1的機率,接著帶入以下公式去進行計算,也會得到相關的損失函數,而最好的loss function如下圖所示會慢慢地進行收斂,若是完全不動或是變化很劇烈的話就必須檢查模型或是資料集。

https://ithelp.ithome.com.tw/upload/images/20190916/20120289PuGLMrSt4M.jpg
https://ithelp.ithome.com.tw/upload/images/20190916/201202898HtBCifzUi.png

Gradient Descent

而Gradient Descent可以把它想成,我要達到最好loss function的一種方式,最常見也是最容易的例子,就是可以把這個想成我突然被放在山頂然後我要靠著自己的力量走下山腳,今天要考慮到的就是我的方向感以及我走路的速度,假設我今天路線走對但速度很慢,那我下山的時間就要很長;那如果我走路很快但完全走錯方向那就沒辦法下山了。

https://ithelp.ithome.com.tw/upload/images/20190916/20120289hRIbavgQvw.png

以loss function的角度來看,就是要找最小解,今天有兩種狀況,假設起始learning rate設定很小我想要走到最低點當然時間要很久;但今天learning rate設定很大,會在中間一直跳來跳去,可能永遠找不到最低點。

https://ithelp.ithome.com.tw/upload/images/20190916/20120289r0jpABBaYa.pnghttps://ithelp.ithome.com.tw/upload/images/20190916/20120289iUKWM76sXv.png

常見的問題就很多就是訓練太慢、每次都要重新訓練等問題吧,這邊講者給予一些方向給大家做參考首先可以去看計算的導函數是否正確,畢竟Gradient Descent就是數學的微分,接著看看走的步數是否跟理想狀況一樣,最重要也是最常用的就是去檢查model loss function,並且使用批次的方式來做訓練與檢驗,避免電腦計算成本過高以及提高準確度。

https://ithelp.ithome.com.tw/upload/images/20190916/20120289OY2QhvKJeQ.png

※圖片參考至 Launching into Machine Learning slide


上一篇
Day 8 Practical ML part 2 (ML 小故事)
下一篇
Day 10 Optimization part 2 (TensorFlow Playground模擬與評估方式)
系列文
ML Study Jam -機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言