卷積神經網絡CNN-學習1網絡
十年磨一劍,霜刃不曾試。架構
簡介:卷積神經網絡CNN學習。ide
CNN中文視頻學習連接:卷積神經網絡工做原理視頻-中文版函數
CNN英語原文學習連接:卷積神經網絡工做原理視頻-英文版學習
1、定義spa
2、CNN靈感來源?3d
對於不一樣的物體,人類視覺也是經過這樣逐層分級,來進行以下認知的。視頻
人類視覺識別示例blog
在最底層特徵基本上是相似的,就是各類邊緣,越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀幹等),到最上層,不一樣的高級特徵最終組合成相應的圖像,從而可以讓人類準確的區分不一樣的物體。因而便模仿人類大腦的這個特色,構造多層的神經網絡,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終經過多個層級的組合,最終在頂層作出分類。圖片
3、卷積神經網絡解決了什麼?
歸納來講就是保留圖像特徵,參數降維,複雜參數簡單化。
圖像像素RGB
衆所周知,圖像是由像素構成的,每一個像素又是由顏色構成的。如今隨隨便便一張圖片都是 1000×1000 像素以上的, 每一個像素都有RGB 3個參數來表示顏色信息。
假如咱們處理一張 1000×1000 像素的圖片,咱們就須要處理3百萬個參數!1000×1000×3=3,000,000
這麼大量的數據處理起來是很是消耗資源的,卷積神經網絡 – CNN 解決的第一個問題就是「將複雜問題簡化」,把大量參數降維成少許參數,再作處理。
更重要的是:咱們在大部分場景下,降維並不會影響結果。好比1000像素的圖片縮小成200像素,並不影響肉眼認出來圖片中是一隻貓仍是一隻狗,機器也是如此。
圖片數字化的傳統方式
圖像簡單數字化沒法保留圖像特徵,如上圖假若有圓形是1,沒有圓形是0,那麼圓形的位置不一樣就會產生徹底不一樣的數據表達。可是從視覺的角度來看,圖像的內容(本質)並無發生變化,只是位置發生了變化。因此當咱們移動圖像中的物體,用傳統的方式的得出來的參數會差別很大!這是不符合圖像處理的要求的。而 CNN 解決了這個問題,他用相似視覺的方式【模仿人類大腦視覺原理,構造多層的神經網絡,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終經過多個層級的組合,最終在頂層作出分類】保留了圖像的特徵,當圖像作翻轉,旋轉或者變換位置時,它也能有效的識別出來是相似的圖像。
4、卷積神經網絡的架構
典型的 CNN 由卷積層、池化層、全鏈接層3個部分構成:
典型CNN組成部分
5、數據輸入層
去相關與白化效果圖
6、卷積計算層
卷積層有兩個重要的操做,一個是局部關聯,每一個神經元看作一個濾波器filter;另外一個是窗口滑動,filter對局部數據計算。
卷積層的運算過程以下圖,用一個卷積核掃完整張圖片:
卷積層動態運算圖
卷積層的運算過程,能夠當作使用一個過濾器(卷積核)來過濾圖像的各個小區域,從而獲得這些小區域的特徵值,即卷積層經過卷積核的過濾提取出圖片中局部的特徵。
卷積層運算圖
卷積層計算過程動圖
7、激勵層
激勵層是把卷積層輸出結果作非線性映射。CNN採用的激勵函數通常爲ReLU(The Rectified Linear Unit/修正線性單元)。
8、池化層
池化層在連續的卷積層中間,其用於壓縮數據和參數的量,減小過擬合。最重要的做用就是保持特性不變,壓縮圖像,下降數據維度。
池化層用的方法有Max pooling 和 average pooling,而實際用的較多的是Max pooling。Max pooling思想:對於每一個2 * 2的窗口選出最大的數做爲輸出矩陣的相應元素的值,好比輸入矩陣第一個2 * 2窗口中最大的數是6,那麼輸出矩陣的第一個元素就是6,如此類推,保持特徵不變地下降維度。
Max pooling圖
動態池化圖
咱們能夠看到動態池化圖中,原始圖片是20×20的,咱們對其進行下采樣,採樣窗口爲10×10,最終將其下采樣成爲一個2×2大小的特徵圖。
9、全鏈接層
10、CNN實際應用場景
圖像分類/檢索、目標定位檢測、目標分割、人臉識別、骨骼識別等。
CNN人臉識別
CNN中文視頻學習連接:卷積神經網絡工做原理視頻-中文版
CNN英語原文學習連接:卷積神經網絡工做原理視頻-英文版
十年磨一劍
霜刃不曾試