softmax分類器推導
阿新 • • 發佈:2019-02-02
softmax函式在機器學習中是常用的多分類器,特別是在卷積神經網路中,最後的一層經常都是使用softmax分類器進行多類別分類任務。雖然softmax看上去相對比較簡單,但是其實其中蘊含的數學推導還是比較複雜的,特別是對於數學不太好的同學。這篇文章主要就是結合自己學習《神經網路與深度學習》的一些筆記和體會。其中很多公式部分參考了《神經網路與深度學習》,如有不恰當的地方,歡迎批評指正。
softmax函式是logistic函式的一般形式,是將分類問題轉化為概率問題,其實說白了,就是求解統計所有可能的概率,然後概率最大的即認為為該類別。首先直接建立多類線性分類器。假設 y = {1, ·
· · , C}共 C 個類別,首先定義C個判別函式。
這裡Wc 為類 c的權重向量。
這樣,對於空間中的一個點x,如果存在類別c,對於所有的其他類別c ˜(wT c x ̸= c) 都滿足fc(x) > fc ˜(x ),那麼x屬於類別 c。相應的分類函式可以表示為:
當 C = 2 時,就是Logistics二類分類器,
SoftMax迴歸是Logistic迴歸的多類推廣。
多類線性分類函式的引數 w有很多種優化演算法。這裡我們介紹一種常用的學習演算法: SoftMax 迴歸。在SoftMax迴歸中,機器學習模型預測目標為每一個類別的後驗概率。這就需要用到 softmax函式。
利用 softmax函式,我們定義目標類別 y = c的後驗概率為:
對於樣本(x, y),輸出目標 y = {1, · · · , C},我們用 C 維的one-hot向量 y來表示輸出目標。對於類別 c, 這裡, I()是指示函式。 同時,我們將公式3.59重新定義一下,直接輸出 k 維向量
其中, W = [w1, ·
· · , wC]是 C 個類對應權重向量組成的矩陣。 y ˆ 的第 c維的值是第 c類的預測後驗概率。其中, z ˆ
= W Tx,為 softmax函式的輸入向量。
給定 N 給樣本(x(i), y(i)), 1 ≤ i ≤ N,我們使用交叉熵損失函式,模型在訓練集的風險函式為: 取樣梯度下降法,我們要計算 J (W)關於 W 的梯度。首先,我們列下要用到的公式。 1. softmax函式的導數為
下面講述的是關於softmax的導數求法,對於 K 個標量 x1, · · · , xK, softmax函式定義為
這樣,我們可以將 K 個變數 x1, · · · , xK 轉換為一個分佈: z1, · · · , zK,滿足
當 softmax函式的輸入為 K 維向量 x時
其中, 1¯K = [1, · · · , 1]K×1 是 K 維的全1向量
這樣,對於空間中的一個點x,如果存在類別c,對於所有的其他類別c ˜(wT c x ̸= c) 都滿足fc(x) > fc ˜(x
多類線性分類函式的引數 w有很多種優化演算法。這裡我們介紹一種常用的學習演算法: SoftMax 迴歸。在SoftMax迴歸中,機器學習模型預測目標為每一個類別的後驗概率。這就需要用到
對於樣本(x, y),輸出目標 y = {1, · · · , C},我們用 C 維的one-hot向量 y來表示輸出目標。對於類別 c, 這裡, I()是指示函式。 同時,我們將公式3.59重新定義一下,直接輸出 k 維向量
給定 N 給樣本(x(i), y(i)), 1 ≤ i ≤ N,我們使用交叉熵損失函式,模型在訓練集的風險函式為: 取樣梯度下降法,我們要計算 J (W)關於 W 的梯度。首先,我們列下要用到的公式。 1. softmax函式的導數為
下面講述的是關於softmax的導數求法,對於 K 個標量 x1, · · · , xK, softmax函式定義為
這樣,我們可以將 K 個變數 x1, · · · , xK 轉換為一個分佈: z1, · · · , zK,滿足
當 softmax函式的輸入為 K 維向量 x時
其中, 1¯K = [1, · · · , 1]K×1 是 K 維的全1向量