softmax函數(shù)求導(dǎo)過程

softmax函數(shù)

softmax用于多分類過程中,它將多個(gè)神經(jīng)元的輸出突委,映射到(0,1)區(qū)間內(nèi),可以看成概率來理解冬三,從而來進(jìn)行多分類匀油!

假設(shè)我們有一個(gè)數(shù)組,V长豁,Vi表示V中的第i個(gè)元素钧唐,那么這個(gè)元素的softmax值就是

更形象的如下圖表示:

softmax直白來說就是將原來輸出是3,1,-3通過softmax函數(shù)一作用,就映射成為(0,1)的值匠襟,而這些值的累和為1(滿足概率的性質(zhì))钝侠,那么我們就可以將它理解成概率,在最后選取輸出結(jié)點(diǎn)的時(shí)候酸舍,我們就可以選取概率最大(也就是值對(duì)應(yīng)最大的)結(jié)點(diǎn)帅韧,作為我們的預(yù)測(cè)目標(biāo)!

舉一個(gè)我最近碰到利用softmax的例子:我現(xiàn)在要實(shí)現(xiàn)基于神經(jīng)網(wǎng)絡(luò)的句法分析器啃勉。用到是基于轉(zhuǎn)移系統(tǒng)來做忽舟,那么神經(jīng)網(wǎng)絡(luò)的用途就是幫我預(yù)測(cè)我這一個(gè)狀態(tài)將要進(jìn)行的動(dòng)作是什么?比如有10個(gè)輸出神經(jīng)元淮阐,那么就有10個(gè)動(dòng)作叮阅,1動(dòng)作,2動(dòng)作泣特,3動(dòng)作...一直到10動(dòng)作浩姥。(這里涉及到nlp的知識(shí),大家不用管状您,只要知道我現(xiàn)在根據(jù)每個(gè)狀態(tài)(輸入)勒叠,來預(yù)測(cè)動(dòng)作(得到概率最大的輸出),最終得到的一系列動(dòng)作序列就可以完成我的任務(wù)即可

原理圖如下圖所示:

那么比如在一次的輸出過程中輸出結(jié)點(diǎn)的值是如下:

[0.2,0.1,0.05,0.1,0.2,0.02,0.08,0.01,0.01,0.23]

那么我們就知道這次我選取的動(dòng)作是動(dòng)作10膏孟,因?yàn)?.23是這次概率最大的眯分,那么怎么理解多分類呢?很容易柒桑,如果你想選取倆個(gè)動(dòng)作弊决,那么就找概率最大的倆個(gè)值即可~(這里只是簡(jiǎn)單的告訴大家softmax在實(shí)際問題中一般怎么應(yīng)用)

softmax相關(guān)求導(dǎo)

當(dāng)我們對(duì)分類的Loss進(jìn)行改進(jìn)的時(shí)候,我們要通過梯度下降魁淳,每次優(yōu)化一個(gè)step大小的梯度丢氢,這個(gè)時(shí)候我們就要求Loss對(duì)每個(gè)權(quán)重矩陣的偏導(dǎo)傅联,然后應(yīng)用鏈?zhǔn)椒▌t。那么這個(gè)過程的第一步疚察,就是對(duì)softmax求導(dǎo)傳回去,不用著急仇奶,我后面會(huì)舉例子非常詳細(xì)的說明貌嫡。在這個(gè)過程中,你會(huì)發(fā)現(xiàn)用了softmax函數(shù)之后该溯,梯度求導(dǎo)過程非常非常方便岛抄!

下面我們舉出一個(gè)簡(jiǎn)單例子,原理一樣狈茉,目的是為了幫助大家容易理解夫椭!

我們能得到下面公式:

z4 = w41o1+w42o2+w43*o3

z5 = w51o1+w52o2+w53*o3

z6 = w61o1+w62o2+w63*o3

z4,z5,z6分別代表結(jié)點(diǎn)4,5,6的輸出,01,02,03代表是結(jié)點(diǎn)1,2,3往后傳的輸入.

那么我們可以經(jīng)過softmax函數(shù)得到

