機器學習——softmax函數
2023-06-25 12:04 作者:Vector永遠的神 | 我要投稿
????在二分類問題中,我們常用sigmoid函數作為激活函數,但是由于sigmoid在自變量x離0較遠時曲線過于平滑,在深度神經網絡中可能會出現梯度消失的情況,需要選擇一個新的函數來替代。

????a表示每一層的輸出值,z表示每一層的輸入值,二者之間需要經過激活函數σ的運算,在這a(l)(k)表示最終的輸出值,l層一共有i個感知機,a(l)就是一個i維向量,k表示第k個樣本數據。J函數就是損失函數。
????多分類問題中,輸出層的每個感知機輸出的值表示對應分類的概率值大小,一定大于等于0,并且和為1,組合到一起就是一個i維的a(l)(k)的向量。

????softmax函數如上所示,首先保證沒個輸出值都大于等于0 ,使用以e為底的指數函數形式,然后在進行歸一化處理就是softmax的函數了。
? ? 與softmax函數相比來說,sigmoid更像是一種特殊形式,只有一個分類情況下的特殊形式,并且由于梯度消失的問題,現在一般逐漸選擇softmax函數至少作為輸出層的激活函數使用。
????以下為單分類與多分類的情況對比,激活函數分別使用sigmoid和softmax。

????單分類問題中使用的sigmoid函數,就是把t2=1為常量,形式上與softmax保持一致。從損失函數等式上看二者基本上一樣,但是二者本質上是不一樣的,第一個是0/1問題,不同的輸入對應著y1的大小發(fā)生變化,而第二個是多分類問題,不同的輸入對應的是y1和y2一起產生變化。
????數值上相同,但對應不同的問題模型。