「精讀」自然語言處理基礎之softmax函數

在前面幾節【精讀】中,終極君向大家介紹了自然語言處理中的幾個重要的基礎內容。

這些內容裡面都有一個同樣的部分--softmax函數。

也就是各種類型的神經網絡和語言模型最後輸出的一個激活函數

先舉個例子

「精讀」自然語言處理基礎之softmax函數

在深度學習中,最常見的就是多分類問題。

比如我們要讓人工智能判斷圖片的內容。

判斷之前我們已經訓練人工智能可以識別小貓,小狗,小兔(3種動物)。

「精讀」自然語言處理基礎之softmax函數

再讓它去區分一張從未見過的新圖片。

而最後的結果又是互斥的(即這張圖片不能既是小貓又是小狗)

那麼首先我們要建立數學的映射關係ϕ1(x)。

將我們的圖片和結果(上述的3種動物)分別對應起來,那麼ϕ1(x)會映射到一個3維向量(y={c1,c2,c3})當中。

向量中的每一維,都對應著一個可能的分類結果(如c1=1或0,是小貓或不是小貓)。

由於結果是互斥的,所以y存在以下n種形式:小貓=[1,0,0],小狗=[0,1,0],小兔=[0,0,1]

電腦看了這張新圖片後,假設最後輸出的結果為:新圖片= [3,1,-3]

那麼我們通過softmax的函數公式,計算得到不同類別之間的相對概率,新圖片=[0.88,0.12,0]。不難發現0.88最大,也就是說這張圖片是小貓的可能性最大。

概念組成

我們首先來看softmax這個詞的組成:

max:從數學上來講,有兩個數a和b, 如果a>b,當取max的時候,就直接取a,沒有第二種可能。

用代碼表示 if a > b return a; else b

在分類問題中(尤其是多分類問題),這樣做太絕對了些。

所以我們更想用一個概率去表示分類結果,也就是說大的那個我們經常可以取得到,但是小的那個偶爾也可以取得到。

這個時候softmax就派上用場了,它把分類結果映射為0-1之間的實數,並且歸一化保證和為1,因此分類的概率之和也剛好為1。

那我們來看看他的定義,假設我們有一個數組V,Vi表示V中的第i個元素,那麼這個元素的softmax值就是:

「精讀」自然語言處理基礎之softmax函數

即該元素的對數值與所有的元素對數的和的比值

下圖更形象的展示了softmax函數的具體求解過程

「精讀」自然語言處理基礎之softmax函數

好了,今天就先講到這兒


分享到:


相關文章: