Lesson13【加餐】 损失函数的随机创建现象详解
【Lesson 13 加餐】損失函數(shù)的隨機(jī)創(chuàng)建現(xiàn)象詳解
??接下來,我們通過手動創(chuàng)建一個(gè)實(shí)例,來觀察在小批梯度下降過程中,損失函數(shù)是如何根據(jù)數(shù)據(jù)數(shù)據(jù)變化而變化的,這里既是作為本節(jié)內(nèi)容的一個(gè)補(bǔ)充,同時(shí)也是指出一個(gè)常見的誤區(qū)、以及解決一個(gè)常見的問題。
- 誤區(qū):損失函數(shù)從始至終都不變,梯度下降迭代過程就是“從山頂走到山腳”,一步步找到最小值;
- 問題:為何迭代過程中損失函數(shù)下降,但模型評估指標(biāo)卻出現(xiàn)波動。
我們通過手動實(shí)例進(jìn)行說明。首先創(chuàng)建一組數(shù)據(jù)如下:
| 1 | 2 |
| 3 | 5 |
| 6 | 4 |
| 8 | 3 |
我們使用y=wxy=wxy=wx方程對其進(jìn)行擬合,并以SSE作為損失函數(shù)。假設(shè)我們使用小批量梯度下降,每次帶入兩條數(shù)據(jù)進(jìn)行損失函數(shù)計(jì)算,第一次帶入前兩條數(shù)據(jù)、第二次帶入后兩條數(shù)據(jù),則第一輪epoch的第一次迭代過程中損失函數(shù)如下:
SSE(1)=(2?1?w)2+(5?3?w)2=w2?4w+4+9w2?30w+25=10w2?34w+29\begin{aligned} S S E_{(1)} &=(2-1 * w)^{2}+(5-3 * w)^{2} \\ &=w^{2}-4 w+4+9 w^{2}-30 w+25 \\ &=10 w^{2}-34 w+29 \end{aligned} SSE(1)??=(2?1?w)2+(5?3?w)2=w2?4w+4+9w2?30w+25=10w2?34w+29?據(jù)此可以算得當(dāng)前梯度公式如下:
grad?(1)=?SSE(1)?(w)=20w?34\begin{aligned} \operatorname{grad}_{(1)} &=\frac{\partial S S E_{(1)}}{\partial(w)} \\ &=20 w-34 \end{aligned} grad(1)??=?(w)?SSE(1)??=20w?34?然后再進(jìn)行迭代。然而再第一輪epoch的第二次迭代時(shí),由于我們帶入了另外兩條數(shù)據(jù),此時(shí)的損失函數(shù)就有所不同了:SSE(2)=(4?6?w)2+(3?8?w)2=36w2?48w+16+64w2?48w+9=100w2?96w+25\begin{aligned} S S E_{(2)} &=(4-6 * w)^{2}+(3-8 * w)^{2} \\ &=36 w^{2}-48 w+16+64 w^{2}-48 w+9 \\ &=100 w^{2}-96 w+25 \end{aligned} SSE(2)??=(4?6?w)2+(3?8?w)2=36w2?48w+16+64w2?48w+9=100w2?96w+25?對應(yīng)的梯度計(jì)算公式也會有所不同
grad?(2)=?SSE(1)?(w)=200w?96\begin{aligned} \operatorname{grad}_{(2)} &=\frac{\partial S S E_{(1)}}{\partial(w)} \\ &=200 w-96 \end{aligned} grad(2)??=?(w)?SSE(1)??=200w?96?而此時(shí)如果我們以SSE作為模型評估指標(biāo),則模型評估指標(biāo)其實(shí)是每一個(gè)“小批”數(shù)據(jù)對應(yīng)損失函數(shù)之和:
SSE=(2?1?w)2+(5?3?w)2+(4?6w)2+(3?8w)2=SSE(1)+SSE(2)=110w2?100w+54\begin{aligned} S S E &=(2-1 * w)^{2}+(5-3 * w)^{2}+(4-6 w)^{2}+(3-8 w)^{2} \\ &=S S E_{(1)}+S S E_{(2)} \\ &=110 w^{2}-100 w+54 \end{aligned} SSE?=(2?1?w)2+(5?3?w)2+(4?6w)2+(3?8w)2=SSE(1)?+SSE(2)?=110w2?100w+54?迭代過程我們要求每一次迭代損失函數(shù)都降低,但通過觀察上述過程不難發(fā)現(xiàn),第一輪epoch迭代第一次時(shí),SSE1SSE_1SSE1?能夠順利降低,但SSE2SSE_2SSE2?和SSESSESSE并不一定,同理,第一輪epoch迭代第二次時(shí),SSE2SSE_2SSE2?能夠順利降低,但SSE1SSE_1SSE1?和SSESSESSE并不一定。雖然我們相信數(shù)據(jù)整體特性應(yīng)該保持一致,大概率來說其中一個(gè)損失函數(shù)減少,其他損失函數(shù)也會減少,但畢竟方程不同,這其中確實(shí)也存在著一定的不確定性。我們可以通過以下代碼進(jìn)行實(shí)驗(yàn)。
??從上述結(jié)果能夠看出,每一輪的內(nèi)部兩次迭代,對于SSE1和SSE2來說都是降低的,但每一輪之間SSE1和SSE2都會出現(xiàn)波動,原因也是因?yàn)槠渌膿p失函數(shù)計(jì)算出來的w不一定能有效幫助當(dāng)前損失函數(shù)降低取值,當(dāng)然整體SSE也是在波動中趨于穩(wěn)定的。由此我們就能夠明白為何在模型訓(xùn)練過程中,明明應(yīng)該“整體向好”,但不管是損失函數(shù)還是模型指標(biāo),都可能出現(xiàn)波動的情況。
??當(dāng)然,除了上面所說的,由于小批量梯度下降每次帶入的數(shù)據(jù)不同從而導(dǎo)致?lián)p失函數(shù)不同進(jìn)而導(dǎo)致模型結(jié)果波動以外,還有一種可能也會導(dǎo)致模型結(jié)果波動,那就是目標(biāo)函數(shù)和模型評估指標(biāo)不一致。這種情況在分類問題中非常常見,常見的分類問題中損失函數(shù)是交叉熵?fù)p失函數(shù),代表極大似然估計(jì)的概率值,而模型評估指標(biāo)是準(zhǔn)確率,代表最終預(yù)測準(zhǔn)確的個(gè)數(shù)占比,而在實(shí)際建模過程中,確實(shí)有可能存在極大似然估計(jì)概率值增加但準(zhǔn)確率不變甚至降低的情況(犧牲了某條數(shù)據(jù)的判別結(jié)果但換來了其他很多條數(shù)據(jù)的極大似然估計(jì)概率值大幅提升),從而導(dǎo)致訓(xùn)練過程模型評估指標(biāo)波動。
關(guān)于小批量梯度下降算法捕捉局部規(guī)律的討論:
??其實(shí)帶入部分?jǐn)?shù)據(jù)還是帶入全部數(shù)據(jù),其實(shí)都是相對的。在小批量梯度下降中,某一次迭代雖然是帶入了全部訓(xùn)練數(shù)據(jù)集的一部分,但如果我們把這部分?jǐn)?shù)據(jù)看成全部,就相當(dāng)于是帶入了全部數(shù)據(jù)進(jìn)行訓(xùn)練。所有的訓(xùn)練都是為了捕捉規(guī)律,因此我們可以把某一次迭代看成是模型在捕捉這一部分?jǐn)?shù)據(jù)的“全部規(guī)律”,但由于這部分?jǐn)?shù)據(jù)只是所有訓(xùn)練數(shù)據(jù)的一部分,因此模型還只是捕捉了局部規(guī)律。從這個(gè)角度來說,小批量梯度下降是希望通過捕捉一個(gè)個(gè)“小批”數(shù)據(jù)的局部規(guī)律最終構(gòu)成整個(gè)數(shù)據(jù)集的整體規(guī)律。
關(guān)于小批量梯度下降算法有效性的討論:
??而為何通過捕捉局部規(guī)律最后能夠更好的把握整體規(guī)律呢?從實(shí)際運(yùn)算結(jié)果來看是因?yàn)樾∨刻荻认陆的軌蚩缭骄植孔钚≈迭c(diǎn),而根本原因則是對于某些“小批”數(shù)據(jù)來說,由于局部規(guī)律和整體規(guī)律存在差異性,整體的局部最小值點(diǎn)對于當(dāng)前“小批”數(shù)據(jù)來說根本就不是局部最小值點(diǎn)(畢竟不同數(shù)據(jù)的損失函數(shù)不同),因此帶入該“小批”數(shù)據(jù)時(shí)候就有可能直接跨越該點(diǎn),也就是說,小批量梯度下降無法跨越小批數(shù)據(jù)對應(yīng)的損失函數(shù)的最小值點(diǎn),但在下降的過程中卻有可能偶然幫助整體損失函數(shù)跨越最小值點(diǎn),這就是借助隨機(jī)性解決問題的典型。
隨機(jī)性其實(shí)是把雙刃劍:
??當(dāng)我們借助隨機(jī)性解決問題的時(shí)候,同樣也會面臨隨機(jī)性帶來的麻煩,由于一旦開始隨機(jī),整個(gè)迭代過程都會變得不可控,此后我們只能通過各種方法將這個(gè)隨機(jī)過程盡可能按照我們的意愿執(zhí)行,這也就是一系列的優(yōu)化方法的由來。
總結(jié)
以上是生活随笔為你收集整理的Lesson13【加餐】 损失函数的随机创建现象详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lesson 13.2 模型拟合度概念介
- 下一篇: Lesson 13.3 梯度不平稳性与G