在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

形象解說“卷積”和“神經(jīng)網(wǎng)絡(luò)”的概念

倩倩 ? 來源:新智元 ? 2020-04-17 15:42 ? 次閱讀

一、卷積

我們在2維上說話。有兩個(gè)的函數(shù) f(x, y) 和 g(x, y)。f 和 g 的卷積就是一個(gè)新的的函數(shù)。通過下式得到:

這式子的含義是:遍覽從負(fù)無窮到正無窮的全部 s 和 t 值,把 g 在 位置上的值乘上 f 在 (s, t) 位置上的值之后“加和”(積分意義上)到一起,就是為 c 在 (x, y) 位置上的值。說白了卷積就是一種“加權(quán)求和”。以 (x, y) 為中心,把 g 距離中心 位置上的值乘上 f 在 (s, t) 的值,最后加到一起。把卷積公式寫成離散形式就更清楚了:

如果表示一幅 100×100 大小的灰度圖像,取值 [0, 255] 區(qū)間內(nèi)的整數(shù),是圖像在 (x, y) 的灰度值。范圍外的 (x, y) 上的值全取0。令在 s 和 t 取 {-1,0,1}的時(shí)候有值,其他位置全是0。可以看作是一個(gè) 3×3 的網(wǎng)格。如下圖:

圖1

每個(gè)小格子里的值就是圖像在 (x, y)的灰度值。每個(gè)小格子里的值就是在(s, t)的值。

圖2

如上圖所示,將的中心(0, 0)對準(zhǔn)的(5, 6)。把和對應(yīng)的9個(gè)位置上各自的函數(shù)值相乘,再將9個(gè)乘積加在一起,就得到了卷積值 C (5, 6)。對的每一個(gè)位置求 C值,就得到了一幅新的圖像。其中有兩個(gè)問題:

如果的所有值之和不等于1.0,則 C值有可能不落在 [0,255] 區(qū)間內(nèi),那就不是一個(gè)合法的圖像灰度值。所以如果需要讓結(jié)果是一幅圖像,就得將歸一化——令它的所有位置之和等于1.0;

對于邊緣上的點(diǎn),有可能它的周圍位置超出了圖像邊緣。此時(shí)可以把圖像邊緣之外的值當(dāng)做0。或者只計(jì)算其周圍都不超邊緣的點(diǎn)的 C。這樣計(jì)算出來的圖像 C就比原圖像小一些。在上例中是小了一圈,如果覆蓋范圍更大,那么小的圈數(shù)更多。

上述操作其實(shí)就是對數(shù)字圖像進(jìn)行離散卷積操作,又叫濾波。稱作卷積核或濾波器。不同的濾波器起不同的作用。想象一下,如果的大小是 3×3,每個(gè)格子里的值都是1/9。那么濾波就相當(dāng)于對原圖像每一個(gè)點(diǎn)計(jì)算它周圍 3×3 范圍內(nèi)9個(gè)圖像點(diǎn)的灰度平均值。這應(yīng)該是一種模糊。看看效果:

圖3

左圖是 lena 灰度原圖。中圖用 3×3值都為1/9的濾波器去濾,得到一個(gè)輕微模糊的圖像。模糊程度不高是因?yàn)闉V波器覆蓋范圍小。右圖選取了 9×9 值為1/81的濾波器,模糊效果就較明顯了。濾波器還有許多其他用處。例如下面這個(gè)濾波器:

嘗試用它來濾 lena 圖。注意該濾波器沒有歸一化(和不是1.0),故濾出來的值可能不在[0,255]之內(nèi)。通過減去最小值、除以最大/最小值之差、再乘以255并取整,把結(jié)果值歸一到[0,255]之內(nèi),使之成為一幅灰度圖像。

圖4

該濾波器把圖像的邊緣檢測出來了。它就是 Sobel算子。圖像模糊、邊緣檢測等等都是人們設(shè)計(jì)出來的、有專門用途的濾波器。如果搞一個(gè) 9×9 的隨機(jī)濾波器,會是什么效果呢?

圖5

如上圖,效果也類似于模糊。因?yàn)榘岩粋€(gè)像素點(diǎn)的值用它周圍 9×9 范圍的值隨機(jī)加權(quán)求和,相當(dāng)于“搗漿糊”。但可以看出模糊得并不潤滑。

這時(shí)我們不禁要想,如果不是由人來設(shè)計(jì)一個(gè)濾波器,而是從一個(gè)隨機(jī)濾波器開始,根據(jù)某種目標(biāo)、用某種方法去逐漸調(diào)整它,直到它接近我們想要的樣子,可行么?這就是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的思想了。可調(diào)整的濾波器是CNN的“卷積”那部分;如何調(diào)整濾波器則是CNN的“神經(jīng)網(wǎng)絡(luò)”那部分。

二、神經(jīng)網(wǎng)絡(luò)

人工神經(jīng)網(wǎng)絡(luò)(Neural Network, NN)作為一個(gè)計(jì)算模型,其歷史甚至要早于計(jì)算機(jī)。W.S.McCulloch 和 W.Pitts 在四十年代就提出了人工神經(jīng)元模型。但是單個(gè)人工神經(jīng)元甚至無法計(jì)算異或。人工智能領(lǐng)域的巨擘馬文。明斯基認(rèn)為這個(gè)計(jì)算模型是沒有前途的。在那時(shí)人們已經(jīng)認(rèn)識到將多個(gè)人工神經(jīng)元連接成網(wǎng)絡(luò)就能克服無法計(jì)算異或的問題,但是當(dāng)時(shí)沒有找到多層人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法,以至于人工神經(jīng)網(wǎng)絡(luò)模型被壓抑多年。直到人們找到了多層人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法,人工神經(jīng)網(wǎng)絡(luò)才迎來了輝煌。

人工神經(jīng)元就是用一個(gè)數(shù)學(xué)模型簡單模擬人的神經(jīng)細(xì)胞。人的神經(jīng)細(xì)胞有多個(gè)樹突和一個(gè)伸長的軸突。一個(gè)神經(jīng)元的軸突連接到其他神經(jīng)元的樹突,并向其傳導(dǎo)神經(jīng)脈沖。一個(gè)神經(jīng)元會根據(jù)來自它的若干樹突的信號決定是否從其軸突向其他神經(jīng)元發(fā)出神經(jīng)脈沖。

圖6

一個(gè)人工神經(jīng)元就是對生物神經(jīng)元的數(shù)學(xué)建模。見下圖。

圖7

是人工神經(jīng)元的輸入。a 是人工神經(jīng)元的輸出。人工神經(jīng)元將輸入加權(quán)求和后再加上偏置值 b,最后再施加一個(gè)函數(shù) f,即:

上式最后是這個(gè)式子的向量形式。P 是輸入向量,W是權(quán)值向量,b 是偏置值標(biāo)量 。f稱為“激活函數(shù)”。激活函數(shù)可以采用多種形式。例如 Sigmoid函數(shù):

這是單個(gè)人工神經(jīng)元的定義。人工神經(jīng)網(wǎng)絡(luò)就是把這樣的人工神經(jīng)元互聯(lián)成一個(gè)網(wǎng)絡(luò):一個(gè)神經(jīng)元的輸出作為另一個(gè)神經(jīng)元的輸入。神經(jīng)網(wǎng)絡(luò)可以有多種多樣的拓?fù)浣Y(jié)構(gòu)。其中最簡單的就是“多層全連接前向神經(jīng)網(wǎng)絡(luò)”。它的輸入連接到網(wǎng)絡(luò)第一層的每個(gè)神經(jīng)元。前一層的每個(gè)神經(jīng)元的輸出連接到下一層每個(gè)神經(jīng)元的輸入。最后一層神經(jīng)元的輸出就是整個(gè)神經(jīng)網(wǎng)絡(luò)的輸出。

如下圖,是一個(gè)三層神經(jīng)網(wǎng)絡(luò)。它接受10個(gè)輸入,也就是一個(gè)10元向量。第一層和第二層各有12個(gè)神經(jīng)元。最后一層有6個(gè)神經(jīng)元。就是說這個(gè)神經(jīng)網(wǎng)絡(luò)輸出一個(gè)6元向量。

圖8

整個(gè)神經(jīng)網(wǎng)絡(luò)的計(jì)算可以用矩陣式給出。我們給出人工神經(jīng)網(wǎng)絡(luò)單層的式子。每層的神經(jīng)元個(gè)數(shù)不一樣,輸入/輸出維度也就不一樣,計(jì)算式中的矩陣和向量的行列數(shù)也就不一樣,但形式是一致的。假設(shè)我們考慮的這一層是第層。它接受個(gè)輸入,擁有個(gè)神經(jīng)元(個(gè)輸出),那么這一層的計(jì)算如下式所示:

上標(biāo) i 表示第 i 層。是輸出向量,n 元,因?yàn)榈?i 層有 n 個(gè)神經(jīng)元。第 i 層的輸入,即第 i -1 層的輸出,是 m 元向量。權(quán)值矩陣 W是 n×m 矩陣:n 個(gè)神經(jīng)元,每個(gè)神經(jīng)元有 m 個(gè)權(quán)值。W乘以第 i -1 層輸出的 m 向量,得到一個(gè) n 向量,加上 n 元偏置向量 b,再對結(jié)果的每一個(gè)元素施以激活函數(shù) f,最終得到第 i 層的 n 元輸出向量。

若不嫌繁瑣,可以將第 i -1 層的輸出也展開,最終能寫出一個(gè)巨大的式子。它就是整個(gè)全連接前向神經(jīng)網(wǎng)絡(luò)的計(jì)算式。可以看出整個(gè)神經(jīng)網(wǎng)絡(luò)其實(shí)就是一個(gè)向量到向量的函數(shù)。至于它是什么函數(shù),就取決于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和每一個(gè)神經(jīng)元的權(quán)值和偏置值。如果隨機(jī)給出權(quán)值和偏置值,那么這個(gè)神經(jīng)網(wǎng)絡(luò)是無用的。我們想要的是有用的神經(jīng)網(wǎng)絡(luò)。它應(yīng)該表現(xiàn)出我們想要的行為。

要達(dá)到這個(gè)目的,首先準(zhǔn)備一個(gè)從目標(biāo)函數(shù)采樣的包含若干“輸入-輸出對兒”的集合——訓(xùn)練集。把訓(xùn)練集的輸入送給神經(jīng)網(wǎng)絡(luò),得到的輸出肯定不是正確的輸出。因?yàn)橐婚_始這個(gè)神經(jīng)網(wǎng)絡(luò)的行為是隨機(jī)的。

把一個(gè)訓(xùn)練樣本輸入給神經(jīng)網(wǎng)絡(luò),計(jì)算輸出與正確輸出的(向量)差的模平方(自己與自己的內(nèi)積)。再把全部 n 個(gè)樣本的差的模平方求平均,得到 e:

e 稱為均方誤差 mse。e 越小則神經(jīng)網(wǎng)絡(luò)的輸出與正確輸出越接近。神經(jīng)網(wǎng)絡(luò)的行為就與想要的行為越接近。

目標(biāo)是使 e 變小。在這里 e 可以看做是全體權(quán)值和偏置值的一個(gè)函數(shù)。這就成為了一個(gè)無約束優(yōu)化問題。如果能找到一個(gè)全局最小點(diǎn),e 值在可接受的范圍內(nèi),就可以認(rèn)為這個(gè)神經(jīng)網(wǎng)絡(luò)訓(xùn)練好了。它能夠很好地?cái)M合目標(biāo)函數(shù)。這里待優(yōu)化的函數(shù)也可以是 mse 外的其他函數(shù),統(tǒng)稱 Cost Function,都可以用 e 表示。

經(jīng)典的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法是反向傳播算法(BP,Back Propagation)。BP 算法屬于優(yōu)化理論中的梯度下降法(Gradient Descend)。將誤差 e 作為全部權(quán)值 W 和全部偏置值 B的函數(shù)。算法的目的是在自變量空間內(nèi)找到 e 的全局極小點(diǎn)。

