一文告訴你, 當下熱門的神經網路是什么東西?
目錄引索
- 簡單神經網路
- 感知機
- 神經網路特點
- 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

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57308.html
標籤:其他
上一篇:wxpython面板怎么切換?
