直觀理解神經網路最後一層全連線+Softmax
目錄
部落格:blog.shinelee.me | 部落格園 | CSDN
寫在前面
這篇文章將從3個角度:加權、模版匹配與幾何來理解最後一層全連線+Softmax。掌握了這3種視角,可以更好地理解深度學習中的正則項、引數視覺化以及一些損失函式背後的設計思想。
全連線層與Softmax回顧
深度神經網路的最後一層往往是全連線層+Softmax(分類網路),如下圖所示,圖片來自StackExchange。
先看一下計算方式:全連線層將權重矩陣與輸入向量相乘再加上偏置,將\(n\)
\[\hat{\mathrm{y}} = softmax(\mathrm{z}) = softmax(\mathrm{W}^{T} \mathrm{x} + \mathrm{b})\]
其中,\(\mathrm{x}\)為全連線層的輸入,\(W_{n \times K}\) 為權重,\(\mathrm{b}\)
\[softmax(z_j) = \frac{e^{z_j}}{\sum_K e^{z_j}}\]
若拆成每個類別的概率如下:
\[\hat{y_j} = softmax(z_j) = softmax(\mathrm{w}_{j} \cdot \mathrm{x} + b_j)\]
其中\(\mathrm{w}_{j}\)為圖中全連線層同一顏色權重組成的向量。
該如何理解?
下面提供3個理解角度:加權角度、模版匹配角度與幾何角度
加權角度
加權角度可能是最直接的理解角度。
通常將網路最後一個全連線層的輸入,即上面的\(\mathrm{x}\),視為網路從輸入資料提取到的特徵。
\[z_j = \mathrm{w}_{j} \cdot \mathrm{x} + b_j = w_{j1} x_1 + w_{j2} x_2 + \dots + w_{jn} x_n + b_j\]
將\(\mathrm{w}_{j}\)視為第\(j\)類下特徵的權重,即每維特徵的重要程度、對最終分數的影響程度,通過對特徵加權求和得到每個類別的分數,再經過Softmax對映為概率。
模板匹配
也可以將\(\mathrm{w}_{j}\)視為第\(j\)類的特徵模板,特徵與每個類別的模板進行模版匹配,得到與每個類別的相似程度,然後通過Softmax將相似程度對映為概率。如下圖所示,圖片素材來自CS231n。
如果是隻有一個全連線層的神經網路(相當於線性分類器),將每個類別的模板可以直接視覺化如下,圖片素材來自CS231n。
如果是多層神經網路,最後一個全連線層的模板是特徵空間的模板,視覺化需要映射回輸入空間。
幾何角度
仍將全連線層的輸入\(\mathrm{x}\)視為網路從輸入資料提取到的特徵,一個特徵對應多維空間中的一個點。
如果是二分類問題,使用線性分類器\(\hat{y} = \mathrm{w} \cdot \mathrm{x} + b\),若\(\hat{y}>0\)即位於超平面的上方,則為正類,\(\hat{y}<0\)則為負類。
多分類怎麼辦?為每個類別設定一個超平面,通過多個超平面對特徵空間進行劃分,一個區域對應一個類別。\(\mathrm{w}_{j}\)為每個超平面的法向量,指向正值的方向,超平面上分數為0,如果求特徵與每個超平面間的距離(帶正負)為
\[d_j = \frac{\mathrm{w}_{j} \cdot \mathrm{x} + b_j}{||\mathrm{w}_{j}||}\]
而分數\(z_j = ||\mathrm{w}_{j}|| d_j\),再進一步通過Softmax對映為概率。
如下圖所示:
Softmax的作用
相比\((-\infty, +\infty)\)範圍內的分數,概率天然具有更好的可解釋性,讓後續取閾值等操作順理成章。
經過全連線層,我們獲得了\(K\)個類別\((-\infty, +\infty)\)範圍內的分數\(z_j\),為了得到屬於每個類別的概率,先通過\(e^{z_j}\)將分數對映到\((0, +\infty)\),然後再歸一化到\((0 ,1)\),這便是Softmax的思想:
\[\hat{y_j} = softmax(z_j) = \frac{e^{z_j}}{\sum_K e^{z_j}}\]
總結
本文介紹了3種角度來更直觀地理解全連線層+Softmax,
- 加權角度,將權重視為每維特徵的重要程度,可以幫助理解L1、L2等正則項
- 模板匹配角度,可以幫助理解引數的視覺化
- 幾何角度,將特徵視為多維空間中的點,可以幫助理解一些損失函式背後的設計思想(希望不同類的點具有何種性質)
視角不同,看到的畫面就不同,就會萌生不同的idea。有些時候,換換視角問題就迎刃而解了。
以上。