AI入門:ML學習筆記[AI-002]_Regression
為什麼我們需要學機器學習?
李弘毅老師,給了我們一個強大的理由:
Regression 迴歸之Case Study
在進入機器學習的領域,時常會遇到一個痛點,也就是每一種預測模型的資料前處理都需要有不同的手段,唯一能做的事,如同管理議題,我們可以透過大量的Case Study試煉,來加強面對不同挑戰時,針對資料進行處理,並挑選出合適的演算法來進行預測。
迴歸可以做哪些事?
- 股票預測:給今日股價>明天漲跌幅
- 自駕車:給目前路況>方向盤角度
- 推薦系統:給使用者A看了商品B>預測購買可能性
幾乎是所有有正確數值答案的問題,都可以透過迴歸的方式來進行建模預測並衡量結果。( Function, Evolution)
也就是給定x,機器產出y。input=x1,x2,x3,x4….;output=y。
但裡面好幾個方程式必定為錯,譬如:其中某個方程式會導致CP值變為負,那必定就是不可能出現的結果。(CP值不可為負)
老師在此還真的蒐集了10隻寶可夢進化的數值,這一段戲稱為預測寶可夢進化的模型發表會XD (底下有200多位學生)。
預測結果出來了,如何評價好壞? Loss Function
也就是在Goodness of Function,要去衡量方程式配適度的好壞,
事實上,配適度可以依據自己的喜好來定義怎麼樣的結果是好壞。
計算估測誤差值
評價每一個function丟進去預測結果,誤差多少的數值。再從中挑選出最好的function。但要如何寫成最佳?
從F_star找到Loss Function中數值最小的 or
從w, b中窮舉,找出Loss Function中數值最小的….
Gradient Descent
Gradient的做法即為:
1)先從中隨機選取一個初始的點,
2)再從初始點,計算微分的結果(就是斜率)
3)就可以得知要將初始的點,增加/減少w
就像一個人站再W0的點上中,要往左還是往右走,而step size(走的距離要多少)取決於learning rate。
最終,再反覆計算結果,來找到最終收斂的結果為何。
但是結果真的是最好的嗎? 當到了微分為0的時候,你找到的點是local還是global?
Gradient是什麼? 是一個倒三角的符號QQ。
為什麼Linear Regression不必擔心Local Optimal問題?
以圖來說,必定只會是一圈又一圈的橢圓組成,不會有兩個低點,只會集中往一個方向走。
回到前面建模的結果,
我們可以找到其中一個目前最好的線性迴歸的方程式。
但是,如果在未來新抓的寶可夢[測試集],一樣可以是Loss最低的嗎?
[原本訓練集出來的Average Error=35,新的寶可夢,Error為…]
從簡單線性迴歸到多元迴歸
從直線到曲線的預測模型。
引入二次方Xcp=>Average Error=15.4,新的寶可夢,Error=18.4。
引入三次方Xcp=>Average Error=15.3,新的寶可夢,Error=18.1。
能不能有更複雜的方程式? Sure!
But, 越複雜越好嗎?
人生都這麼複雜了,模型也要無限擴增嗎?
在線性迴歸的世界中,這個做法不太可行。
(儘管在未來神經網絡的選擇可能未必)
當我們到引入五次方Xcp,在測試集中,有一個資料導致Error直接爆掉。Error=231.1。
Model Selection
老師在此用了一個視覺化的概念,也就是今天將模型疊加Xcp後應該可以不斷下降Error,但這個結果僅限於訓練集。
實際上在測試集卻會導致Error爆掉!!
也就是Overfitting,過度適配度。
老師舉例就好像駕訓班訓練的過程中,教練都會說看到桿子方向盤打三圈,但實際上,這樣的結果如Overfitting,是經不起真實世界的考驗。
找到資料背後的特性
只考慮CP值,顯然是不正確的。老師於是說。
真正關鍵的點,其實遊戲在給予CP值,就已經依據了不同物種,具備各自的function。
Redesign the model
針對不同的物種都帶入不同的linear function。
老師說這就如信號處理在設計function的做法。 QQ…What? 信號處理?
但最終,模型仍有一些Error,是不是還有其他因子未考慮到,譬如體重、身高。
回到Redesign the Model
理論上,訓練集可以得到超低的Error,但測試集的Error會如何呢?
又Overfitting了…
Regularization
透過這個做法,調整Loss Function。
加上一個額外的term。Lambda需要手動設定。
找到 smoother function!
為什麼後面的term不考慮 b?
因為 b 只影響了function往上往下,無關斜率的平滑與否。
如果人生可以量化,
我們能到得知不同的道路,也有不同的模型嗎?