機器學習(中)線性回歸、損失函數、梯度下降

更新於 發佈於 閱讀時間約 6 分鐘

終於來的線性回歸,高中學的線性回歸是 y=ax+b, 但在數據集中,哪一條線性回歸預測是最適合的呢?計算過程中會使用到梯度下降和損失函數的概念。

圖片截圖自:Gradient Descent, Step-by-Step

線性回歸 (Linear Regression) 簡單介紹

線性回歸是一種用來預測的數學模型,目的是找到一條直線,讓這條直線可以盡可能貼近數據點。我們可以利用這條直線來預測未來的值,比如根據重量預測高度。

線性回歸的流程

  1. 收集資料:準備好你需要的數據,例如重量 (X) 和高度(Y)。
  2. 建立模型:假設我們的預測公式是直線的形式: y=wx+b其中,w是斜率(slope),b 是截距(intercept)。
  3. 計算誤差:找出這條直線和真實數據的誤差,用來評估模型的準確性。
  4. 優化模型:使用「梯度下降法」來調整 w 和 b,讓模型誤差更小。
  5. 測試模型:用新數據來驗證模型的效果。

詳細流程說明

下圖 0.64 是我們給的斜率(slope), intercept 是截距的意思,若截距的值是當x=0,y的值,也就是距離原點多遠

raw-image

第二步,計算資料點到回歸線的距離。因為有些點是在線下面,避免正負抵銷,所以使用「均方誤差 」(MSE, Mean Squared Error)

raw-image
raw-image

第一個點的實際y是1.4,預測 y 套用模型算出來的值是 1.1

raw-image
raw-image

將所有的點畫出來,形成損失函數(實際點到預測點距離誤差)。最低點是損失函數Loss/Cost function (MSE loss)的點,但如何確定這個最低點是真的最低點?我們每次都要一個一個點慢慢找嗎?其實有個方法是梯度下降 (Gradient Descent) 可以迅速找到最低點。

再講解梯度下降的微積分數學之前,我們先來簡單看這兩個概念的目的

梯度下降 (Gradient Descent) & 隨機梯度下降 (Stochastic Gradient Descent)

  1. 梯度下降 (Gradient Descent)
    • 用來優化模型的演算法,目的是讓 Loss 越來越小。
    • 模型會根據 Loss 的變化來調整 w 和 b
  2. 隨機梯度下降 (SGD)
    • 每次只用一筆數據點來計算 Loss,讓演算法更快適應大量數據。

圖解:可以用一個 Loss 曲面圖,畫出梯度下降一步步逼近最低點的過程。

數學時間到~


raw-image

先看其中一個曲線所形成的點微分做示範,計算過程會用到 Chain Rule (降次,先微外再微內) 跟 Power Rule

可以參考這篇文章:AI模型訓練的數學基礎:微分入門教學

raw-image