好了氯庆,我們的重頭戲來了蹭秋,怎么根據(jù)求梯度,然后利用梯度下降方法更新梯度堤撵!

要使用梯度下降仁讨,肯定需要一個(gè)損失函數(shù),這里我們使用交叉熵作為我們的損失函數(shù)实昨,為什么使用交叉熵?fù)p失函數(shù)洞豁,不是這篇文章重點(diǎn),后面有時(shí)間會(huì)單獨(dú)寫一下為什么要用到交叉熵函數(shù)(這里我們默認(rèn)選取它作為損失函數(shù))

交叉熵函數(shù)形式如下:

其中y代表我們的真實(shí)值荒给,a代表我們softmax求出的值丈挟。i代表的是輸出結(jié)點(diǎn)的標(biāo)號(hào)!在上面例子志电,i就可以取值為4,5,6三個(gè)結(jié)點(diǎn)(當(dāng)然我這里只是為了簡(jiǎn)單曙咽,真實(shí)應(yīng)用中可能有很多結(jié)點(diǎn)

現(xiàn)在看起來是不是感覺復(fù)雜了,居然還有累和溪北,然后還要求導(dǎo)桐绒,每一個(gè)a都是softmax之后的形式!

但是實(shí)際上不是這樣的之拨,我們往往在真實(shí)中茉继,如果只預(yù)測(cè)一個(gè)結(jié)果,那么在目標(biāo)中只有一個(gè)結(jié)點(diǎn)的值為1蚀乔,比如我認(rèn)為在該狀態(tài)下烁竭,我想要輸出的是第四個(gè)動(dòng)作(第四個(gè)結(jié)點(diǎn)),那么訓(xùn)練數(shù)據(jù)的輸出就是a4 = 1,a5=0,a6=0,哎呀吉挣,這太好了派撕,除了一個(gè)為1婉弹,其它都是0,那么所謂的求和符合终吼,就是一個(gè)幌子镀赌,我可以去掉啦!

為了形式化說明际跪,我這里認(rèn)為訓(xùn)練數(shù)據(jù)的真實(shí)輸出為第j個(gè)為1商佛,其它均為0!

****那么Loss就變成了Loss = -yilnaj(yi,aj的i姆打,j均為下標(biāo)良姆,公式不好打)****,累和已經(jīng)去掉了,太好了♂O罚現(xiàn)在我們要開始求導(dǎo)數(shù)了玛追!

我們?cè)谡硪幌律厦婀剑瑸榱烁用靼椎目闯鱿嚓P(guān)變量的關(guān)系:

其中yj=1,,那么形式變?yōu)長(zhǎng)oss = -lnaj

那么形式越來越簡(jiǎn)單了闲延,求導(dǎo)分析如下:

參數(shù)的形式在該例子中痊剖,總共分為w41,w42,w43,w51,w52,w53,w61,w62,w63.這些,那么比如我要求出w41,w42,w43的偏導(dǎo)慨代,就需要將Loss函數(shù)求偏導(dǎo)傳到結(jié)點(diǎn)4邢笙,然后再利用鏈?zhǔn)椒▌t繼續(xù)求導(dǎo)即可,舉個(gè)例子此時(shí)求w41的偏導(dǎo)為:

w51.....w63等參數(shù)的偏導(dǎo)同理可以求出侍匙,那么我們的關(guān)鍵就在于Loss函數(shù)對(duì)于結(jié)點(diǎn)4,5,6的偏導(dǎo)怎么求氮惯,如下:

這里分為倆種情況:

j=i對(duì)應(yīng)例子里就是如下圖所示:

比如我選定了j為4,那么就是說我現(xiàn)在求導(dǎo)傳到4結(jié)點(diǎn)這想暗!

那么由上面求導(dǎo)結(jié)果再乘以交叉熵?fù)p失函數(shù)求導(dǎo)

