通俗易懂的卷積神經網絡教程-第三講

通俗易懂的卷積神經網絡教程-第三講

我們複習一下上一節的內容,我們把一張28*28*1圖片矩陣通過2次卷積,兩次池化過程給它變成了4*4*12的矩陣。

 

之後呢,我們就要直接用BP神經網絡進行全連接。用什麼輸入變量進行全連接呢?首先我們把這124*4的矩陣的其中第一個(PP1)給展開爲一條,一共4*4=16個變量:

1

2

...

16

 

接着我們把第二個、第三個...一直到第12個矩陣(PP2~PP12)全部給同理展開成爲一條,然後我們把所有的行變量合併成一個矩陣:

PP1

1

2

...

16

PP2

1

2

...

16

...

...

...

...

...

PP12

1

2

...

16

這樣我們就得到了一個12*16=192的矩陣,接下來我們把第二行拼接到第一行末尾,第三行拼接到第二行末尾,以此類推,第12行拼接到71行末尾得到一個1*192的數組:

1

2

...

192

這樣我們放入到BP全連接的輸入變量就搞定了,那麼怎麼進行全連接呢?

(1)根據BP網絡的內容我們知道,我們需要輸出的結果是和標籤變量一樣的東西,標籤變量是啥來着?我們複習一下:

如果是數字圖片,標籤中一共因變量Y共有十個值:如果圖片中的數字是0,那麼第一個格子中就是1,其餘的就是0,可以寫成:

1

0

0

0

0

0

0

0

0

0

是其他數字的話這張圖最後的形式就是:

標籤

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Y10

其中Y1~Y100或者1的數字,如果圖片中的數字是X,那麼第X+1的位置就是1,其餘位置就是0

(2)我們輸出的結果是和標籤一樣,那麼輸出的東西就是10個因變量Y,我們一共有輸入變量192個,而輸出變量是10個,如果把這些小球畫出來就是這樣的:


(3)這些小球用線連接了起來,那麼線一共多少個呢,一個黃色小球對應10個橙色,那麼192個黃色小球對應了10*192=1920個線條。有1920個線條就有1920個權值。於是我們生成1920個隨機數,作爲權值w,我們把第一個輸入變量小球對應第一個輸出變量小球的權值叫做w1,1,以此類推,把第i個輸入變量小球對應第j個輸出變量小球的權值叫做wi,j

(4)我們有權值,還需要一個參數叫做偏置量b,這個需要多少個?輸出變量有多少個,就有多少個b,我們這裏面有10個,那麼就隨機生成10個偏置量。我們把第i個輸出變量小球對應的偏置量叫做bi

(5)我們生成權值和偏置量之後,我們用第一個黃色的小球的值與w1,1相乘,然後用第二個小球與w2,1相乘,以此類推第192個小球與w192,1相乘,我們得到了192個值,然後我們把這些值相加,之後再加一個b1,我們就得出了Y1值,也就是第一個橙色輸出變量小球的值。

(6)我們用第1個黃色的小球的值與w1,2相乘,然後用第二個小球與w2,2相乘,以此類推第192個小球與w192,2相乘,我們得到了192個值,然後我們把這些值相加,之後再加一個b2,我們就得出了Y2值,也就是第一個橙色輸出變量小球的值。

(7)同理求出Y3~Y10。這樣我們就得出了10個橙色小球,也就是輸出變量值。

(8)但是這樣還沒有完事兒,我們不能夠光輸出這樣的值,我們應該給Y1~Y10扣上一個sigmoid函數,給它搞到0~1之間的一個數。這個函數這麼寫:

這兩個公式就可以把Yj全部都給算出來,算出來之後,我們就得到了一個1*10的數組:

y1

y2

...

Y10

比如這個數組的值是:

0.00

0.01

0.01

0.04

0.04

0.05

0.01

0.01

0.01

0.00

我們得到數組之後,我們要做的是什麼呢?計算一個目標函數,這個目標函數。這個目標函數應該如何計算我接下來再說。

爲什麼接下來再說,你們想想,我們上面計算了只是一張28*28的圖片,而我們一共輸入了6W張圖片啊,我們是不是應該也按照上面,也就是從第一節開始到現在的方法把其它的圖片都導入進去求Y值呀。但是其它圖片太多了,共59999個,我們導入不了怎麼辦?

於是我們引入另外一個機制,叫做:數據塊大小batchsize。我們根據batchsize的值,僅僅導入兩位數的圖片就好啦。比如我們設定batchsize50,我們6W張圖片的話,就用60000/50=1200組,我們分成1200組分別導入,也就是進行1200次卷積計算,每一組一共導入50張圖片。

我們假定先進行第一組訓練,我們隨機選擇50張圖片,把其圖片以及標籤導入進入,然後通過上面的算法把輸出的十個變量Y1~Y10都算出來,一共算了50組這樣的數據,然後我們把這些Y1~Y10與它們應該一一對應的標籤進行相減,然後平方後,相加,比如第一張圖的輸出值是:

0.00

0.01

0.01

0.04

0.04

0.05

0.01

0.01

0.01

0.00

它的標籤是:

1

0

0

0

0

0

0

0

0

0

那麼我們把它們的對應位置相減:

輸出

0.00

0.01

0.01

0.04

0.04

0.05

0.01

0.01

0.01

0.00

標籤

1

0

0

0

0

0

0

0

0

0

相減

-1

0.01

0.01

0.04

0.04

0.05

0.01

0.01

0.01

0

相減之後,我們再把相減的值給平方了:

相減

-1

0.01

0.01

0.04

0.04

0.05

0.01

0.01

0.01

0

平方

1

0.0001

0.0001

0.0016

0.0016

0.0025

0.0001

0.0001

0.0001

0

之後,我們再把平方後的數據加和爲1.0062

這樣我們第一張圖就算好了,同理我們算第二、第三。。。一直到第50張圖,我們會得到50個結果,我們把這50個結果加和,然後除以50,得到了一個平均值,這個值用術語就叫做MSE平均方差。

我們把第一組batchsize50個數據求完了,這樣,第一次正向傳播就結束了。我們今天就講到這裏,下節課再見!

 

下節課我們講解反向傳播。

 

————————————————

如果對我的課程感興趣的話,歡迎關注小木希望學園-微信公衆號: 

mutianwei521

也可以掃描二維碼哦!

發佈了51 篇原創文章 · 獲贊 221 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章