1. 程式人生 > >直觀理解神經網路最後一層全連線+Softmax

直觀理解神經網路最後一層全連線+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對映為概率。

如下圖所示:

Geometric Viewpoint

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

以上。

參考