隨機梯度下降法Stochastic Gradient Descent (SGD)
何謂梯度下降法,批次梯度,隨機梯度下降?
梯度下降
梯度下降法是輸入全部數據進到AI模型當中進行訓練,在梯度下降法更新權重的部分,AI模型就是根據看過的所有資料之後,產生的梯度進行權重更新。
![梯度下降法是輸入全部數據到AI模型訓練](https://i0.wp.com/peterlihouse.com/wp-content/uploads/2024/12/image-14.png?resize=1024%2C540&ssl=1)
批次梯度Batch Gradient Descent
批次梯度Batch Gradient Descent是輸入部分數據進到AI模型中進行訓練,在權重更新部分是根據看到的部分資料,也就是分批的資料,根據每一批的資料進行權重更新。
![批次梯度下降法是將數據分批輸入到AI模型當中進行訓練](https://i0.wp.com/peterlihouse.com/wp-content/uploads/2024/12/image-15.png?resize=1024%2C540&ssl=1)
隨機梯度Stochastic Gradient Descent (SGD)
隨機梯度Stochastic Gradient Descent (SGD)是輸入每一筆數據進到AI模型當中進行訓練,AI模型就會根據這一筆的梯度資料,進行權重更新。
![隨機梯度下降法是輸入每筆數據到AI模型中進行訓練](https://i0.wp.com/peterlihouse.com/wp-content/uploads/2024/12/image-16.png?resize=1024%2C557&ssl=1)
梯度下降法與隨機梯度下降法Stochastic Gradient Descent (SGD)是兩個極端的作法,梯度下降法是根據全部數據進行梯度下降,隨機梯度下降法是根據一筆數據進行梯度下降,批次梯度下降法是介於這兩者之間。
隨機梯度Stochastic Gradient Descent (SGD)優點
1.只要一筆數據就能更新,可大幅減低計算成本。
數據越多,電腦運算資源會越龐大,一筆數據就能訓練更新,對電腦運算資源要求就不會那麼高。
2.只需一筆資料就可更新模型,那就可以即時輸入最新數據作更新。
譬如梯度下降法要看過三萬筆資料才能訓練,隨機梯度只要看過一筆資料就能訓練,就可以即時獲得新數據後,直接丟入模型進行訓練。
3.有可能可減少掉入局部最小值。
如果輸入全部數據進行梯度下降,在權重損失空間如果存在局部最小值,可能最後就會落在局部最小值,造成訓練效果不佳。而隨機梯度下降建構的權重損失空間,就有可能不會看到這個局部最小值,就有可能會有好的訓練效果。
何時要應用隨機梯度Stochastic Gradient Descent (SGD)情境?
1.運算資源低。
電腦沒有那麼強的運算資源,就很適合採用這種方式進行訓練。
2.數據變化很快,採用固定模型可能會不符合需求,需要即時更新。
有些應用情境,輸入與輸出之間有固定的關係,例如y=x^2,或是更簡單來講,牛頓第二運動定律,F=ma,基本上這個關係不會隨著時間變化。
![輸入與輸出之間有固定關係,例如y=x^2,比較好採用固定的AI模型去描述](https://i0.wp.com/peterlihouse.com/wp-content/uploads/2024/12/image-17.png?resize=1024%2C738&ssl=1)
可是當今天有些應用情境,在某段時間內,輸入與輸出之間關係為y=x^2,在另一段時間輸入與輸出關係又變成y=x,不斷變化,這時候,採用y=x^2訓練出來的模型,應用在y=x的情境下,就會造成模型失準。
![但是如果在某一段時間內輸入與輸出關係會是y=x^2關係,到下一個時間內,又變成y=x關係,則採用固定AI模型難以描述,需要對模型重新訓練](https://i0.wp.com/peterlihouse.com/wp-content/uploads/2024/12/image-18.png?resize=1024%2C601&ssl=1)
因此,在這種資料特性會隨時間劇烈變化的情境,就需要不斷更新模型。
而因為隨機梯度下降法,可以每一筆資料就更新模型,就非常適合應用在這樣的情境上。
就可以每獲得一筆新資料,就即時輸入模型當中進行訓練更新。
![隨機梯度下降法好處在於可每獲得一筆資料對模型進行訓練更新,就可以讓AI模型保持最新](https://i0.wp.com/peterlihouse.com/wp-content/uploads/2024/12/image-19.png?resize=1024%2C658&ssl=1)
那因為這時候模型可以擺在線上,然後有新數據就即時更新,因此,也可以稱作是線上學習online learning。
3.如果採用全梯度訓練過程中,效果不佳,或許是落到局部最小值,這時候也可以採用隨機梯度,看看有沒有幾會跳出局部最小值,到全域最小值。
如果梯度下降訓練出來的模型效果都不佳,就可以考慮應用看看,將batch size設定為1,改為隨機梯度下降法重新訓練,或許有機會得到更棒的模型。
隨機梯度Stochastic Gradient Descent (SGD)待注意的地方
收斂性不佳
由於隨機梯度只依照一筆數據進行梯度下降,有可能會導致梯度變化劇烈,導致最終收斂效率不佳,這時候需要有其他方法,綜合隨機梯度下降法使用,來改善收斂的問題。例如可以給定momentum動量梯度下降法,來改善整體收斂效率。
結論
本篇文章介紹完隨機梯度下降內容,同時也點出線上學習概念,類神經網路訓練,有不同方式進行訓練,就針對不同情境,靈活運用,就可以發揮最佳的效果。
最近AI原理文章:
半監督式學習Semi-Supervised Learning
Stable Diffusion原理: 文字生成圖片簡易說明
[類神經網路基礎系列專文]:
1.類神經網路(Deep neural network, DNN)介紹
3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?
4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索
5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理
6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握
8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法
10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法
11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗
12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感
[機器學習基礎系列專文]:
1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
[類神經網路延伸介紹]:
1.卷積類神經網路(Convolution neural network,CNN)介紹
2.遞迴類神經網路(Recurrent neural network,RNN)介紹
[ChatGPT系列專文]: