| |

隨機梯度下降法Stochastic Gradient Descent (SGD)

何謂梯度下降法,批次梯度,隨機梯度下降?

梯度下降

梯度下降法是輸入全部數據進到AI模型當中進行訓練,在梯度下降法更新權重的部分,AI模型就是根據看過的所有資料之後,產生的梯度進行權重更新。

梯度下降法是輸入全部數據到AI模型訓練

批次梯度Batch Gradient Descent

批次梯度Batch Gradient Descent是輸入部分數據進到AI模型中進行訓練,在權重更新部分是根據看到的部分資料,也就是分批的資料,根據每一批的資料進行權重更新。

批次梯度下降法是將數據分批輸入到AI模型當中進行訓練

隨機梯度Stochastic Gradient Descent (SGD)

隨機梯度Stochastic Gradient Descent (SGD)是輸入每一筆數據進到AI模型當中進行訓練,AI模型就會根據這一筆的梯度資料,進行權重更新。

隨機梯度下降法是輸入每筆數據到AI模型中進行訓練

梯度下降法與隨機梯度下降法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模型去描述

可是當今天有些應用情境,在某段時間內,輸入與輸出之間關係為y=x^2,在另一段時間輸入與輸出關係又變成y=x,不斷變化,這時候,採用y=x^2訓練出來的模型,應用在y=x的情境下,就會造成模型失準。

但是如果在某一段時間內輸入與輸出關係會是y=x^2關係,到下一個時間內,又變成y=x關係,則採用固定AI模型難以描述,需要對模型重新訓練

因此,在這種資料特性會隨時間劇烈變化的情境,就需要不斷更新模型。

而因為隨機梯度下降法,可以每一筆資料就更新模型,就非常適合應用在這樣的情境上。

就可以每獲得一筆新資料,就即時輸入模型當中進行訓練更新。

隨機梯度下降法好處在於可每獲得一筆資料對模型進行訓練更新,就可以讓AI模型保持最新

那因為這時候模型可以擺在線上,然後有新數據就即時更新,因此,也可以稱作是線上學習online learning。

3.如果採用全梯度訓練過程中,效果不佳,或許是落到局部最小值,這時候也可以採用隨機梯度,看看有沒有幾會跳出局部最小值,到全域最小值。

如果梯度下降訓練出來的模型效果都不佳,就可以考慮應用看看,將batch size設定為1,改為隨機梯度下降法重新訓練,或許有機會得到更棒的模型。

隨機梯度Stochastic Gradient Descent (SGD)待注意的地方

收斂性不佳

由於隨機梯度只依照一筆數據進行梯度下降,有可能會導致梯度變化劇烈,導致最終收斂效率不佳,這時候需要有其他方法,綜合隨機梯度下降法使用,來改善收斂的問題。例如可以給定momentum動量梯度下降法,來改善整體收斂效率。

結論

本篇文章介紹完隨機梯度下降內容,同時也點出線上學習概念,類神經網路訓練,有不同方式進行訓練,就針對不同情境,靈活運用,就可以發揮最佳的效果。

最近AI原理文章:

多模態AI (Multimodal)

半監督式學習Semi-Supervised Learning

Stable Diffusion原理: 文字生成圖片簡易說明

[類神經網路基礎系列專文]:

1.類神經網路(Deep neural network, DNN)介紹

2.類神經網路—揭開網路架構調整秘辛

3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?

4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索

5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理

6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握

7.類神經網路—前向傳播法

8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法

9.類神經網路—反向傳播法(二): 淺談梯度

10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法

11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗

12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感

[機器學習基礎系列專文]:

1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

2.機器學習面臨的問題種類介紹:回歸與分類

[類神經網路延伸介紹]:

1.卷積類神經網路(Convolution neural network,CNN)介紹

2.遞迴類神經網路(Recurrent neural network,RNN)介紹

[ChatGPT系列專文]:

1.淺談最近非常火紅的ChatGPT背後可能原理機制為何?

2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧

Similar Posts