直觀理解神經網路最後一層全連線 Softmax

2022-02-15 23:58:53 字數 2655 閱讀 4993

部落格:blog.shinelee.me | | csdn

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

深度神經網路的最後一層往往是全連線層+softmax(分類網路),如下圖所示,來自stackexchange。

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

\[\hat} = softmax(\mathrm) = softmax(\mathrm^ \mathrm + \mathrm)

\]其中,\(\mathrm\) 為全連線層的輸入,\(w_\) 為權重,\(\mathrm\)為偏置項,\(\hat}\)為softmax輸出的概率,softmax的計算方式如下:

\[softmax(z_j) = \frac}}

\]若拆成每個類別的概率如下:

\[\hat = softmax(z_j) = softmax(\mathrm_ \cdot \mathrm + b_j)

\]其中,\(\mathrm_\)為圖中全連線層同一顏色權重組成的向量。

該如何理解?

下面提供3個理解角度:加權角度模版匹配角度幾何角度

加權角度可能是最直接的理解角度。

通常將網路最後乙個全連線層的輸入,即上面的\(\mathrm\),視為網路從輸入資料提取到的特徵

\[z_j = \mathrm_ \cdot \mathrm + b_j = w_ x_1 + w_ x_2 + \dots + w_ x_n + b_j

\]將\(\mathrm_\)視為第\(j\)類下特徵的權重,即每維特徵的重要程度、對最終分數的影響程度,通過對特徵加權求和得到每個類別的分數,再經過softmax對映為概率。

也可以將\(\mathrm_\)視為第\(j\)類的特徵模板,特徵與每個類別的模板進行模版匹配,得到與每個類別的相似程度,然後通過softmax將相似程度對映為概率。如下圖所示,素材來自cs231n。

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

如果是多層神經網路,最後乙個全連線層的模板是特徵空間的模板,視覺化需要對映回輸入空間。

仍將全連線層的輸入\(\mathrm\)視為網路從輸入資料提取到的特徵,乙個特徵對應多維空間中的乙個點。

如果是二分類問題,使用線性分類器\(\hat = \mathrm \cdot \mathrm + b\),若\(\hat>0\)即位於超平面的上方,則為正類,\(\hat<0\)則為負類。

多分類怎麼辦?為每個類別設定乙個超平面,通過多個超平面對特徵空間進行劃分,乙個區域對應乙個類別。\(\mathrm_\)為每個超平面的法向量,指向正值的方向,超平面上分數為0,如果求特徵與每個超平面間的距離(帶正負)為

\[d_j = \frac_ \cdot \mathrm + b_j}_||}

\]而分數\(z_j = ||\mathrm_|| d_j\),再進一步通過softmax對映為概率。

如下圖所示:

相比\((-\infty, +\infty)\)範圍內的分數,概率天然具有更好的可解釋性,讓後續取閾值等操作順理成章。

經過全連線層,我們獲得了\(k\)個類別\((-\infty, +\infty)\)範圍內的分數\(z_j\),為了得到屬於每個類別的概率,先通過\(e^\)將分數對映到\((0, +\infty)\),然後再歸一化到\((0 ,1)\),這便是softmax的思想:

\[\hat = softmax(z_j) = \frac}}

\]本文介紹了3種角度來更直觀地理解全連線層+softmax,

視角不同,看到的畫面就不同,就會萌生不同的idea。有些時候,換換視角問題就迎刃而解了。

以上。

直觀理解神經網路最後一層全連線 Softmax

深度神經網路的最後一層往往是全連線層 softmax 分類網路 如下圖所示,來自stackexchange。先看一下計算方式 全連線層將權重矩陣與輸入向量相乘再加上偏置,將n n n個 的實數對映為k k k個 的實數 分數 softmax將k k k個 的實數對映為k k k個 0,1 0,1 0...

卷積神經網路 全連線層

全連線層 全連線層與卷積層 全連線層與gap 全域性平均池化層 1 2 3 全連線層一般會把卷積輸出的二維特徵圖轉化為一維的乙個向量,全連線層的每乙個節點都與上一層的每個節點連線,是把前一層的輸出特徵都綜合起來,所以該層的權值引數是最多的。作用 全連線網路的作用就是將最後一層卷積得到的feature...

神經網路之全連線層(線性層)

對於神經網路的全連線層,前面已經使用矩陣的運算方式實現過,本篇將引入tensorflow中層的概念,正式使用deep learning相關的api搭建乙個全連線神經網路。下面是全連線神經網路的結構圖 其中,x1,x2,x3為輸入,a1,a2,a3為輸出,運算關係如下 x1,x2,x3所在的層叫神經網...