機器學習的梯度下降迴歸法— SGDRegressor( )

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

在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。

為了找到這樣的函數,我們需要定義一種衡量模型好壞的方式,這就是所謂的損失函數(或稱成本函數),或是讀者可以想成這是誤差函數,目標就是找出誤差最小的函數時的參數。對於迴歸問題,一種常見的損失函數是平方誤差損失,它計算的是模型預測和真實值之間的平方差的平均值。我們的目標是找到一組模型參數,使得損失函數的值最小。

梯度下降是一種用來找到這樣一組參數的優化算法。它從一個隨機選擇的起始點開始,然後反覆地計算損失函數在當前點的梯度(即方向和速度),並沿著梯度的反方向(就是說,沿著使損失函數值下降最快的方向) 更新模型的參數。這個過程一直持續到損失函數的值不再顯著下降(或者達到預定的迭代次數) 為止。

raw-image

若是以上述誤差函數圖而言,斜率最低點就是在底部位置。讀者可以想像你現在站在一座大山的頂部,你的目標是找到一條路徑,讓你可以順利下山到達最低點,但是你被蒙上了眼睛,所以只能憑藉著腳下感覺去尋找路徑。

現在你開始嘗試一步一步地移動,你會嘗試各種方向的步伐,找到一種方式讓你感覺到下一步會讓你下降的最多,這就是你選擇前進的方向。你會重複這個過程,一直到你感覺不再下降,也就是你可能已經到達山谷的最底部。

這就是梯度下降法的基本概念。在這個比喻中,山頂是你一開始的猜測或者初始值,山谷的最底部就像是你想要找的答案,也就是使得誤差最小的那組參數值。你一步步往下走,就像是一次又一次的調整參數,試圖找到最佳解。而你嘗試找到讓你下降最多的方向,這就像是計算誤差函數的梯度,並依此更新你的參數。

機器學習模型的訓練過程其實就像這樣的一種嘗試過程,我們希望找到最佳的模型參數,讓預測的誤差最小。

SGDRegressor 就是一種利用梯度下降進行訓練的機器學習模型。SGD 英文全名是Stochastic Gradient Descent,意思是「隨機梯度下降」。它的「隨機」一詞源於每一步中用於計算梯度的樣本是隨機選取的,而不是用整個數據集。這種做法有兩個主要優點:一是計算效率高,因為每一步只需要一個(或一小批) 樣本;二是能夠避免陷入局部最小值,因為隨機性引入了一些噪聲,有助於算法跳出局部最優並找到全局最優。所以,簡單地說,SGDRegressor 是一種使用梯度下降算法進行訓練的線性模型。其語法和主要參數如下:

from sklearn.linear_model import SGDRegressor

model = SGDRegressor(loss, penalty=, alpha, max_iter)

上述可以建立一個SGDRegressor 的實例物件,各參數意義如下:

  • loss:這定義了所使用的損失函數,預設情況下,這是「平方損失 ('squared_loss')」,這對應於普通最小平方迴歸。
  • penalty:這定義了所使用的懲罰項,預設情況是 "L2",這對應於線性模型的權重的平方和。其他可能的選項包括 "L1"(對應於權重的絕對值之和) 和"elasticnet"( 這是L1 和L2 的組合)。所謂的「懲罰」,我們可以把機器學習模型想像成一個小學生正在學習拼字。每當他學到一個新的單詞,他就會試著記住它。如果他只記住了幾個單詞,那他可能會很容易把它們拼對。但是如果他試圖記住太多的單詞,那麼他可能會開始混淆,並且拼錯一些單詞。在這裡,我們可以把「試圖記住太多的單詞」看作是模型「過擬合」訓練數據。也就是說,模型可能過於複雜,試圖擬合訓練數據中的每一個細節,甚至包括噪聲,而失去了對新數據的預測能力。這時候,我們就需要一種「懲罰」來限制模型的複雜度,讓它不要試圖記住太多的單詞。這就是所謂的 penalty。我們可以通過增加模型錯誤的「成本」或「懲罰」來阻止它記住太多的單詞。這樣,模型會更加專注於學習最重要的特徵,而不是訓練數據中的每一個細節。這就是我們在機器學習模型中使用懲罰或正則化的原因。
  • alpha:這是懲罰項的強度,預設是 0.0001。
  • learning_rate:這定義了學習率的調整策略。預設情況下,它被設置為「invscaling」,這表示使用的是逆比例縮放學習率,也就是說,每一步的學習率會隨著迭代次數的增加而減小。這種學習率的調整策略有一個特點,就是在演算法開始時,給予較大的學習率以快速接近最優解,然後隨著迭代次數增加,逐漸減小學習率,以防止在最優解附近震盪,更精確地找到最優解,這學習率將由預設的學習速率時間表來確定。其他選項包括 'constant'、'optimal'和 'adaptive'。如果學習率太高可能造成梯度無法進入局部最低點,也就是無法找出錯誤最小的參數。如果學習率太低,會造成需要比較多次的迭代,才可以進入局部最低點,也就是找出錯誤最小的參數。
  • max_iter:這是要執行的最大迭代次數,預設是 1000。
  • random_state:隨機種子值。


