softmax函式應用

2021-09-21 01:12:17 字數 1140 閱讀 1459

# softmax函式應用

## 1.softmax初探

​    在機器學習中,softmax是十分常用而且重要的乙個函式,尤其在多分類的場景中使用廣泛。它把一些輸入對映為0-1之間的實數,並且歸一化保證和為1,因此多分類的概率之和也剛好為1。

​    首先我們簡單來看看softmax是什麼意思。顧名思義,softmax由兩個單詞組成,其中乙個是max。比如有兩個變數a,b,即哪個大取哪個值。max存在的乙個問題是什麼呢?如果將max看成乙個分類問題,就是非黑即白,最後的輸出是乙個確定的變數。更多的時候,我們希望輸出的是取到某個分類的概率,或者說,我們希望分值大的那一項被經常取到,而分值較小的那一項也有一定的概率偶爾被取到,所以我們就應用到了soft的概念,即最後的輸出是每個分類被取到的概率。

## 2.softmax的定義

首先給乙個圖,這個圖比較清晰地告訴大家softmax是怎麼計算的。

假設有乙個陣列v,vi表示v中的第i個元素,那麼這個元素的softmax值為:

該元素的softmax值,就是該元素的指數與所有元素指數和的比值。

這個定義可以說很簡單,也很直觀。那為什麼要定義成這個形式呢?原因主要如下。 

1.softmax設計的初衷,是希望特徵對概率的影響是乘性的。 

2.多類分類問題的目標函式常常選為`cross-entropy`。

即:其中目標類`t_k`為1,其餘類的`t_k`為0。 

在神經網路模型中(`logistic regression`可看成沒有隱含層的神經網路),輸出層第i個神經元的輸入為

神經網路error是用 `back-propagation`訓練的,這個過程中有乙個關鍵的量是`∂l/∂αi`

。後面我們會進行詳細推導。## 3.softmax求導

前面提到,在多分類問題中,我們經常使用交叉熵作為損失函式 

其中,`t_i`表示真實值,`y_i`表示求出的softmax值。當**第`i`個時,可以認為`t_i=1`。此時損失函式變成了: 

接下來對`loss`求導。根據定義:

我們已經將數值對映到了`0-1`之間,並且和為`1`,則有:

接下來開始求導 

上面的結果表示,我們只需要正向求出`y_i`,將結果減1就是反向更新的梯度。

4.softmax vs k個二元分類器

1.[博文](

Softmax函式詳解

softmax在機器學習中有非常廣泛的應用,但是剛剛接觸機器學習的人可能對softmax的特點以及好處並不理解,其實你了解了以後就會發現,softmax計算簡單,效果顯著,非常好用。我們先來直 一下,softmax究竟是什麼意思 我們知道max,假如說我有兩個數,a和b,並且a b,如果取max,那...

softmax損失函式

首先我們來介紹一下資訊熵。資訊熵又叫kl散度,是資訊的平均編碼長度。給定資訊出現的概率向量p p1,p 2,pn p p 1,p 2,p n p p1 p2 pn 其中p ip i pi 為第i ii條資訊出現的概率,那麼資訊的平均編碼長度為h p i npilog 1 pih p sum i np...

softmax函式詳解

softmax函式,又稱歸一化指數函式。它是二分類函式sigmoid在多分類上的推廣,目的是將多分類的結果以概率的形式展現出來。下圖展示了softmax的計算方法 下面為大家解釋一下為什麼softmax是這種形式。首先,我們知道概率有兩個性質 1 的概率為非負數 2 各種 結果概率之和等於1。sof...