【深度学习】CNN算法
一.定義:
卷積神經(jīng)網(wǎng)絡(luò)(CNN),是一類包含卷積計算且具有深度結(jié)構(gòu)前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)(deep learning)的代表算法之一。
卷積神經(jīng)網(wǎng)絡(luò)具有表征能力,能夠按其階層結(jié)構(gòu)對輸入信息進行平移不變分類,因此也被稱為“平移不變?nèi)斯ど窠?jīng)網(wǎng)絡(luò)。
二.CNN解決的問題?
在CNN出現(xiàn)之前,圖像對于人工智能來說是一個難題,有2個原因:
? ? ?1.圖像需要處理的數(shù)據(jù)量太大,導(dǎo)致成本很高,效率很低。
? ? ?2.圖像在數(shù)字化的過程中很難保留原有的特征,導(dǎo)致圖像處理的準(zhǔn)確率不高。
卷積神經(jīng)網(wǎng)絡(luò) – CNN 解決的第一個問題就是「將復(fù)雜問題簡化」,把大量參數(shù)降維成少量參數(shù),再做處理。
三.CNN五層網(wǎng)絡(luò)結(jié)構(gòu)
? ? 1.數(shù)據(jù)輸入層
? ? 2.卷積層(提取圖像中的局部特征)
? ? 3.ReLU激勵層
? ? 4.池化層(降低參數(shù)量級)
? ? 5.全連接層
?簡單描述:卷積層負(fù)責(zé)提取圖像中的局部特征;池化層用來大幅降低參數(shù)量級(降維);全連接層類似傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的部分,用來輸出想要的結(jié)果。
卷積層:卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心, 大多數(shù)計算都是在卷積層中進行的。
? ? ? 神經(jīng)網(wǎng)絡(luò)前部卷積層可以捕捉圖像局部、細(xì)節(jié)信息。輸出圖像的每個像素是感受到輸入圖像很小范圍數(shù)值進行計算的結(jié)果。
? ? ?后面的卷積層感受野逐層加大,用于捕獲圖像更復(fù)雜抽象的信息。經(jīng)過多個卷積層的運算,最后得到圖像在不同尺度的抽象表示。注意卷積層的參數(shù)規(guī)模固定。
??
池化層——數(shù)據(jù)降維,避免過擬合:
通常會在卷積層之間周期性插入一個池化層, 其作用是逐漸降低數(shù)據(jù)體的空間尺寸, 這樣就能夠減少網(wǎng)絡(luò)中參數(shù)的數(shù)量, 減少計算資源耗費, 同時也能夠有效地控制過擬合。
?
全連接層——輸出結(jié)果:
這個部分就是最后一步了,經(jīng)過卷積層和池化層處理過的數(shù)據(jù)輸入到全連接層,得到最終想要的結(jié)果。
經(jīng)過卷積層和池化層降維過的數(shù)據(jù),全連接層才能”跑得動”,不然數(shù)據(jù)量太大,計算成本高,效率低下。
四.激活函數(shù)
激活函數(shù)(Activation Function),就是在人工神經(jīng)網(wǎng)絡(luò)的神經(jīng)元上運行的函數(shù),負(fù)責(zé)將神經(jīng)元的輸入映射到輸出端。
?作用:
激活函數(shù)的主要作用是完成數(shù)據(jù)的非線性變換,解決線性模型的表達、分類能力不足的問題。
激活函數(shù)的主要作用是改變之前數(shù)據(jù)的線性關(guān)系,如果網(wǎng)絡(luò)中全部是線性變換,則多層網(wǎng)絡(luò)可以通過矩陣變換,直接轉(zhuǎn)換成一層神經(jīng)網(wǎng)絡(luò)。
所以激活函數(shù)的存在,使得神經(jīng)網(wǎng)絡(luò)的“多層”有了實際的意義,使網(wǎng)絡(luò)更加強大,增加網(wǎng)絡(luò)的能力,使它可以學(xué)習(xí)復(fù)雜的事物,復(fù)雜的數(shù)據(jù),以及表示輸入輸出之間非線性的復(fù)雜的任意函數(shù)映射。
可以說激活函數(shù)是人工神經(jīng)網(wǎng)絡(luò)的驅(qū)動者。
五.CNN 的實際應(yīng)用:
總結(jié)
以上是生活随笔為你收集整理的【深度学习】CNN算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++/C中定义与声明的区别
- 下一篇: 深度学习CNN算法原理