一文告訴你, 當下熱門的神經網絡是什么東西?
目錄引索
- 簡單神經網絡
- 感知機
- 神經網絡特點
- softmax
- 交叉熵
- 卷積神經網絡
- 卷積
- 激活函數
- 池化
- 全連接
- Tensorflow playground 演示
簡單神經網絡
神經網絡就是模擬人的神經元進行信號(信息)收集、傳遞、處理的過程。
以人體對於溫度的感知為例:
感知機
- 定義: 有n個輸入數據,通過權重與個數據之間的計算和,比較激活函數結果,得出輸出。
- sum = w1x1+w2x2+w3x3+......
- 應用: 容易解決與、或問題, 分類問題。
- 與問題: 所有輸入為1,則為1
- 或問題: 只要有一個為1,則為1
- 亦或問題:相同為0,不同為1 (使用2條直線來划分,即2個感知機)
- 感知機與邏輯回歸的對比
- 感知機是求和以后進行一個簡單的閾值判斷,而邏輯回歸是通過一個sigmoid激活函數函數轉化為[0,1]的值。
神經網絡定義
當一個感知機不能解決問題的時候,會用多個感知機來構成網絡。
感知機 --> 神經元
多個神經元構成的網絡 --> 神經網絡
神經網絡是一個多分類問題,得出屬於全部類別的每一個概率,誰的概率大,就是誰。
神經網絡特點
- 由輸入層(1個)、隱藏層(n個)、輸出層組成(1個)
- 輸入向量的維度和輸入神經元的個數相同 (不是個數)
- 同一層的神經元之間沒有連接
- 每個連接都有權重 (類似於線性回歸)
- 第N層與N-1層的所有神經元全連接(最后一層全連接)
神經網絡結構
- 結構: 權重、神經元等
- 激活函數: 增強網絡的非線性,簡單理解,沒有激活函數,只能畫直線分割數據點;增加激活函數,可以用曲線來划分。
- ReLu, Tanh, sigmoid等
- 學習規則: 網絡中的權重,如何隨着時間(或者說是迭代)來進行自我調整。 包括正向傳播和反向傳播。
- 正向傳播(前向傳播): 輸入經過一層層計算,(w1x1+w2x2+...) 得出輸出結果
- 反向傳播:總誤差是由不同的權重產生的,將誤差按權重的比例進行分割,向后傳遞,例如某個節點的總誤差是0.5,它是由上2個節點傳播而來,對應的權重比例為1:4, 則這兩個節點分攤誤差為0.1和0.4,依次向前傳遞。最終通過誤差值來調整各節點的權重。
神經網絡的判定 (softmax)
- 為什么需要softmax?
- 神經網絡是解決多分類問題,但是它的輸出僅僅就是一個值,使用一個函數來划分出概率,對目標類別都會輸出一個概率,而目標特征一般都使用one-hot編碼,通過對比不同類別的概率得出結果。
- softmax表達式
神經網絡算法的優化
【不同算法的對比】
損失衡量策略:交叉熵損失(對數似然損失的推廣)
深度神經網絡
深度神經網絡與單一隱藏層神經網絡的區別在於深度,隨着神經網絡深度增加,節點所能識別的特征也越來越復雜。
卷積神經網絡
什么是卷積神經網絡
- 卷積神經網路是深度神經網絡的一種類型,如AlexNex, VGG, GoogLeNet, ResNet, 它是為了解決全連接網絡的一些缺點而存在:
- 參數太多,計算量大
- 沒有利用像素之間的位置信息,(圖片識別每個像素與周圍像素關系緊密)
- 層數限制
- 卷積神經網絡的特點在於隱藏層分為卷積層和池化層(下采樣層)
- 卷積層:通過在原始圖像上進行平移來提取特征(帶着權重偏移,乘加運算)
- 池化層:通過特征后稀疏參數來減少學習到的參數,降低網絡的復雜度。(最大池化,平均池化)
神經網絡發展歷史
卷積層 (Convolutions)
- 過濾器(filter),是一個帶有權重的觀察窗口,通常為1* 1, 3* 3, 5 *5 的結構,權重與圖片中的數值(RGB)做線性回歸, (乘加運算),最終得出一個結果。
- 步長 (strides):過濾器在圖片上每次平移的像素點數量
- 0填充 (padding): 當過濾器移動至圖片邊緣以外的處理方式
- same: 越過邊緣取樣,取樣面積與輸入的圖像像素相同
- valid: 不越過邊緣取樣,取樣的面積小於輸入圖像的像素寬度。
單通道圖片卷積操作(灰度圖片)
注: 當有多個過濾器進行觀察時,過濾器攜帶的權重是不一樣的,但是其步長和零填充方式一致。有多少個過濾器,最終的結果有多少個。
多通道圖片的卷積操作(RGB圖片)
激活函數
- 為什么要增加激活函數:
- 增加網格的非線性分割能力
- 在進行梯度求導時,沒有非線性,多次求導后,梯度就消失了。
- 常見的激活函數
- sigmoid = 1/(1+e^(-x)) , 多次求導運算量大, 對於深層次網絡,反向傳播時容易出現梯度爆炸。
- relu: max(0, x)
池化層(Pooling) 也稱為下采樣(Subsampling)
Pooling層的主要作用是特征提取,通過去掉Feature map中不重要的樣本,進一步減少參數數量。
常見的Max Pooling 取 2*2 , 2步長, 也可以指定padding
Dropout & Inception
- dropout : 隨機丟棄一部分數據,防止過擬合,增強泛化能力 (一般用於大型網絡)
- Inception: 一組特定的卷積結構,可以參考GoogLeNet
全連接層 (Full Connected層)
卷積池化可以理解為做特征工程,后面的全連接相當於做特征加權。
全連接層在神經網絡中起到了 “分類器”的作用。
【拓展】對神經網絡的直觀認識
使用tensorflow的playground演示
http://playground.tensorflow.org