Member-only story
免費閱讀文章:Deep-learning 是一個黑盒子? CNN是如何運作的呢? (part2)
今日的課程來自於: https://youtu.be/5BJDJd-dzzg (33-54分)
What does CNN learn?
What is intelligent?
今天我們要來分析CNN是如何運作的?
我們都知道如果若是有一個模型,他的方法我們可以輕易知道她如何運作的話,那我們自然也不會覺得這個方法 "intelleigent" 了!
大家都說deep learning 就是一個黑盒子,我們根本就無法知道訓練的東西為甚麼是這樣子,有些人甚至無法相信他。但是其實我們還是可以分析的,今天就來看一下要如何分析CNN,看他到底學了甚麼?
今天本篇會提到三點,分別從 filter 、neuron 和output 來解釋。
就如前一篇提到的 Convolutional Neural network 卷積神經網路 的CNN的架構,重複數次的 Concolution和max pooling,再做Flatten 和 Fully connected network。
第一層的Convolution 的filter是比較容易的,在上一篇的講解提到,這一個3*3 matrix 的filter就是要在這3*3=9 個pixel內,找到特定的patten 。
接下來第二層的filter就開始很難解釋了,因為她的input是做完 convoluion 在做Max pooling 的結果,因此filter考慮的範圍並不是3*3的pixel,而是一個3*3*25的cubic,所以我們很難知道他是怎麼運作的。
那我們先來看filter如何運作
What does filter do?
我們要怎麼分析一個 filter 在做什麼呢? 我們可以這樣做:
我們知道在第二個convolution layer裡面的50個filter,每一個filter的output就是一個11*11的matrix, 假設我們把第 k 個filter的output拿出來,如下圖表示,這個matrix裡的每一個element,我們叫他a_ij^k,上標k表示這是第k個filter,下標i j 表示matrix 里第i個row和第j個column。