直觀理解神經網絡最后一層全連接+Softmax


博客:blog.shinelee.me | 博客園 | CSDN

寫在前面

這篇文章將從3個角度:加權模版匹配幾何來理解最后一層全連接+Softmax。掌握了這3種視角,可以更好地理解深度學習中的正則項、參數可視化以及一些損失函數背后的設計思想。

全連接層與Softmax回顧

深度神經網絡的最后一層往往是全連接層+Softmax(分類網絡),如下圖所示,圖片來自StackExchange

FlFUSJ.png

先看一下計算方式全連接層將權重矩陣與輸入向量相乘再加上偏置,將\(n\)\((-\infty, +\infty)\)的實數映射為\(K\)\((-\infty, +\infty)\)的實數(分數);Softmax\(K\)\((-\infty, +\infty)\)的實數映射為\(K\)\((0, 1)\)的實數(概率),同時保證它們之和為1。具體如下:

\[\hat{\mathrm{y}} = softmax(\mathrm{z}) = softmax(\mathrm{W}^{T} \mathrm{x} + \mathrm{b}) \]

其中,\(\mathrm{x}\) 為全連接層的輸入,\(W_{n \times K}\) 為權重,\(\mathrm{b}\)為偏置項,\(\hat{\mathrm{y}}\)為Softmax輸出的概率,Softmax的計算方式如下:

\[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

FC template matching

如果是只有一個全連接層的神經網絡(相當於線性分類器),將每個類別的模板可以直接可視化如下,圖片素材來自CS231n。

FC template

如果是多層神經網絡,最后一個全連接層的模板是特征空間的模板,可視化需要映射回輸入空間。

幾何角度

仍將全連接層的輸入\(\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映射為概率。

如下圖所示:

F1GLb6.png

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。有些時候,換換視角問題就迎刃而解了。

以上。

參考


免責聲明!

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



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