Python人工智能深度學(xué)習(xí)CNN
1.CNN概述
CNN的整體思想,就是對(duì)圖片進(jìn)行下采樣,讓一個(gè)函數(shù)只學(xué)一個(gè)圖的一部分,這樣便得到少但是更有效的特征,最后通過(guò)全連接神經(jīng)網(wǎng)絡(luò)對(duì)結(jié)果進(jìn)行輸出。
整體架構(gòu)如下:
輸入圖片
→卷積:得到特征圖(激活圖)
→ReLU:去除負(fù)值
→池化:縮小數(shù)據(jù)量同時(shí)保留最有效特征
(以上步驟可多次進(jìn)行)
→輸入全連接神經(jīng)網(wǎng)絡(luò)

2.卷積層
CNN-Convolution
卷積核(或者被稱為kernel, filter, neuron)是要被學(xué)出來(lái)的,卷積核中的數(shù)就是權(quán)重(參數(shù))

做內(nèi)積,把卷積核的每一個(gè)參數(shù)和圖像中對(duì)應(yīng)位置的數(shù)字相乘(對(duì)應(yīng)位置的元素相乘,不同于矩陣乘法),再求和。相當(dāng)于一個(gè)神經(jīng)元,對(duì)輸入的數(shù)據(jù),進(jìn)行權(quán)重的分配,而權(quán)重就是卷積核的數(shù)據(jù)。再求和,就是第一個(gè)神經(jīng)元所得到的結(jié)果。把這個(gè)權(quán)重對(duì)圖片所有數(shù)據(jù)進(jìn)行處理,就得到第一個(gè)激活圖或特征圖(feature map)。我們可以增加卷積核的數(shù)量,就會(huì)得到多層激活圖,可以更好的保留數(shù)據(jù)的空間尺寸。

當(dāng)卷積核與圖片進(jìn)行相乘相加的時(shí)候,如果卷積核此時(shí)正在計(jì)算的區(qū)域數(shù)字分布與卷積核類(lèi)似,所得的求和結(jié)果會(huì)很大(稱為卷積核被激活了),而其他地方會(huì)很小,說(shuō)明圖像在這個(gè)區(qū)域,有和卷積核類(lèi)似的圖案。

一個(gè)卷積核只能識(shí)別一個(gè)特征。因此我們需要添加多個(gè)卷積核,卷積核越多,得到的激活圖就越深,輸入圖像的信息就越多。

對(duì)于彩色的圖來(lái)說(shuō),不需要把顏色分開(kāi),卷積核的深度和圖像深度是一樣的,比如彩色是紅綠藍(lán)三層,那么卷積核也是三層。
卷積層相當(dāng)于降采樣的神經(jīng)網(wǎng)絡(luò),如下圖,本來(lái)應(yīng)該連接36個(gè)神經(jīng)元,但實(shí)際連接了9個(gè)。

3.池化層
CNN-MaxPooling
在Max Pooling,也就是池化層之前,會(huì)需要進(jìn)行一個(gè)ReLU函數(shù)轉(zhuǎn)化,即把小于0的值全轉(zhuǎn)為0,其他的不變。
池化層主要就是為了減少數(shù)據(jù)量,選一個(gè)尺寸之后,直接用尺寸中的最大值代替那個(gè)尺寸。這樣可以減少數(shù)據(jù)從而減少運(yùn)算量。

如下圖所示,輸入數(shù)據(jù)原本是6*6,通過(guò)卷積層之后變成4*4,通過(guò)池化層之后變成2*2。對(duì)于實(shí)際的圖片來(lái)說(shuō),維度可能很高,因此卷積層,池化層可以多次進(jìn)行。

4.全連層
將最后得到的高層次特征輸入全連接的神經(jīng)網(wǎng)絡(luò),即全連層。全連層就是一個(gè)全連接的神經(jīng)網(wǎng)絡(luò),它的參數(shù)數(shù)量就是最后的池化層輸出的數(shù)據(jù)數(shù)量。
同樣的,前向傳播后,計(jì)算損失函數(shù)后進(jìn)行后向傳播,得到各參數(shù)的梯度,對(duì)各參數(shù)進(jìn)行更新,直到找到最佳參數(shù)。
因此,在全連接之前的所有層,不管多少層的卷積、池化,都是為了得到更好的特征的同時(shí)降低數(shù)據(jù)量。使得模型可以更好地訓(xùn)練。
以上就是Python人工智能深度學(xué)習(xí)CNN的詳細(xì)內(nèi)容,更多關(guān)于人工智能CNN深度學(xué)習(xí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Keras搭建Mask?R-CNN實(shí)例分割平臺(tái)實(shí)現(xiàn)源碼
- Keras目標(biāo)檢測(cè)mtcnn?facenet搭建人臉識(shí)別平臺(tái)
- python人工智能tensorflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)CNN
- python神經(jīng)網(wǎng)絡(luò)Keras構(gòu)建CNN網(wǎng)絡(luò)訓(xùn)練
- 人工智能學(xué)習(xí)PyTorch實(shí)現(xiàn)CNN卷積層及nn.Module類(lèi)示例分析
- 一文詳解CNN 解決 Flowers 圖像分類(lèi)任務(wù)
相關(guān)文章
Python實(shí)現(xiàn)在線音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)在線音樂(lè)播放器的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法
SyntaxError: invalid syntax 這個(gè)報(bào)錯(cuò)經(jīng)常遇見(jiàn),但是總感覺(jué)自己的代碼沒(méi)有問(wèn)題,根據(jù)報(bào)錯(cuò)提示的行也找不到錯(cuò)誤,這些情況以及解決方法都有哪些呢?這篇文章主要給大家介紹了關(guān)于Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法,需要的朋友可以參考下2022-09-09
python使用xlrd實(shí)現(xiàn)檢索excel中某列含有指定字符串記錄的方法
這篇文章主要介紹了python使用xlrd實(shí)現(xiàn)檢索excel中某列含有指定字符串記錄的方法,涉及Python使用xlrd模塊檢索Excel的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
Python?庫(kù)?PySimpleGUI?制作自動(dòng)化辦公小軟件的方法
Python?在運(yùn)維和辦公自動(dòng)化中扮演著重要的角色,PySimpleGUI?是一款很棒的自動(dòng)化輔助模塊,讓你更輕松的實(shí)現(xiàn)日常任務(wù)的自動(dòng)化,下面通過(guò)本文給大家介紹下Python?庫(kù)?PySimpleGUI?制作自動(dòng)化辦公小軟件的過(guò)程,一起看看吧2021-12-12
Python實(shí)現(xiàn)樸素貝葉斯的學(xué)習(xí)與分類(lèi)過(guò)程解析
這篇文章主要介紹了Python實(shí)現(xiàn)樸素貝葉斯的學(xué)習(xí)與分類(lèi)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
python庫(kù)lxml在linux和WIN系統(tǒng)下的安裝
這篇內(nèi)容我們給大家分享了lxml在WIN和LINUX系統(tǒng)下的簡(jiǎn)單快速安裝過(guò)程,有興趣的朋友參考學(xué)習(xí)下。2018-06-06
Python利用pdfplumber庫(kù)提取pdf中表格數(shù)據(jù)
pdfplumber是一個(gè)用于從PDF文檔中提取文本和表格數(shù)據(jù)的Python庫(kù),它可以幫助用戶輕松地從PDF文件中提取有用的信息,例如表格、文本、元數(shù)據(jù)等,本文介紹了如何通過(guò)Python的pdfplumber庫(kù)提取pdf中表格數(shù)據(jù),感興趣的同學(xué)可以參考一下2023-05-05

