博客:blog.shinelee.me | 博客園 | CSDN
寫在前面
這篇文章將從3個角度:加權、模版匹配與幾何來理解最后一層全連接+Softmax。掌握了這3種視角,可以更好地理解深度學習中的正則項、參數可視化以及一些損失函數背后的設計思想。
全連接層與Softmax回顧
深度神經網絡的最后一層往往是全連接層+Softmax(分類網絡),如下圖所示,圖片來自StackExchange。
先看一下計算方式:全連接層將權重矩陣與輸入向量相乘再加上偏置,將\(n\)個\((-\infty, +\infty)\)的實數映射為\(K\)個\((-\infty, +\infty)\)的實數(分數);Softmax將\(K\)個\((-\infty, +\infty)\)的實數映射為\(K\)個\((0, 1)\)的實數(概率),同時保證它們之和為1。具體如下:
其中,\(\mathrm{x}\) 為全連接層的輸入,\(W_{n \times K}\) 為權重,\(\mathrm{b}\)為偏置項,\(\hat{\mathrm{y}}\)為Softmax輸出的概率,Softmax的計算方式如下:
若拆成每個類別的概率如下:
其中,\(\mathrm{w}_{j}\)為圖中全連接層同一顏色權重組成的向量。
該如何理解?
下面提供3個理解角度:加權角度、模版匹配角度與幾何角度
加權角度
加權角度可能是最直接的理解角度。
通常將網絡最后一個全連接層的輸入,即上面的\(\mathrm{x}\),視為網絡從輸入數據提取到的特征。
將\(\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,如果求特征與每個超平面間的距離(帶正負)為
而分數\(z_j = ||\mathrm{w}_{j}|| d_j\),再進一步通過Softmax映射為概率。
如下圖所示:
Softmax的作用
相比\((-\infty, +\infty)\)范圍內的分數,概率天然具有更好的可解釋性,讓后續取閾值等操作順理成章。
經過全連接層,我們獲得了\(K\)個類別\((-\infty, +\infty)\)范圍內的分數\(z_j\),為了得到屬於每個類別的概率,先通過\(e^{z_j}\)將分數映射到\((0, +\infty)\),然后再歸一化到\((0 ,1)\),這便是Softmax的思想:
總結
本文介紹了3種角度來更直觀地理解全連接層+Softmax,
- 加權角度,將權重視為每維特征的重要程度,可以幫助理解L1、L2等正則項
- 模板匹配角度,可以幫助理解參數的可視化
- 幾何角度,將特征視為多維空間中的點,可以幫助理解一些損失函數背后的設計思想(希望不同類的點具有何種性質)
視角不同,看到的畫面就不同,就會萌生不同的idea。有些時候,換換視角問題就迎刃而解了。
以上。