iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
1
Google Developers Machine Learning

AI可以分析股票嗎?系列 第 16

沒有實作所以只好講幹話系列(一) :: 從loss到梯度下降

  • 分享至 

  • xImage
  •  

引言

其實下這個標題只是因為這算是我的筆記而已,讓別人點進來看好像有點罪惡感Orz。最近較難抽空實作接下來的內容,所以剛好可以補上之前實作過程中所學習到的東西,今天就來記錄一下我對訓練過程中的loss的理解XD

一、loss是什麼?

在機器學習中,loss可以說是最重要的東西,想像一個情境 :

假如有一隻機器人,恩...或一架、一個、一台 (隨便啦!) ,它能夠從2020總統大選候選人中預測誰當選

所以,讓我們來看看結果吧 !!
...
...
...
搭拉~ 預測結果出爐 !! 是 預計撐兩天XD 先生 !! (好像在哪裡見過這個名字?
但注意,這只是一個預測,所以當2020選後,我們知道誰當選後,可以知道這個機器人有沒有預測到。

loss就是一個數字專門打臉你的機器人「你預測的有多不準」

回到股票上面,我們如果訓練一個模型來預測「股價」,這個loss就可以描述「你預測的股價跟實際差多少」。如果預測「action」,那loss就是「你做了這個action損失了多少」,以上是我對loss這個東西的見解~

二、loss要做什麼?

loss目的只有一,希望使得模型越來越好,所以會透過「梯度下降法」去更新模型。其實就像訓練狗一樣,若聽指令動作所以就有肉吃,沒有則給予逞罰,這個loss相對於逞罰,「梯度下降」相對於學習。

所以我們訓練模型很簡單,給input,得到output,計算loss,模型gradient descent

ML三寶中的「dataset」就是為了inputoutput,然而我前幾篇都沒有提到loss,這是為什麼? 不用回答,因為他們都被包得好好的,在「監督式學習」的過程中,loss不外乎就那幾種 :

  • mean squared error
  • cross entropy

沒了?

當然不止,但這兩個是最常用的。 一般的數值預測使用mean squared error計算,分類問題用softmax的輸出,再用cross entropy計算,這兩者得出來的數字都可以是loss。 你說什麼是softmax? 就只是一個輸出機率的函式啦~只是一個activation function而已。 等...等等,activation function又是什麼? 嘖嘖,好奇心殺死一隻貓喔,咱慢慢來,這可以是我的「沒有實作所以只好講幹話系列(二)」(欠揍嗎?)

總之,我們現在知道loss是做什麼的了,現在讓我們談談如何更新loss吧~

三、用梯度下降更新模型?

我在看梯度的文章中,有個解釋我很喜歡 :

假如你拿一顆球放再碗的任何地方,鬆手後球會往哪邊滾? 答案是往碗的中心滾,而滾的「方向」就是「梯度」

梯度是一個方向,在變數維度為1的時候(如 : f(x) = x^ 2 + x - 3),梯度 "方向" 就如同微分,剛剛那個式子的微分是 f'(x) = 2x + 1 (哇! 我不想看數學!!) 別急,更精采的在後面,拿個簡單的式子(如 : y = Ax+b),此時A如果是一個矩陣,那對y的梯度怎麼算? 喝,精彩的....我放棄Orz

  • 感受一下吧!
  • 矩陣計算示意圖

沒錯,梯度下降其實就是對線性代數的矩陣取梯方向進行更新,而且你不需要擔心怎麼算,只要擔心什麼模型好用就好,tensorflow都幫你包好好的XD

在模型中,維度動輒上N維(千、萬、百萬...),都是矩陣的計算式,我們現在將其簡化為「給我一個loss,我幫你把模型往梯度的方向更新a*loss的量」。如果我有一堆參數(P)要被更新,寫作公式 P = P - a * loss * Grad(P)a只是怕更新過頭給的一個0-1讓loss不要這麼大的數字而已。如此不斷迭代就可以完成梯度下降囉~

  • 其實a來頭不小,優化器就是為了優化a而造的。來看一下動圖感受一下什麼叫「梯度下降吧」!
    • SGD就是固定a的基本款

在這個三維空間中有可能遇到圖上所遇到的「鞍點」,就是梯度怎麼算都是0,卻不是最低點。 SGD很難突破鞍點,所以才衍伸這麼多的優化器。其中目前最普遍的是adam,上次測試中的Radam2019/08/08的論文(超新)

幹話結束,希望明天有空做實作XD

參考

CS231n: Convolutional Neural Networks for Visual Recognition


上一篇
超級簡略的單股買賣模擬器
下一篇
沒有實作所以只好講幹話系列(二) :: 模型中的激勵函數
系列文
AI可以分析股票嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
彭偉鎧
iT邦研究生 1 級 ‧ 2019-09-18 00:28:01

你這個鞍點是指甚麼? 可以是景氣循環嗎? 這個我有點不太懂! 哈!

我在想這個鞍點應該是指loss在下降過程中遇到的瓶頸,與大環境無關,不過也有可能是大環境在資料集中的劇烈轉變造成的 !!

我做的應該是偏向回測,所以儘管鞍點出現,卻是在歷史資料中,我們只能建模型看能不能克服鞍點

以上是我的理解啦~ 不知道有沒有回答到

我要留言

立即登入留言