iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
1
AI & Data

Predicting Inter Bus Arrival Times 系列 第 5

Day 5 Regression

  • 分享至 

  • xImage
  •  

主題為 Predicting Inter Bus Arrival Times ,Output 為 scalar (數值) 。

東西已經做出來,也做了實際的驗證,之後會從收集Data 開始,依序介紹整個後端處理AI的部分,處理Data,預測站到站的所花時間。

過程中,會有碰到一些問題和嘗試過的應變措施和最後的解法分享。

但做這些其實是再做完AI研究的一段時間過後的事,今天回顧當時學ML的影片,發現其實自己省略了一些其他評估或是select function 的部分。


如何找到 一個function 是用來得到最佳解的?

[重點回顧]
Step 1 : 選一個 function set
Step 2 : 衡量每個 function 的好壞
Step 3 : 使用 algorithm 挑出 最優的 function

[目標] 寶可夢進化後的cp值 (戰鬥力)
Step 1 :: 挑 linear model 來當作我們function set
假設是 y = w*x + b
y : 預測值 :: 進化後的cp值
x : 特徵值 :: 進化前的cp值
w : 權重 :: 未知 # 由 Gradient Desent 方法求出
b : bias :: 未知 # 由 Gradient Desent 方法求出

Step 2 :: 衡量每個function的好壞
Loss Function 看哪個function 的參數好
也就是說 我們要衡量 weight & bias 的好壞

而Loss function 怎麼定義 ?
可以由自己定 (依喜好)
但 在影片中 以常見 Loss Function 來說明
summation { ( y hat (真正數值) - 預測數值 ) ^2 }

那哪一組(參數:w,b)可以使 loss function 值為最小

  1. 線性代數解法 : 但我不太會 所以 BJ4
  2. Gradient Desent : 動態調整參數
    先有個起始點(Wo,b) ,挑起始點可以是隨機的
    也可以是 特定的方法
    是隨機的 可能要碰運氣 ,所以 多做幾次嘗試?
    這裡以隨機來做個開始,把function分段,切線斜率為負時(左高右低),往右找;切線斜率為正時(右高左低),往左走,找到最低點就對啦!

那有沒有可能有local minimal 的問題 ?
[local minimal 的問題]
走到 local minimal 則停住,但其實還存在global minimal 只是沒走到。
在 linear regression 是不會發生的 (Oh yeah)

convex => no local optimal
In linear regression, the loss function L is convex
Learning rate : 一步走的大小
當接近 最低點 ,走小步
當離最低點 還很遠,走大步

Step 3 : 找到一個 演算法挑出 最好的function

以在 Step 2 提到的 y = wx + b 先來做個評估

training data 評估的結果 error 值 比 testing data 還來得小 ,也就是說 效果比較好,其實這很直觀,當學生考試時,老師出的題目是從平常的練習題(training data)出的,當然會考得比較好。而沒看過的考題或是題型 歸類到 testing data。
實際上,看testing data 評估出來的值,較客觀。

那如何讓model更準呢 ? select another model
把model 變複雜試試看,原本是特徵值的1次方,變成 2 3 4 5 次方 。



截圖自 Regression - Case Study
由上方的兩張圖可以看出
Traing Data 隨著複雜度上升,error 越小。因為 涵蓋範圍越大。
但是 Testing Data 並非如此,在次方數為5時,error 暴增。
==> 更複雜 在testing data error 的上升/下降 不一定
相似的example : 駕訓班學車
教練會給你說 到哪 看到哪個樹 開始轉,路邊停車。再得到駕照後,一樣路邊停車,沒有任何標誌可以看,就停不太進去啦,總是歪一邊QQ

再來是否除了現在的CP值會影響進化後的CP值呢?
其實在不同物種是有差的,所以套入不同的linear model,再用一種方式 讀法(delta) 合併 一個linear model,當是A物種 採用哪個,當是B物種採用哪個 ...

最後 再減少error上,還有一個方法 : redesign loss function 。
當 weight 越smooth 越好,所以多了一個 參數(入:lamda) 去 調整平滑度

當越平滑時 輸入對輸出的影響小 => 雜訊下降

但太over smooth 也不行 。在調整的每次紀錄中挑一個 error 最小的 。

[conclusion]
特徵值 除了 現在的CP值 + 物種分類 ,再多考慮其他 身高 體重等等的 feature 下 效果可以越好,圖形越fit (真實值和實際值)。

Ref :
Regression - Case Study


上一篇
Day 4 Use Case
下一篇
Day 6 預測是否高關懷
系列文
Predicting Inter Bus Arrival Times 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言