神經網絡中的Softmax激活函數


Softmax回歸模型是logistic回歸模型在多分類問題上的推廣,適用於多分類問題中,且類別之間互斥的場合。

Softmax將多個神經元的輸出,映射到(0,1)區間內,可以看成是當前輸出是屬於各個分類的概率,從而來進行多分類。

假設有一個數組V,Vi表示V中的第i個元素,那么Vi元素的softmax值就是:


例如 V = [9,6,3,1] , 經過Softmax函數輸出 V_Softmax = [0.950027342724 0.0472990762635 0.00235488234367 0.000318698668969],以下是轉化程序:

# -*- coding: utf-8 -*-
import math

V = [9,6,3,1]

v1 = math.exp(9)
v2 = math.exp(6)
v3 = math.exp(3)
v4 = math.exp(1)

v_sum = v1+v2+v3+v4

print v1/v_sum,v2/v_sum,v3/v_sum,v4/v_sum
可以看到,Softmax函數把輸出映射成區間在(0,1)的值,並且做了歸一化,所有元素的和累加起來等於1。可以直接當作概率對待,選取概率最大的分類作為預測的目標。



為什么是Softmax



其他很多函數也可以完成選取最大值,並歸一化的功能,但是為什么現在神經網絡中普遍采用Softmax作為回歸分類函數呢。比如最簡單的,把上例中的向量 V = [9,6,3,1]直接歸一化,結果 v_norm = [0.5294, 0.3157, 0.1578, 0.0526], 單就分類來說,9對應的歸一化值 0.5294也是最大的,分類也沒錯。


之所以選擇Softmax,很大程度是因為Softmax中使用了指數,這樣可以讓大的值更大,讓小的更小,增加了區分對比度,學習效率更高。第二個是因為softmax是連續可導的,消除了拐點,這個特性在機器學習的梯度下降法等地方非常必要。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM