计算机机器视觉原理之全连接神经网络1
計算機機器視覺原理之全連接神經網絡1
- 一圖像表示
- 二.分類器設置
- 1.多層感知器
- 2.激活函數
- 三.網絡結構設計
- 1.用不用隱層,用一個還是用幾個隱層?(深度設計)
- 2.每隱層設置多少個神經元比較合適?(寬度設計)
- 四.損失函數
- SOFTMAX操作
- 交叉熵損失
- 對比多雷支撐向量機損失
- 五.優化算法
- 基于計算圖
一圖像表示
直接利用原始像素作為特征,展開為列向量。
比如:
將矩陣轉化為列向量再與x點乘,因此
cifar10中每個圖像可表示為一個3072(32323)維的向量
二.分類器設置
1.多層感知器
回顧線性分類器:
f(x, W) =wx +b
其中,x代表輸入圖像,其維度為d ;
f為分數向量,其維度等于類別個數c
W =[W1… wc]T為權值矩陣,wi =[Wi… wid]T為第i個類別的權值向量
b =[b1…be]T為偏置向量,b;為第i個類別的偏置
全連接神經網絡級聯多個變換來實現輸入到輸出的映射。
注意:非線性操作是不可以去掉
兩層全連接網絡
f = W2max(0, W1x + b1)+ b2
max則為激活函數,對變換的結果進行處理
對于兩層全連接網絡
線性分類器中的W可看作模板,模板個數由類別個數決定
全連接神經網絡中:
W1也可看作模板;模板個數人為指定
W2的個數要由類別確定,融合W1的響應結果
w2融合這多個模版的匹配結果來實現最終類別打分
全聯接神經網絡的描述能力更強。因為調整W1行數等于增加模板個數,分類器有機會學到兩個不同方向的馬的模板。
線性可分——至少存在一個線性分界面能把兩類樣本沒有錯誤的分開。
顯然不是所有情況都線性可分,這個時候就不適用于線性分類器,使用非線性分類器
輸入層為3072維,即3072個神經元
隱層數是由我們決定W1的模板的個數
輸出層是固定的,為類別的數量
一個隱層的神經元要和千層所有的神經元鏈接,中間的線就是權值,所有線組合起來就是W1,和輸出曾鏈接起來就是W2
N層全連接神經網絡——除輸入 層之外其他層的數量為N的網絡
N個隱層的全連接神經網絡— 網絡隱層的數量為N的網絡
2.激活函數
為什么需要非線性操作?
去激活函數:
這樣之后,結果還是一種線性操作,不能去掉max
答:如果網絡中缺少了激活函數,全連接神經網絡將變成一個線性分類器
常用的激活函數
將數組數據變成0到1,大的變為1,小的變為0,中間的數值單調遞增,輸出的值都大于0且不對稱。
將數據壓縮至負一到正一,且對稱,tanh比Sigmoid函數優秀在tanh不會將所有的數據都壓縮至0到1之間,這樣在下一層中仍然會有負數存在,更準確。
小于0將數據縮小10倍,大于0不變。
三.網絡結構設計
1.用不用隱層,用一個還是用幾個隱層?(深度設計)
結論:神經元個數越多,分界面就可以越復雜,在這個集合上的分類能力就越強。
也就是說劃分出來的邊就越多越復雜,但是性能好不好不一定好,很可能出現過擬合的情況。
依據分類任務的難易程度來調整神經網絡模型的復雜程度。分類任務越難,我們設計的神經網絡結構就應該越深、越寬。但是,需要注意的是對訓練集分類精度最高的全連接神經網絡模型,在真實場景下識別性能未必是最好的(過擬合)
2.每隱層設置多少個神經元比較合適?(寬度設計)
全連接神經網絡組成:一個輸入層、一個輸出層及多個隱層;
輸入層與輸出層的神經元個數由任務決定,而隱層數量以及每個隱層的神經元個數需要人為指定;
激活函數是全連接神經網絡中的一個重要部分,缺少了激活函數全連接神經網絡將退化為線性分類器。
四.損失函數
SOFTMAX操作
原理是將分到的分數f取指數之后在歸一化,這樣得到的p為一個概率,最大概率的就倍識別成哪一類,所有p相加等于1。
問題:為什么不直接用f分數歸一化
答:因為這個f分數大小正負是不確定的,如果出現負數就不能歸一化,取個指數讓所有數都大于0 后即可歸一化。
交叉熵損失
熵:是反映信息量的,如果一件事情信息量越大,那么值也就越大,反之沒有信息量就越小
假如一件事的概率分布為u【1;0;0】
根據熵的定義式,1×log1+0+0等于0,也就是說沒有信息量,當分布為【1/3;1/3;1/3】為熵最大的時候
交叉熵:這個pq兩個分布之間的關系
相對嫡(relative entropy)也叫KL散度 (KL divergence);用來度量兩個分布之
間的不相似性(dissimilarity) 。
如何度量現在的分類器輸出與預測值之間的距離?
因此交叉熵可以簡化為:
對比多雷支撐向量機損失
還是這個實例
對于多類向量機損失算法為預測分數減正確分數+1和0取最大值,這里最終損失為2.3
對于交叉熵損失:
當我們使用交叉熵損失的時候,預測概率分布為【0.334,0.333,0.333】和【0.333,0.333,0.334】的時候,我們會發現損失值是差不多的,但是精確度確實有大的變化,第一組預測成功,而第二個預測失敗,因此我們在使用交叉熵損失時,調整的時候會發現損失值不變的情況下可以提高準確度。
五.優化算法
基于計算圖
計算圖是一種有向圖,它用來表達輸入、輸出以及中間變量之間的計算關系,圖中的每個節點對應著一種數學運算。
前向:
反向:
反向傳播原理解釋
任意復雜的函數,都可以用計算圖的形式表示在整個計算圖中,每個門單元都會得到一些輸入, 然后,進行下面兩個計算:
a)這個門的輸出值
b)其輸出值關于輸入值的局部梯度。
利用鏈式法則,門單元應該將回傳的梯度乘以它對其的輸入的局部梯度,從而得到整個網絡的輸出對該門單元的每個輸入值的梯度。
常見門單元:
應用:計算圖主要是幫助我們計算梯度的,在更新當前的權值時,需要此權值的梯度,在乘以學習率,在前面填一個負號,跟上一輪權值相加,就成功更新權值。
鏈式法則的缺陷:如果計算圖一路都是乘法,中間有些門的數值梯度都比較小的話,這樣梯度就會越來越小造成梯度消失。
總結
以上是生活随笔為你收集整理的计算机机器视觉原理之全连接神经网络1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vim简介以及常用命令
- 下一篇: sda、sdb、sdc、sda1、sda