Loss = -lnaj,它的導(dǎo)數(shù)為-1/aj,與上面的aj(1-aj)相乘為aj-1(形式非常簡(jiǎn)單妇汗,這說明我只要正向求一次得出結(jié)果,然后反向傳梯度的時(shí)候说莫,只需要將它結(jié)果減1即可杨箭,后面還會(huì)舉例子!)那么我們可以得到Loss對(duì)于4結(jié)點(diǎn)的偏導(dǎo)就求出了了(這里假定4是我們的預(yù)計(jì)輸出

第二種情況為:

這里對(duì)應(yīng)我的例子圖如下储狭,我這時(shí)對(duì)的是j不等于i互婿,往前傳:

那么由上面求導(dǎo)結(jié)果再乘以交叉熵?fù)p失函數(shù)求導(dǎo)

Loss = -lnaj,它的導(dǎo)數(shù)是-1/aj,與上面-ajai相乘為ai(形式非常簡(jiǎn)單,這說明我只要正向求一次得出結(jié)果辽狈,然后反向傳梯度的時(shí)候慈参,只需要將它結(jié)果保存即可,后續(xù)例子會(huì)講到這里就求出了除4之外的其它所有結(jié)點(diǎn)的偏導(dǎo)刮萌,然后利用鏈?zhǔn)椒▌t繼續(xù)傳遞過去即可驮配!我們的問題也就解決了!

下面我舉個(gè)例子來說明為什么計(jì)算會(huì)比較方便,給大家一個(gè)直觀的理解

舉個(gè)例子壮锻,通過若干層的計(jì)算琐旁,最后得到的某個(gè)訓(xùn)練樣本的向量的分?jǐn)?shù)是[ 2, 3, 4 ],

那么經(jīng)過softmax函數(shù)作用后概率分別就是=[e2/(e2+e3+e4),e3/(e2+e3+e4),e4/(e2+e3+e4)] = [0.0903,0.2447,0.665],如果這個(gè)樣本正確的分類是第二個(gè)的話,那么計(jì)算出來的偏導(dǎo)就是[0.0903,0.2447-1,0.665]=[0.0903,-0.7553,0.665]猜绣,是不是非常簡(jiǎn)單;遗埂!然后再根據(jù)這個(gè)進(jìn)行back propagation就可以了

到這里掰邢,這篇文章的內(nèi)容就講完了验懊,我希望根據(jù)自己的理解,通過列出大量例子尸变,直白的給大家講解softmax的相關(guān)內(nèi)容,讓大家少走彎路减俏,真心希望對(duì)大家的理解有幫助召烂!歡迎交流指錯(cuò)!畫圖整理不易娃承,覺得有幫助的給個(gè)贊唄奏夫,哈哈!

參考:

softmax的log似然代價(jià)函數(shù)(公式求導(dǎo))

交叉熵代價(jià)函數(shù)(作用及公式推導(dǎo))

Softmax回歸 - Ufldl

轉(zhuǎn)自:http://www.reibang.com/p/ffa51250ba2e

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末历筝,一起剝皮案震驚了整個(gè)濱河市酗昼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梳猪,老刑警劉巖麻削,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異春弥,居然都是意外死亡呛哟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門匿沛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扫责,“玉大人,你說我怎么就攤上這事逃呼”罟拢” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵抡笼,是天一觀的道長(zhǎng)苏揣。 經(jīng)常有香客問我,道長(zhǎng)蔫缸,這世上最難降的妖魔是什么腿准? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上吐葱,老公的妹妹穿的比我還像新娘街望。我一直安慰自己,他們只是感情好弟跑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布灾前。 她就那樣靜靜地躺著,像睡著了一般孟辑。 火紅的嫁衣襯著肌膚如雪哎甲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天饲嗽,我揣著相機(jī)與錄音炭玫,去河邊找鬼。 笑死貌虾,一個(gè)胖子當(dāng)著我的面吹牛吞加,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尽狠,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼衔憨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了袄膏?” 一聲冷哼從身側(cè)響起践图,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沉馆,沒想到半個(gè)月后码党,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悍及,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年闽瓢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片心赶。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扣讼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缨叫,到底是詐尸還是另有隱情椭符,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布耻姥,位于F島的核電站销钝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏琐簇。R本人自食惡果不足惜蒸健,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一座享、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧似忧,春花似錦渣叛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至饺著,卻和暖如春箫攀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幼衰。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工靴跛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渡嚣。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓汤求,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親严拒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容