首先隨機(jī)初始化全體權(quán)值 W和全體偏置值 B,之后在自變量空間中沿誤差函數(shù) e 在該點(diǎn)的梯度方向的反方向(該方向上方向?qū)?shù)最小,函數(shù)值下降最快)前進(jìn)一個(gè)步長。步長稱為學(xué)習(xí)速率(Learning Rate,η)。如此反復(fù)迭代,最終(至少是期望)解運(yùn)動到誤差曲面的全局最小點(diǎn)。

下圖是用 matlab訓(xùn)練一個(gè)極簡單的神經(jīng)網(wǎng)絡(luò)。它只有單輸入單輸出。輸入層有兩個(gè)神經(jīng)元,輸出層有一個(gè)神經(jīng)元。整個(gè)網(wǎng)絡(luò)有4個(gè)權(quán)值加3個(gè)偏置。圖中展示了固定其他權(quán)值,只把第一層第一個(gè)神經(jīng)元的權(quán)值和偏置做自變量時(shí)候的 mse 曲面,以及隨著算法迭代,解的運(yùn)動軌跡。

圖9

最終算法沒有收斂到全局最優(yōu)解(紅+)。但是解已經(jīng)運(yùn)動到了一個(gè)峽谷的底部。由于底部過于平緩,解“走不動”了。所得解比最優(yōu)也差不到哪去。

對于一個(gè)稍復(fù)雜的神經(jīng)網(wǎng)絡(luò),e 對 W和 B的函數(shù)將是一個(gè)非常復(fù)雜的函數(shù)。求梯度需要計(jì)算該函數(shù)對每一個(gè)權(quán)值和偏置值的偏導(dǎo)數(shù)。所幸的是,每一個(gè)權(quán)值或偏置值的偏導(dǎo)數(shù)公式不會因?yàn)檫@個(gè)權(quán)值或偏置值距離輸出層越遠(yuǎn)而越復(fù)雜。計(jì)算過程中有一個(gè)中間量,每層的權(quán)值和偏置值的偏導(dǎo)數(shù)都可根據(jù)后一層的以統(tǒng)一形式計(jì)算出來。每層再把計(jì)算過程中產(chǎn)生的傳遞給前一層。這就是“反向傳播”名稱的由來——沿著反向向前傳。這與計(jì)算網(wǎng)絡(luò)輸出時(shí),計(jì)算結(jié)果向后傳相反。如此可逐層計(jì)算出全部權(quán)值和偏置值的偏導(dǎo)數(shù),得到梯度。具體推導(dǎo)這里不給出了,可以參考[1]第八章和[2]第十一章。正是反向傳播能夠讓我們訓(xùn)練神經(jīng)網(wǎng)絡(luò)“深處”的參數(shù),這就是“Deep Learning”的含義。

梯度下降法有很多變體。通過調(diào)整步長 η 可以提高收斂速度;通過增加沖量可以避免解陷入局部最優(yōu)點(diǎn)。還可以每一次不計(jì)算全部樣本的 mse,而是隨機(jī)取一部分樣本,根據(jù)它們的 mse 更新權(quán)值。這樣可以減少計(jì)算量。梯度下降是基于誤差函數(shù)的一階性質(zhì)。還有其他方法基于二階性質(zhì)進(jìn)行優(yōu)化,比如共軛法、牛頓法等等。優(yōu)化作為一門應(yīng)用數(shù)學(xué)學(xué)科,是機(jī)器學(xué)習(xí)的一個(gè)重要理論基礎(chǔ),在理論和實(shí)現(xiàn)上均有眾多結(jié)論和方法。參考[1]。

三、卷積神經(jīng)網(wǎng)絡(luò)

現(xiàn)在把卷積濾波器和神經(jīng)網(wǎng)絡(luò)兩個(gè)思想結(jié)合起來。卷積濾波器無非就是一套權(quán)值。而神經(jīng)網(wǎng)絡(luò)也可以有(除全連接外的)其它拓?fù)浣Y(jié)構(gòu)。可以構(gòu)造如下圖所示意的神經(jīng)網(wǎng)絡(luò):

圖10

