為直觀了解softmax loss,在mnist資料集上訓練了乙個lenet模型作為例子。先將特徵維降低到2,並畫了10w個訓練樣本的2維特徵在平面上,如圖2所示。從圖中可以看到,如果使用歐式距離作為度量方式,則f2與f1之間的距離比f2到f3的近很多,達不到好的效果。而同時可以看到,對於這些特徵以角度進行劃分的效果會比歐式距離和內積要好,所以之前很多都會採用余弦相似度作為度量方法,儘管訓練的時候用的是softmax loss。而softmax loss是非歸一化特徵的內積運算,因此訓練的度量方法和測試用的度量方法一定的分歧。
為什麼softmax loss會趨向取產生這樣「呈放射狀」的特徵分布呢?
原因是softmax loss實際上表現為soft version of max operator。對特徵向量的量級進行縮放不會影響到它們的類別結果,回顧softmax loss的公式定義如下:
其中m是訓練樣本數量,n是類別數量,fi是第i個樣本的特徵,yi是對應的標籤(範圍是[1,n]),w和b分別是softmax loss之前的最後乙個內積層的權重矩陣和偏置向量,wj是w的第j列,對應著第j類別,在測試的階段,通過下式進行分類:
這裡先假定(wi x f + bi) - (wj x f + bj) >= 0,再假定去掉偏置項b,則以
參考:normface(2017)
softmax的多分類
from 我們常見的邏輯回歸 svm等常用於解決二分類問題,對於多分類問題,比如識別手寫數字,它就需要10個分類,同樣也可以用邏輯回歸或svm,只是需要多個二分類來組成多分類,但這裡討論另外一種方式來解決多分類 softmax。softmax的函式為 p i exp tix kk 1exp tkx ...
softmax的多分類
我們常見的邏輯回歸 svm等常用於解決二分類問題,對於多分類問題,比如識別手寫數字,它就需要10個分類,同樣也可以用邏輯回歸或svm,只是需要多個二分類來組成多分類,但這裡討論另外一種方式來解決多分類 softmax。softmax的函式為 p i dfrac exp theta k tx 可以看到...
softmax的優缺點
引入指數形式的優點 使用指數形式的softmax函式能夠將差距大的數值距離拉的更大。在深度學習中通常使用反向傳播求解梯度進而使用梯度下降進行引數更新的過程,而指數函式在求導的時候比較方便。比如 import tensorflow as tf print tf.version 2.0.0 a tf.c...