因此會得到 -2(1.4-(intercept +0.64*0.5)是他的微分結果。

intercept 是截距的變數,若截距設定為 0 那麼可以得到 -5.7,這有什麼目的呢?最低點微分會接近0

raw-image
raw-image

Learning Rate 與下一個點的計算

問題來了,該如何決定調整的幅度?

Gradient Descent (梯度下降) 中,我們希望找到損失函數 (Loss Function) 的最低點,這代表模型的誤差最小。為了達到這個目標,我們使用微分來計算斜率,並根據這個斜率來調整參數,一步步朝向最低點移動。

1. Learning Rate (學習率) 是什麼?

Learning Rate (學習率,記作 α) 是一個超參數(在訓練前要自訂),決定我們每次更新參數的步伐大小。它影響:

  • 學習率太大:容易錯過最佳點,甚至導致發散 (不收斂)
  • 學習率太小:收斂速度太慢,需要很多次迭代才能找到最佳解

這就是為什麼選擇合適的學習率很重要。


2. 計算下一個點

我們的目標是 透過梯度下降來更新參數 θ,讓它逐步接近最佳解。

  1. 計算損失函數的梯度 (Gradient,∇J(θ))
    • 這是透過 微分 (Derivative) 來計算
    • 代表損失函數在當前點的斜率,指示該點應該往哪個方向調整
  2. 計算 Step Size (步長)
    • Step Size = 梯度 × Learning Rate
    • 這決定了我們應該向哪個方向前進,以及移動的距離
  3. 更新參數
    • 新參數 = 舊參數 - Step Size
    • 為什麼是減號 (-)?因為梯度代表的是「上升」的方向,而我們要最小化損失,因此應該朝「相反方向」前進。
raw-image

做到什麼時候停止呢? slope 接近0,但實際上很困難,所以只要 Step size 接近0.001 就好了。

raw-image

另外,實際上不會只有一個參數,模型會有多個參數呈現立體,或是物理無法想像的多維度,所以才要用微分與梯度下降快速找到損失函數最低的點。


至於這些理論如何在程式碼實現,下一篇我會介紹

1. 手刻梯度下降法 (Batch Gradient Descent)

  1. Scikit-Learn 套件


留言0
查看全部
avatar-img
發表第一個留言支持創作者!
本篇筆記介紹非監督式學習的三大類別:分群、關聯分析和降維,並深入說明其概念、演算法和應用場景。包含K-Means分群演算法、Apriori關聯分析演算法、PCA降維技術,以及強化學習的基礎概念。
深入探討監督式學習中的分類預測,涵蓋邏輯回歸、混淆矩陣、模型評估指標 (Accuracy, Precision, Recall, F1 Score)、ROC 曲線、AUC,以及 KNN、SVM 和 Naive Bayes 等分類演算法。還介紹決策樹、Bagging、Boosting 等集成學習方法。
這篇文章提供機器學習和人工智慧的基礎概念,包含監督式學習、非監督式學習、強化學習,以及模型訓練、優化和評估等重要環節。文中也涵蓋了特徵工程、特徵縮放、維度詛咒等關鍵概念,並簡要介紹了正規化、K折交叉驗證等進階技術。
本文回顧向量內積、方向導數與梯度的概念,並以生活化的比喻和數學公式說明它們在微積分和機器學習中的應用,尤其是在梯度下降法中尋找函數最低點的過程。
本文提供微分的基礎概念介紹,包含微分的定義、極限的應用、Power Rule 和 Chain Rule 的說明,以及偏微分的概念。文中包含圖表公式,並以淺顯易懂的方式說明微積分在 AI 模型訓練中的重要性。
這篇文章介紹了幾種常見的密碼破解方法,例如字典攻擊、密碼填充攻擊、彩虹表攻擊等,並說明使用密碼管理員、以及網站採用 Salting 技術等方式來提升資訊安全。文章也涵蓋了端對端加密、全盤加密、對稱式和非對稱式加密、Passkey 和模數運算等概念,並以淺顯易懂的方式說明其原理和應用。
本篇筆記介紹非監督式學習的三大類別:分群、關聯分析和降維,並深入說明其概念、演算法和應用場景。包含K-Means分群演算法、Apriori關聯分析演算法、PCA降維技術,以及強化學習的基礎概念。
深入探討監督式學習中的分類預測,涵蓋邏輯回歸、混淆矩陣、模型評估指標 (Accuracy, Precision, Recall, F1 Score)、ROC 曲線、AUC,以及 KNN、SVM 和 Naive Bayes 等分類演算法。還介紹決策樹、Bagging、Boosting 等集成學習方法。
這篇文章提供機器學習和人工智慧的基礎概念,包含監督式學習、非監督式學習、強化學習,以及模型訓練、優化和評估等重要環節。文中也涵蓋了特徵工程、特徵縮放、維度詛咒等關鍵概念,並簡要介紹了正規化、K折交叉驗證等進階技術。
本文回顧向量內積、方向導數與梯度的概念,並以生活化的比喻和數學公式說明它們在微積分和機器學習中的應用,尤其是在梯度下降法中尋找函數最低點的過程。
本文提供微分的基礎概念介紹,包含微分的定義、極限的應用、Power Rule 和 Chain Rule 的說明,以及偏微分的概念。文中包含圖表公式,並以淺顯易懂的方式說明微積分在 AI 模型訓練中的重要性。
這篇文章介紹了幾種常見的密碼破解方法,例如字典攻擊、密碼填充攻擊、彩虹表攻擊等,並說明使用密碼管理員、以及網站採用 Salting 技術等方式來提升資訊安全。文章也涵蓋了端對端加密、全盤加密、對稱式和非對稱式加密、Passkey 和模數運算等概念,並以淺顯易懂的方式說明其原理和應用。
你可能也想看
Google News 追蹤
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
本文深入探討均線的應用技巧,包括均線排列、斜率變化和交叉信號的解讀,強調了均線在判斷市場趨勢中的重要性,並提醒投資者需要結合其他因素做出全面的投資決策。
本文深入淺出地解析均線使用技巧,包括均線排列、股價與均線關係、均線斜率及交叉等重點,幫助投資者掌握趨勢判斷的關鍵,提升投資決策能力。
Thumbnail
這篇是給初學技術分析者的建議,覺得去蕪存菁,最簡潔有效的東西。 1.認識什麼是K線,開高低收,成交量。 2.知道均線與均量的數學意義。 3.學習簡單的走勢型態,比如W底M頭,切線,跳空缺口。 以上3點就足夠了,不管基於什麼說法想法理由,都不要花時間去學任何其他指標。
Thumbnail
技術指標源自統計學原理,反映市場變化的概率分佈,而非預測工具。本文了解指標背後邏輯有利活學活用,甚至自行改良創新。
Thumbnail
這篇文章將分享作者在量化交易中的一些心得和經驗,包括使用線性表示商品未來合理價格、避免以單一指標決定交易等。透過這些觀點,讀者可以獲得更多對量化交易的理解。
Thumbnail
趨勢線1-2-3策略利用趨勢和轉折元素,通過線圖可視化關鍵點。可對策略做變換,藉此了解市場動能,並設置動態停損線。策略風險在於進場停損需確實,且可能因為提前出場而少賺。因對少賺風險,可以藉由一些停損點設置方式來改善績效。
什麼叫均值回歸,要如何搭配股市操作,可以參考作者的方法。
Thumbnail
透過探討指數級增長、常態分布與冪律分布在選擇行業時的應用,強調了分析邊際成本和市場分布特性的重要性。作者挑戰傳統追隨者思維,提倡創新和尋找獨特優勢,並透過服務業例子展示如何應用這些底層邏輯進行前瞻性決策,幫助讀者識別增長機會,制定成功策略。
均線我想是很多人在學技術分析的過程必學的,但每個人設定的均線也都不一樣,到底要如何應用? 我身邊不乏有人,站上五日線轉強,跌破月線轉弱,其實坊間上看到的很多都是如此的說法! 這種方法也許有人可以賺到錢,但我是賺不到啦! 以下言語是否熟悉: A: XXXX跌破月線,我該停損嗎? B:XXXX跌
Thumbnail
這篇文章的標題有「預測」二字,但看完之後請大家思考一下,這種基於「統計學」、「機器學習」的預測方法,是否跟你心中的「預測」相差甚遠呢?
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
本文深入探討均線的應用技巧,包括均線排列、斜率變化和交叉信號的解讀,強調了均線在判斷市場趨勢中的重要性,並提醒投資者需要結合其他因素做出全面的投資決策。
本文深入淺出地解析均線使用技巧,包括均線排列、股價與均線關係、均線斜率及交叉等重點,幫助投資者掌握趨勢判斷的關鍵,提升投資決策能力。
Thumbnail
這篇是給初學技術分析者的建議,覺得去蕪存菁,最簡潔有效的東西。 1.認識什麼是K線,開高低收,成交量。 2.知道均線與均量的數學意義。 3.學習簡單的走勢型態,比如W底M頭,切線,跳空缺口。 以上3點就足夠了,不管基於什麼說法想法理由,都不要花時間去學任何其他指標。
Thumbnail
技術指標源自統計學原理,反映市場變化的概率分佈,而非預測工具。本文了解指標背後邏輯有利活學活用,甚至自行改良創新。
Thumbnail
這篇文章將分享作者在量化交易中的一些心得和經驗,包括使用線性表示商品未來合理價格、避免以單一指標決定交易等。透過這些觀點,讀者可以獲得更多對量化交易的理解。
Thumbnail
趨勢線1-2-3策略利用趨勢和轉折元素,通過線圖可視化關鍵點。可對策略做變換,藉此了解市場動能,並設置動態停損線。策略風險在於進場停損需確實,且可能因為提前出場而少賺。因對少賺風險,可以藉由一些停損點設置方式來改善績效。
什麼叫均值回歸,要如何搭配股市操作,可以參考作者的方法。
Thumbnail
透過探討指數級增長、常態分布與冪律分布在選擇行業時的應用,強調了分析邊際成本和市場分布特性的重要性。作者挑戰傳統追隨者思維,提倡創新和尋找獨特優勢,並透過服務業例子展示如何應用這些底層邏輯進行前瞻性決策,幫助讀者識別增長機會,制定成功策略。
均線我想是很多人在學技術分析的過程必學的,但每個人設定的均線也都不一樣,到底要如何應用? 我身邊不乏有人,站上五日線轉強,跌破月線轉弱,其實坊間上看到的很多都是如此的說法! 這種方法也許有人可以賺到錢,但我是賺不到啦! 以下言語是否熟悉: A: XXXX跌破月線,我該停損嗎? B:XXXX跌
Thumbnail
這篇文章的標題有「預測」二字,但看完之後請大家思考一下,這種基於「統計學」、「機器學習」的預測方法,是否跟你心中的「預測」相差甚遠呢?