該神經(jīng)網(wǎng)絡(luò)接受個(gè)輸入,產(chǎn)生個(gè)輸出。圖中左邊的平面包含 n×n 個(gè)格子,每個(gè)格子中是一個(gè)[0,255]的整數(shù)值。它就是輸入圖像,也是這個(gè)神經(jīng)網(wǎng)絡(luò)的輸入。右邊的平面也是 n×n 個(gè)格子,每個(gè)格子是一個(gè)神經(jīng)元。每個(gè)神經(jīng)元根據(jù)二維位置關(guān)系連接到輸入上它周圍 3×3 范圍內(nèi)的值。每個(gè)連接有一個(gè)權(quán)值。所有神經(jīng)元都如此連接(圖中只畫了一個(gè),出了輸入圖像邊緣的連接就認(rèn)為連接到常數(shù) 0)。右邊層的個(gè)神經(jīng)元的輸出就是該神經(jīng)網(wǎng)絡(luò)的輸出。

這個(gè)網(wǎng)絡(luò)有兩點(diǎn)與全連接神經(jīng)網(wǎng)絡(luò)不同。首先它不是全連接的。右層的神經(jīng)元并非連接上全部輸入,而是只連接了一部分。這里的一部分就是輸入圖像的一個(gè)局部區(qū)域。我們常聽說 CNN 能夠把握圖像局部特征、alphaGO 從棋局局部狀態(tài)提取信息等等,就是這個(gè)意思。這樣一來權(quán)值少了很多,因?yàn)檫B接就少了。權(quán)值其實(shí)還更少,因?yàn)槊恳粋€(gè)神經(jīng)元的9個(gè)權(quán)值都是和其他神經(jīng)元共享的。全部個(gè)神經(jīng)元都用這共同的一組9個(gè)權(quán)值,并且不要偏置值。那么這個(gè)神經(jīng)網(wǎng)絡(luò)其實(shí)一共只有9個(gè)參數(shù)需要調(diào)整。

看了第一節(jié)的同學(xué)們都看出來了,這個(gè)神經(jīng)網(wǎng)絡(luò)不就是一個(gè)卷積濾波器么?只不過卷積核的參數(shù)未定,需要我們?nèi)ビ?xùn)練——它是一個(gè)“可訓(xùn)練濾波器”。這個(gè)神經(jīng)網(wǎng)絡(luò)就已經(jīng)是一個(gè)拓?fù)浣Y(jié)構(gòu)特別簡單的 CNN 了。

試著用 sobel 算子濾出來的圖片作為目標(biāo)值去訓(xùn)練這個(gè)神經(jīng)網(wǎng)絡(luò)。給網(wǎng)絡(luò)的輸入是灰度 lena 圖,正確輸出是經(jīng)過 sobel 算子濾波的 lena 圖,見圖4。這唯一的一對輸入輸出圖片就構(gòu)成了訓(xùn)練集。網(wǎng)絡(luò)權(quán)值隨機(jī)初始化,訓(xùn)練2000輪。如下圖:

圖11

從左上到右下依次為:初始隨機(jī)濾波器輸出、每個(gè)200輪訓(xùn)練后的濾波器輸出(10幅)、最后一幅是 obel 算子的輸出,也就是用作訓(xùn)練的目標(biāo)圖像。可以看到經(jīng)過最初200輪后,神經(jīng)網(wǎng)絡(luò)的輸出就已經(jīng)和 sobel 算子的輸出看不出什么差別了。后面那些輪的輸出基本一樣。輸入與輸出的均方誤差 mse 隨著訓(xùn)練輪次的變化如下圖:

圖12

1500輪過后,mse 基本就是0了。訓(xùn)練完成后網(wǎng)絡(luò)的權(quán)值是:

與 sobel 算子比較一下:

注意訓(xùn)練出來的濾波器負(fù)數(shù)列在右側(cè)而不是左側(cè)。因?yàn)橛?sobel 算子算卷積的時(shí)候也許庫函數(shù)是把濾波器“反著扣上去”的。這并不重要。關(guān)鍵是一正列、一負(fù)列,中間零值列。正/負(fù)列值之比近似1:2:1。它就是近似的 sobel 算子。我們以訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方式把一個(gè)隨機(jī)濾波器訓(xùn)練成了 sobel 算子。這就是優(yōu)化的魔力。alphaGO 之神奇的核心也在于此:優(yōu)化。

在 CNN 中,這樣的濾波器層叫做卷積層。一個(gè)卷積層可以有多個(gè)濾波器,每一個(gè)叫做一個(gè) channel,或者叫做一個(gè) feature map。可以給卷積層的輸出施加某個(gè)激活函數(shù) Sigmoid、tanh 等等。激活函數(shù)也構(gòu)成 CNN 的一層——激活層,這樣的層沒有可訓(xùn)練的參數(shù)。

還有一種層叫做 Pooling 層。它也沒有參數(shù),起到降維的作用。將輸入切分成不重疊的一些 n×n 區(qū)域。每一個(gè)區(qū)域就包含個(gè)值。從這個(gè)值計(jì)算出一個(gè)值。計(jì)算方法可以是求平均、取最大 max 等等。假設(shè) n=2,那么4個(gè)輸入變成一個(gè)輸出。輸出圖像就是輸入圖像的1/4大小。若把2維的層展平成一維向量,后面可再連接一個(gè)全連接前向神經(jīng)網(wǎng)絡(luò)。

通過把這些組件進(jìn)行組合就得到了一個(gè)CNN。它直接以原始圖像為輸入,以最終的回歸或分類問題的結(jié)論為輸出,內(nèi)部兼有濾波圖像處理和函數(shù)擬合,所有參數(shù)放在一起訓(xùn)練。這就是卷積神經(jīng)網(wǎng)絡(luò)。

四、舉個(gè)例子

手寫數(shù)字識別。數(shù)據(jù)集中一共有42000個(gè)28×28的手寫數(shù)字灰度圖片。十個(gè)數(shù)字(0~9)的樣本數(shù)量大致相等。下圖展示其中一部分(前100個(gè)):

圖13

將樣本集合的75%用作訓(xùn)練,剩下的25%用作測試。構(gòu)造一個(gè)結(jié)構(gòu)如下圖的CNN:

圖14

該CNN共有8層(不包括輸入層)。它接受784元向量作為輸入,就是一幅 28×28 的灰度圖片。這里沒有將圖片變形成 28×28 再輸入,因?yàn)樵贑NN的第一層放了一個(gè) reshape 層,它將784元的輸入向量變形成 1×28×28 的陣列。最開始那個(gè) 1× 表示只有一個(gè) channel,因?yàn)檫@是灰度圖像,并沒有 RGB 三個(gè) channel。

接下來放一個(gè)卷積層。它包含32個(gè)濾波器,所以它的輸出維度是 32×28×28。32個(gè)濾波器搞出來32幅圖像(channel),每個(gè)都是 28×28 大小。后面又是一個(gè)32個(gè)濾波器的卷積層,輸出維度也是 32×28×28。

后面接上一個(gè) Pooling 層,降降維。一個(gè) 2×2 的取平均值 Pooling 層,把輸出維度減小了一半:32×14×14。接著是一個(gè)展平層,沒有運(yùn)算也沒有參數(shù),只變化一下數(shù)據(jù)形狀:把 32×14×14 展平成了6272元向量。

該6272元向量送給后面一個(gè)三層的全連接神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)的神經(jīng)元個(gè)數(shù)是 1000×1000×10。兩個(gè)隱藏層各有1000個(gè)神經(jīng)元,最后的輸出層有10個(gè)神經(jīng)元,代表10個(gè)數(shù)字。假如第六個(gè)輸出為1,其余輸出為0,就表示網(wǎng)絡(luò)判定這個(gè)手寫數(shù)字為“5”(數(shù)字“0”占第一個(gè)輸出,所以“5”占第六個(gè)輸出)。數(shù)字“5”就編碼成了:

訓(xùn)練集和測試集的數(shù)字標(biāo)簽都這么編碼(one-hot 編碼)。

全連接神經(jīng)網(wǎng)絡(luò)這部分的激活函數(shù)都采用了 Sigmoid。這出于我一個(gè)過時(shí)且膚淺的理解:用“彎彎繞”較多的 Sigmoid 給網(wǎng)絡(luò)貢獻(xiàn)非線性。實(shí)際上當(dāng)代深度學(xué)習(xí)從生物神經(jīng)的行為中得到啟發(fā),設(shè)計(jì)了其它一些表現(xiàn)優(yōu)異的激活函數(shù),比如單邊線性 Relu。

誤差函數(shù)采用均方誤差 mse。優(yōu)化算法采用 rmsprop,這是梯度下降的一個(gè)變體。它動態(tài)調(diào)整學(xué)習(xí)速率(步長 η)。訓(xùn)練過程持續(xù)10輪。注意這里10輪不是指當(dāng)前解在解空間只運(yùn)動10步。一輪是指全部31500個(gè)訓(xùn)練樣本都送進(jìn)網(wǎng)絡(luò)迭代一次。每次權(quán)值更新以32個(gè)樣本為一個(gè) batch 提交給算法。下圖展示了隨著訓(xùn)練,mse 的下降情況:

圖15

下圖是分類正確率隨著訓(xùn)練的變化情況:

圖16

該CNN在測試集上的正確率(accuracy)是96.7%,各數(shù)字的準(zhǔn)確率 / 召回率 / f1-score 如下:

該CNN對測試集10種數(shù)字分類的混淆矩陣為:

圖17

訓(xùn)練完成神經(jīng)網(wǎng)絡(luò)后,最有趣的是將其內(nèi)部權(quán)值以某種方式展現(xiàn)出來。看著那些神秘的、不明所以的連接強(qiáng)度最后竟產(chǎn)生表觀上有意義的行為,不由讓我們聯(lián)想起大腦中的神經(jīng)元連接竟構(gòu)成了我們的記憶、人格、情感 。。. 引人遐思。

在CNN上就更適合做這種事情。因?yàn)榫矸e層訓(xùn)練出來的是濾波器。用這些濾波器把輸入圖像濾一濾,看看CNN到底“看到”了什么。下圖用第一、二卷積層的32個(gè)濾波器濾了圖13第8行第8列的那個(gè)手寫數(shù)字“6”。32個(gè) channel 顯示如下:

圖18

圖19

其中有些把邊緣高亮(輸出值較大),有些把“6”的圈圈高亮,等等。這些就是CNN第一步濾波后“看到”的信息。再經(jīng)過后面的各神經(jīng)層,抽象程度逐層提高,它就這樣“認(rèn)出”了手寫數(shù)字。

最后把代碼附上。CNN使用的是 keras 庫。數(shù)據(jù)集來自kaggle:這里。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4783

    瀏覽量

    101240
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1089

    瀏覽量

    40592
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    63024
收藏 人收藏

    評論

    相關(guān)推薦

    全連接神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)有什么區(qū)別

    全連接神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別
    發(fā)表于 06-06 14:21

    卷積神經(jīng)網(wǎng)絡(luò)如何使用

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)究竟是什么,鑒于神經(jīng)網(wǎng)絡(luò)在工程上經(jīng)歷了曲折的歷史,您為什么還會在意它呢? 對于這些非常中肯的問題,我們似乎可以給出相對簡明的答案。
    發(fā)表于 07-17 07:21

    什么是圖卷積神經(jīng)網(wǎng)絡(luò)

    卷積神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 08-20 12:05

    卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)是什么

    卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
    發(fā)表于 05-05 18:12

    卷積神經(jīng)網(wǎng)絡(luò)一維卷積的處理過程

    。本文就以一維卷積神經(jīng)網(wǎng)絡(luò)為例談?wù)勗趺磥磉M(jìn)一步優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)使用的memory。文章(卷積神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 12-23 06:16

    卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用

    卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用轉(zhuǎn)載****地址:http://fcst.ceaj.org/CN/abstract/abstract2521.shtml深度學(xué)習(xí)是機(jī)器學(xué)習(xí)和人工智能研究的最新趨勢,作為一個(gè)
    發(fā)表于 08-02 10:39

    【科普】卷積神經(jīng)網(wǎng)絡(luò)(CNN)基礎(chǔ)介紹

    卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)進(jìn)行介紹,主要內(nèi)容包括卷積神經(jīng)網(wǎng)絡(luò)概念卷積
    發(fā)表于 11-16 01:00 ?1.1w次閱讀
    【科普】<b class='flag-5'>卷積</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>(CNN)基礎(chǔ)介紹

    概念到結(jié)構(gòu)、算法解析卷積神經(jīng)網(wǎng)絡(luò)

    本文是對卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)進(jìn)行介紹,主要內(nèi)容包含卷積神經(jīng)網(wǎng)絡(luò)概念卷積
    發(fā)表于 12-05 11:32 ?7次下載

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn) cnn卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn) cnn卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)?
    的頭像 發(fā)表于 08-21 16:41 ?3163次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)模型原理 卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)

    數(shù)據(jù)的不同方面,從而獲得預(yù)測和最終的表??現(xiàn)。本文將提供有關(guān)卷積神經(jīng)網(wǎng)絡(luò)模型的工作原理和結(jié)構(gòu)的詳細(xì)信息,包括其在圖像、語音和自然語言處理等不同領(lǐng)域的應(yīng)用。 卷積神經(jīng)網(wǎng)絡(luò)的工作原理:
    的頭像 發(fā)表于 08-21 16:41 ?1094次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)層級結(jié)構(gòu) 卷積神經(jīng)網(wǎng)絡(luò)卷積層講解

    卷積神經(jīng)網(wǎng)絡(luò)層級結(jié)構(gòu) 卷積神經(jīng)網(wǎng)絡(luò)卷積層講解 卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 08-21 16:49 ?9107次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的介紹 什么是卷積神經(jīng)網(wǎng)絡(luò)算法

    卷積神經(jīng)網(wǎng)絡(luò)的介紹 什么是卷積神經(jīng)網(wǎng)絡(luò)算法 卷積神經(jīng)網(wǎng)絡(luò)涉及的關(guān)鍵技術(shù)
    的頭像 發(fā)表于 08-21 16:49 ?1967次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理是什么

    基本概念、結(jié)構(gòu)、訓(xùn)練過程以及應(yīng)用場景。 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 神經(jīng)網(wǎng)絡(luò) 神經(jīng)網(wǎng)絡(luò)是一種
    的頭像 發(fā)表于 07-02 14:44 ?830次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 09:15 ?541次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念、原理及特點(diǎn)

    的基本概念、原理、特點(diǎn)以及在不同領(lǐng)域的應(yīng)用情況。 一、卷積神經(jīng)網(wǎng)絡(luò)的基本概念 卷積神經(jīng)網(wǎng)絡(luò)是一種
    的頭像 發(fā)表于 07-11 14:38 ?1394次閱讀
    主站蜘蛛池模板: 国产亚洲精品美女2020久久 | 国产成人啪午夜精品网站 | 午夜精品久视频在线观看 | 亚洲偷图色综合色就色 | 欧美一欧美一区二三区性 | 中国女人a毛片免费全部播放 | 国产欧美日韩综合精品一区二区 | 天天拍天天干天天操 | 免费h视频网站 | 日韩电影天堂网 | 韩国在线视频 | 图片区网友自拍另类图区 | 日韩啪啪电影 | 婷婷久久综合九色综合98 | 秋霞特色大片18入口私人高清 | 黄色大片视频网站 | 天天操夜夜嗨 | www.色图| 乡村乱人伦短小说 | 六月激情 | 国产精品久线观看视频 | 在线观看亚洲一区二区 | 日本免费黄视频 | 国产一区二区影院 | 日韩电影天堂网 | 小毛片在线观看 | 成年人的毛片 | 亚洲国产成人成上人色 | 奇米7777影视 | 放荡的俄罗斯美女bd | 久久天天躁狠狠躁夜夜呲 | 四虎永久在线精品国产免费 | 欧美一级第一免费高清 | 奇米第四777| 一级毛毛片毛片毛片毛片在线看 | 大胆国模一区二区三区伊人 | 久久天天躁夜夜躁狠狠85台湾 | xxx色xxx性| 成人免费看黄页网址大全 | 天天擦天天干 | 国产午夜精品一区二区三区 |