透過SGDRegressor( ) 我們可以讓機器學習運用梯度下降的方式來達到目標或預測結果,也能透過不同的參數設定來調整修正,降低誤差值。更多有關機器學習的方法與運用,歡迎參閱《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》獲取最完整的內容!

 

上文圖片及書摘由深智數位提供,內容取材自《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》。

天瓏:https://reurl.cc/aVj4oX

深智數位出版:《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》

深智數位出版:《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》


avatar-img
9會員
25內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
深智數位的沙龍 的其他內容
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
ChatGPT 橫空出世,開啟新的工作模式,電腦領域人氣作家洪錦魁最新力作《ChatGPT領軍 DALL-E 2 + Midjourney + D-ID + Synthesia:邁向AI文字、圖像、影片之路》,為國內第一本講解AI文字、圖像、影片的專書,展示多種AI生成技術的應用指南。
數學為我們提供了豐富多彩的素材用以學習程式設計:從讀者已掌握的知識(例如繪製一個抛物線,計算一個函數的導數)到未知的領域(如求一個複雜函數的極值),這期間有驗證的快樂,也有探索的艱辛,在不斷重複這些活動的過程中學會熟練運用這一工具,工具的熟練使用反過來也會幫助我們對特定問題進行更為深入的探討與研究。
常常聽到影像處理、Python、OpenCV等技術,最近又在流行機器學習、深度學習、CNN、人工神經網路,常常不知從何開始學習,如果有一本書能把這些知識從頭到尾講清楚有多好,再加上如果有最常用的案例實作,一定可以完整將這個現在最賺錢行業的領域變成一技之長。
2023年來看處理器的發展,x86_64系統結構與ARM64系統結構是目前市場上的主流處理器系統結構,ARM是一個整合作業系統、組合語言、C語言、電子電路技術的宏大領域。熟悉ARM架構一定是硬體工程師想要進軍CPU領域的唯一目標(當然還有一個是RISC-V)。
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
ChatGPT 橫空出世,開啟新的工作模式,電腦領域人氣作家洪錦魁最新力作《ChatGPT領軍 DALL-E 2 + Midjourney + D-ID + Synthesia:邁向AI文字、圖像、影片之路》,為國內第一本講解AI文字、圖像、影片的專書,展示多種AI生成技術的應用指南。
數學為我們提供了豐富多彩的素材用以學習程式設計:從讀者已掌握的知識(例如繪製一個抛物線,計算一個函數的導數)到未知的領域(如求一個複雜函數的極值),這期間有驗證的快樂,也有探索的艱辛,在不斷重複這些活動的過程中學會熟練運用這一工具,工具的熟練使用反過來也會幫助我們對特定問題進行更為深入的探討與研究。
常常聽到影像處理、Python、OpenCV等技術,最近又在流行機器學習、深度學習、CNN、人工神經網路,常常不知從何開始學習,如果有一本書能把這些知識從頭到尾講清楚有多好,再加上如果有最常用的案例實作,一定可以完整將這個現在最賺錢行業的領域變成一技之長。
2023年來看處理器的發展,x86_64系統結構與ARM64系統結構是目前市場上的主流處理器系統結構,ARM是一個整合作業系統、組合語言、C語言、電子電路技術的宏大領域。熟悉ARM架構一定是硬體工程師想要進軍CPU領域的唯一目標(當然還有一個是RISC-V)。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
SGD(Stochastic Gradient Descent,隨機梯度下降) 每次迭代僅使用一小部分數據,通常是一個樣本或一個小批次(minibatch,要平均)來計算梯度,從而更新模型參數。 優點: 1.更新速度快,適合大規模數據。 2.可跳出鞍點或局部極小值。 應用:
🌟 監督學習演算法(Supervised Learning Algorithms) 1️⃣ 線性回歸(Linear Regression) 應用場景:數值型預測,例如房價預測。 優勢: 簡單易懂,適合初學者。 對於線性關係的數據擬合效果佳。 局限: 無法處理非線性資料。 對異常值敏
Thumbnail
在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
在人工智能的發展歷程中,早期的研究主要側重於將解決問題的規則輸入計算機,試圖通過啟蒙運動理性的思路模擬人類的智能行為。然而,這條路逐漸變得艱難,因為規則過於繁多,無法應對複雜的情境和語境。在這個背景下,一些科學家轉向了神經網絡算法,試圖模擬人腦的感知能力。
瞭解如何透過Regression實作Classification,使用one-hot vector表示不同的類別,並透過乘上不同的Weight和加上不同的bias來得到三個數值形成向量。同時通過softmax的方式得到最終的y'值,並探討使用Cross-entropy來計算類別的loss。
瞭解梯度下降算法中的學習速率調整,包括為什麼需要動態的學習速率、Root Mean Square、RMSProp、最常用的optimization策略Adam,以及如何進行Learning rate Scheduling。
這篇文章介紹瞭如何使用sigmoid函數來解決函數過於簡單導致的模型偏差問題,並透過尋找函數和參數來逼近precise linear curve。另外,也講述瞭如何尋找讓損失函數最小的參數以及使用batch和反覆進行Sigmoid的方法。
Thumbnail
這篇文章,會帶著大家複習以前學過的 格子點DP框架, 並且以最小成本的下降路徑的應用題與概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 最小成本下降路徑的形式 每個格子點的值代表經過的成本。 要求從最上面那排往下方走,落到最下一排的最小成本的下降路徑。
Thumbnail
Sequential Feature Selection(SFS) 用中文來解釋為,逐一特徵選取訓練,找出最重要的特徵,以提高模型的性能和效率 SFS 的一些用途包括: 維度縮減: 在高維度數據中,許多特徵可能是多餘或不重要的,使用 SFS 可以找到最能代表數據的特徵,從而減少計算和記憶體需求
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
SGD(Stochastic Gradient Descent,隨機梯度下降) 每次迭代僅使用一小部分數據,通常是一個樣本或一個小批次(minibatch,要平均)來計算梯度,從而更新模型參數。 優點: 1.更新速度快,適合大規模數據。 2.可跳出鞍點或局部極小值。 應用:
🌟 監督學習演算法(Supervised Learning Algorithms) 1️⃣ 線性回歸(Linear Regression) 應用場景:數值型預測,例如房價預測。 優勢: 簡單易懂,適合初學者。 對於線性關係的數據擬合效果佳。 局限: 無法處理非線性資料。 對異常值敏
Thumbnail
在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
在人工智能的發展歷程中,早期的研究主要側重於將解決問題的規則輸入計算機,試圖通過啟蒙運動理性的思路模擬人類的智能行為。然而,這條路逐漸變得艱難,因為規則過於繁多,無法應對複雜的情境和語境。在這個背景下,一些科學家轉向了神經網絡算法,試圖模擬人腦的感知能力。
瞭解如何透過Regression實作Classification,使用one-hot vector表示不同的類別,並透過乘上不同的Weight和加上不同的bias來得到三個數值形成向量。同時通過softmax的方式得到最終的y'值,並探討使用Cross-entropy來計算類別的loss。
瞭解梯度下降算法中的學習速率調整,包括為什麼需要動態的學習速率、Root Mean Square、RMSProp、最常用的optimization策略Adam,以及如何進行Learning rate Scheduling。
這篇文章介紹瞭如何使用sigmoid函數來解決函數過於簡單導致的模型偏差問題,並透過尋找函數和參數來逼近precise linear curve。另外,也講述瞭如何尋找讓損失函數最小的參數以及使用batch和反覆進行Sigmoid的方法。
Thumbnail
這篇文章,會帶著大家複習以前學過的 格子點DP框架, 並且以最小成本的下降路徑的應用題與概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 最小成本下降路徑的形式 每個格子點的值代表經過的成本。 要求從最上面那排往下方走,落到最下一排的最小成本的下降路徑。
Thumbnail
Sequential Feature Selection(SFS) 用中文來解釋為,逐一特徵選取訓練,找出最重要的特徵,以提高模型的性能和效率 SFS 的一些用途包括: 維度縮減: 在高維度數據中,許多特徵可能是多餘或不重要的,使用 SFS 可以找到最能代表數據的特徵,從而減少計算和記憶體需求