AI 學習紀錄 – 線性回歸

線性回歸(WiKi)學校上過,不過從來也沒搞懂是做什麼用的。簡單的說就是為一堆散落的點,找出一個最小差距的公式。

線性迴歸

網路上對線性迴歸的機器學習範例比較多,所以就從這篇開始學習。另外一個是分類問題,也會再後續有學習心得再記錄下來,本文是參考這個 Youtube 影片

影片內的程式是對 x^2 做線性回歸,我自己練習是做加法的線性回歸。

程式碼

幾個小筆記

  1. NeuralNetwork() 是主要的學習網路,輸入參數2個,中間層10個參數,輸出層1個。學傳統程式的人可能會看不懂這是在幹麻,只宣告了 input, output與 hidden 參數,怎麼可以得出結果。機器學習即是透過調整10個中間層參數,來對照出輸結果與正確結果的差距,來產生一組最佳參數,最貼近答案。
  2. foward()  即是丟進資料時的處理,先將資料丟入 hidden 層,得到結果。得到的結果會先呼叫一個 F.relu() 來將結果做處理,大於0則為原值,小於0則為0。然後處理後的結果餵給 predict 層,並將結果傳回。至於為什麼要 relu 這個動作,我也不太清楚,應該與模型的自動計算有關吧。
  3. optimizer() 是自動調整這些參數的功能,而 loss_func 則是計算正確答案與訓練結果的差距。
  4. Torch 對於資料的處理,似忽要以浮點數處理,才能有正確的結果,這邊還不是很瞭解。所以這邊都會將要處理的數字,先除1000。
  5. 最後訓練完後,會丟入一個 0.056 + 0.035 的測試,來看推論出來的結果是否貼結真實答案。這裡發現如果預先訓時就用過這個值,那最後測試時的結果都會很接近。但若訓練過程中沒出現這個數值,則會有較大的差距。這其實也是合理的,因為訓練時如果參數已有為這個數值做過調整,就可以有比較好的答案。

以上是自己的筆記,還有很多猜測的部份,請讀者參考即可。

 

Leave a Reply

請輸入答案 − 1 = 3