當(dāng)涉及 MATLAB Neural Network Toolbox 中的 traingdx
和 traincgb
訓(xùn)練函數(shù)時,下面是它們的原理和表達(dá)公式的簡要說明:
traingdx 的原理:
- traingdx實(shí)現(xiàn)了梯度下降法(Gradient Descent)與動量優(yōu)化(Momentum Optimization)和自適應(yīng)學(xué)習(xí)率(Adaptive Learning Rate)的結(jié)合。
- 它使用動量優(yōu)化來加速收斂所禀,并通過自適應(yīng)學(xué)習(xí)率調(diào)整來提高穩(wěn)定性和準(zhǔn)確性。
動量優(yōu)化原理:
- 動量優(yōu)化通過在每次迭代中累積梯度的指數(shù)加權(quán)平均取募,以加速更新權(quán)重瑟幕。這個指數(shù)加權(quán)平均稱為動量(momentum)承匣,可以使梯度下降更加平穩(wěn)宁仔。
- 具體地稠屠,動量項會根據(jù)上一次的梯度方向和當(dāng)前梯度方向的差異進(jìn)行調(diào)整,通過動量項翎苫,算法可以根據(jù)歷史梯度的方向和當(dāng)前梯度的方向的差異來調(diào)整權(quán)重的更新方向权埠。如果歷史梯度和當(dāng)前梯度的方向一致,則動量項會增強(qiáng)這個方向上的權(quán)重更新煎谍;如果方向不一致攘蔽,則動量項會減小這個方向上的權(quán)重更新使得在相同方向上持續(xù)前進(jìn)的概率增加。
自適應(yīng)學(xué)習(xí)率原理:
- 自適應(yīng)學(xué)習(xí)率是通過根據(jù)梯度的變化情況動態(tài)調(diào)整每個權(quán)重的學(xué)習(xí)率粱快。
- 一種常見的自適應(yīng)學(xué)習(xí)率算法是根據(jù)梯度的二次變化來調(diào)整學(xué)習(xí)率秩彤。如果梯度變化較大,則減小學(xué)習(xí)率事哭;如果梯度變化較小,則增加學(xué)習(xí)率瓜富。
traingdx表達(dá)公式:
動量項的公式如下所示:
其中鳍咱,是動量項(momentum term),是動量參數(shù)(通常取值在 0 到 1 之間)与柑,是上一次迭代的動量項谤辜,是學(xué)習(xí)率,是當(dāng)前迭代的梯度价捧。
在權(quán)重更新時丑念,動量項與權(quán)重的更新量相加,即:
其中结蟋,是權(quán)重的更新量脯倚。
通過動量項,權(quán)重的更新量不僅依賴于當(dāng)前的梯度,還考慮了歷史梯度的影響推正,從而加速收斂并提高算法在平坦或曲折表面上的性能恍涂。
權(quán)重更新公式:
學(xué)習(xí)率的自適應(yīng)調(diào)整:
是根據(jù)梯度變化率和目標(biāo)變化率之比來計算的
其中,是上一次迭代中梯度的變化量植榕,是當(dāng)前迭代中梯度的變化量再沧。
這個公式的含義是,通過比較前一次迭代和當(dāng)前迭代中梯度的變化率尊残,來判斷學(xué)習(xí)率的調(diào)整方向和幅度炒瘸。如果當(dāng)前梯度變化較小(較星奚馈)什燕,而前一次梯度變化較大(較大),則說明目標(biāo)函數(shù)在當(dāng)前權(quán)重附近變化較小竞端,可以增大學(xué)習(xí)率屎即;反之,如果當(dāng)前梯度變化較大事富,而前一次梯度變化較小技俐,則說明目標(biāo)函數(shù)在當(dāng)前權(quán)重附近變化較大,可以減小學(xué)習(xí)率统台。
traincgb的原理:
- traincgb實(shí)現(xiàn)了共軛梯度法(Conjugate Gradient)與 Barzilai-Borwein 學(xué)習(xí)率的結(jié)合雕擂。
- 共軛梯度法是一種優(yōu)化算法,用于求解線性方程組或優(yōu)化問題贱勃。
- Barzilai-Borwein 學(xué)習(xí)率是一種自適應(yīng)學(xué)習(xí)率方法井赌,基于共軛梯度法的特性來自動調(diào)整每個權(quán)重的學(xué)習(xí)率。
共軛梯度法原理:
- 共軛梯度法使用共軛梯度方向更新權(quán)重贵扰,以最小化損失函數(shù)仇穗。
- 共軛梯度法的關(guān)鍵思想是在每個迭代步驟中選擇一個共軛方向,使得該方向與前一個方向的梯度無關(guān)戚绕。
Barzilai-Borwein 學(xué)習(xí)率原理:
-
Barzilai-Borwein 學(xué)習(xí)率根據(jù)共軛梯度法的歷史梯度和權(quán)重變化來計算學(xué)習(xí)率纹坐。
- 具體地,根據(jù)歷史梯度和權(quán)重變化計算一個自適應(yīng)的學(xué)習(xí)率舞丛,以加快收斂速度并提高準(zhǔn)確性耘子。
traincgb表達(dá)公式:
-
更新權(quán)重的公式:
共軛梯度法原理:
共軛方向的計算:
Barzilai-Borwein 學(xué)習(xí)率原理:
學(xué)習(xí)率的計算: