iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
1
Google Developers Machine Learning

透視Google Machine Learning的奧秘系列 第 25

[Day25] 認識常見的機器學習模型與優化器

前一天我們介紹了迴歸與分類問題,今天來介紹機器學習的模型與優化器。

Defining ML Models

課程當中講述了接下來會介紹的幾個重點,有機器學習模型定義以及優化器的選擇,還有討論損失函數以及梯度下降法如何找到最佳解,首先來看一下機器學習模型究竟是什麼?

Defining ML Models-1

ML模型是具有參數和超參數的數學函數,參數是在模型訓練期間發生變化的實值變量。 超參數是我們在訓練之前設置的設置,之後不會改變。只要數據當中的值涉及到連續型的值,就是一個迴歸問題,而線性模型是最早的機器學習模型之一,是目前使用很廣泛的模型,初學模型的時候都會接觸到它,雖然說模型看起來簡易,在視覺上只是2D空間中的一條線,公式是由y = mx + b的函數組成。

Defining ML Models-2

常見的機器學習模型有兩種

  • 線性迴歸模型
  • 羅吉斯迴歸

線性迴歸模型 Linear Regression

  • 簡單常見的線性模型,可使用於迴歸問題。訓練速度非常快,但需注意資料共線性、資料標準化等限制
  • 通常可作為 baseline 模型作為參考點

可以再細分成一元/多元線性迴歸兩種

  • 一元線性迴歸:涉及到的變量只有一個
  • 多元線性迴歸:涉及到的變量有兩個或兩個以上

羅吉斯迴歸 Logistics Regression

  • 雖然有回歸兩個字,但 Logsitics 是分類模型
  • 將線性回歸的結果,加上Sigmoid 函數,將預測值限制在 0 ~ 1 之間,即為預測機率值。

優化器

在機器學習當中有許多的方法可以找到模型的最佳解,選擇使用不同的優化器能幫助你找到最佳的解。

梯度下降法

梯度下降法(Gradient Descent)是最基本的優化器,它的策略是在有限的可視範圍內尋找最快的路徑下山,每走一步就會參考當前位置最陡的方向走下一步,目前主要有三種變形的梯度下降法:

  • 隨機梯度下降法(SGD, Stochastic Gradient Descent)
    透過隨機樣本來反覆運算,加速運算過程,並更新權重參數
  • 批量梯度下降法(BGD, Batch Gradient Descent)
    每反覆運算一次都會用到訓練資料裡面所有資料,計算速度慢
  • 小批量梯度下降法(MBGD, Mini-batch gradient descent)
    顧名思義就是運算時改用小批量取代全部資料來運算

缺點

容易陷入局部最優解:因為是在有限的可視範圍內尋找下山的方向,當陷入平坦窪地時會以為來到了最低點即最佳解就不繼續往下走,梯度為0之後模型參數就不繼續更新。

其他優化器效果比較

兩種情況都可以看出,Adagrad, Adadelta, RMSprop 幾乎很快就找到了正確的方向並前進,收斂速度也相當快,而其它方法要麼很慢,要麼走了很多彎路才找到。
由圖可知自適應學習率方法即 Adagrad, Adadelta, RMSprop, Adam 在這種情景下會更合適而且收斂性更好。

其他優化器效果比較-1
其他優化器效果比較-2

今天先介紹到這,明天我們來介紹Python在建立機器學習模型與超參數的技巧。

參考資料與圖片來源


上一篇
[Day24] 認識迴歸與分類問題
下一篇
[Day26] Python在建立機器學習模型與超參數的技巧
系列文
透視Google Machine Learning的奧秘30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言