softmax的特徵分佈會呈放射狀的原因

        爲直觀瞭解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,則以表示x被分類到類別i的概率。對於任意給定的尺度s>1,若,那麼Pi ( sf ) >= Pi ( f )會恆成立。這意味着softmax loss會趨向於使區分能力強的特徵具有更大的量級,也是爲什麼softmax的特徵分佈會呈放射狀的原因。然而我們並不需要這種特性。通過歸一化,能夠消除這個影響。因此,通常會採用餘弦來度量兩個向量的相似度。

 

參考:

NormFace(2017)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章