iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0
Google Developers Machine Learning

初心者的GDC攻略系列 第 27

Day27: 超參數 x 複雜度

如何定義一個機器學習模型的複雜度

現實生活來說,複雜這個概念,對應的是使用負載過高
而表型會是什麼呢?
有可能是CPU運算負載快速提升、記憶體使用量飆高或是系統結果不斷震盪不收斂

這裡可以先不考慮Runtime時神經網路的大小(這個有可能會影像到效果),而超參數就是在Runtime運算前所需耗費的資源利用。
超參數包含的東西不少,先從常見的說起吧!

  1. Learning Rate
  2. Batch Size
    這兩個項目在某種程度上是互相拮抗的。

Learning Rate

  • 太小則收斂時間太久
  • 太大則可能不收斂

以梯度下降的觀點來看,學習率(Learning Rate)這個東西呢,就是斜率的變化。
斜率的絕對值越大,越容易觸底。
如果能夠快速碰到我們認知的底部(極值區的斜率為零),不就正是我們的目標嗎?
對,但世界上沒有這麼剛好的事情。
極值的出現,通常是一個小範圍。
萬一過頭了,代表出現所謂的觸底反彈
因此反而造成震盪的不穩定現象。

Batch Size

  • 太小則可能不收斂
  • 太大則運算非常久

這部分牽涉到的是效果評估
一個Batch如果太大,要評估就要等到全部資料做完。
假設一個人口試需要10秒鐘,100個人依序口試後得到平均分數就要超過16個小時了。
而Batch太小,對應來說就有可能每次評量的成績忽高忽低,很難得知是不是學習效果良好。

基於以上觀點,陸續有學者提出超參數使用上的修正。
目前主要以AdamFtrl(Follow the regularized leader為常用的方法。


上一篇
Day26: 見山又是山
下一篇
Day28: 超參數 x 調整 x GCP
系列文
初心者的GDC攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言