Softmax在機(jī)器學(xué)習(xí)中有非常廣泛的應(yīng)用,但是剛剛接觸機(jī)器學(xué)習(xí)的人可能對(duì)Softmax的特點(diǎn)以及好處并不理解,其實(shí)你了解了以后就會(huì)發(fā)現(xiàn),Softmax計(jì)算簡(jiǎn)單,效果顯著,非常好用。
我們先來(lái)直觀看一下,Softmax究竟是什么意思
我們知道m(xù)ax,假如說(shuō)我有兩個(gè)數(shù),a和b,并且a>b,如果取max,那么就直接取a,沒(méi)有第二種可能
但有的時(shí)候我不想這樣,因?yàn)檫@樣會(huì)造成分值小的那個(gè)饑餓。所以我希望分值大的那一項(xiàng)經(jīng)常取到,分值小的那一項(xiàng)也偶爾可以取到,那么我用softmax就可以了
現(xiàn)在還是a和b,a>b,如果我們?nèi)“凑誷oftmax來(lái)計(jì)算取a和b的概率,那a的softmax值大于b的,所以a會(huì)經(jīng)常取到,而b也會(huì)偶爾取到,概率跟它們本來(lái)的大小有關(guān)。所以說(shuō)不是max,而是 Soft max
那各自的概率究竟是多少呢,我們下面就來(lái)具體看一下
定義
假設(shè)我們有一個(gè)數(shù)組V,Vi表示V中的第i個(gè)元素,那么Vi元素的Softmax值就是
Vi元素的Softmax值
也就是說(shuō),是該元素的指數(shù)值,與所有元素指數(shù)值和的比值
這個(gè)定義可以說(shuō)非常的直觀,當(dāng)然除了直觀樸素好理解以外,它還有更多的優(yōu)點(diǎn)
1.計(jì)算與標(biāo)注樣本的差距
在神經(jīng)網(wǎng)絡(luò)的計(jì)算當(dāng)中,我們經(jīng)常需要計(jì)算按照神經(jīng)網(wǎng)絡(luò)的正向傳播計(jì)算的分?jǐn)?shù)S1,按照正確標(biāo)注計(jì)算的分?jǐn)?shù)S2,之間的差距,計(jì)算Loss,才能應(yīng)用反向傳播。Loss定義為交叉熵
交叉熵
取log里面的值就是這組數(shù)據(jù)正確分類(lèi)的Softmax值,它占的比重越大,這個(gè)樣本的Loss也就越小,這種定義符合我們的要求
2.計(jì)算上非常非常的方便
當(dāng)我們對(duì)分類(lèi)的Loss進(jìn)行改進(jìn)的時(shí)候,我們要通過(guò)梯度下降,每次優(yōu)化一個(gè)step大小的梯度
我們定義選到y(tǒng)i的概率是
yi的概率
然后我們求Loss對(duì)每個(gè)權(quán)重矩陣的偏導(dǎo),應(yīng)用到了鏈?zhǔn)椒▌t
求導(dǎo)結(jié)果
詳細(xì)過(guò)程
求導(dǎo)過(guò)程
最后結(jié)果的形式非常的簡(jiǎn)單,只要將算出來(lái)的概率的向量對(duì)應(yīng)的真正結(jié)果的那一維減1,就可以了
舉個(gè)例子,通過(guò)若干層的計(jì)算,最后得到的某個(gè)訓(xùn)練樣本的向量的分?jǐn)?shù)是[ 1, 5, 3 ],
那么概率分別就是
訓(xùn)練樣本的概率
如果這個(gè)樣本正確的分類(lèi)是第二個(gè)的話(huà),那么計(jì)算出來(lái)的偏導(dǎo)就是
[0.015,0.866?1,0.117]=[0.015,?0.134,0.117]
是不是很簡(jiǎn)單!!然后再根據(jù)這個(gè)進(jìn)行back propagation就可以了
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4773瀏覽量
100872 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8423瀏覽量
132751
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論