一维卷积filter_面试题:CNN的卷积核是单层的还是多层的?
CNN的卷積核是單層的還是多層的?
解析:
一般而言,深度卷積網絡是一層又一層的。層的本質是特征圖, 存貯輸入數據或其中間表示值。
一組卷積核則是聯系前后兩層的網絡參數表達體, 訓練的目標就是每個卷積核的權重參數組。
描述網絡模型中某層的厚度,通常用名詞通道channel數或者特征圖feature map數。
不過人們更習慣把作為數據輸入的前層的厚度稱之為通道數(比如RGB三色圖層稱為輸入通道數為3),把作為卷積輸出的后層的厚度稱之為特征圖數。
卷積核(filter)一般是3D多層的,除了面積參數, 比如3x3之外, 還有厚度參數H(2D的視為厚度1). 還有一個屬性是卷積核的個數N。
卷積核的厚度H, 一般等于前層厚度M(輸入通道數或feature map數). 特殊情況M > H。
卷積核的個數N, 一般等于后層厚度(后層feature maps數,因為相等所以也用N表示)。
卷積核通常從屬于后層,為后層提供了各種查看前層特征的視角,這個視角是自動形成的。
卷積核厚度等于1時為2D卷積,對應平面點相乘然后把結果加起來,相當于點積運算;
卷積核厚度大于1時為3D卷積,每片分別平面點求卷積,然后把每片結果加起來,作為3D卷積結果;1x1卷積屬于3D卷積的一個特例,有厚度無面積, 直接把每片單個點乘以權重再相加。
歸納之,卷積的意思就是把一個區域,不管是一維線段,二維方陣,還是三維長方塊,全部按照卷積核的維度形狀,對應逐點相乘再求和,濃縮成一個標量值也就是降到零維度,作為下一層的一個feature map的一個點的值!
可以比喻一群漁夫坐一個漁船撒網打魚,魚塘是多層水域,每層魚兒不同。
船每次移位一個stride到一個地方,每個漁夫撒一網,得到收獲,然后換一個距離stride再撒,如此重復直到遍歷魚塘。
A漁夫盯著魚的品種,遍歷魚塘后該漁夫描繪了魚塘的魚品種分布;
B漁夫盯著魚的重量,遍歷魚塘后該漁夫描繪了魚塘的魚重量分布;
還有N-2個漁夫,各自興趣各干各的;
最后得到N個特征圖,描述了魚塘的一切!
2D卷積表示漁夫的網就是帶一圈浮標的漁網,只打上面一層水體的魚;
3D卷積表示漁夫的網是多層嵌套的漁網,上中下層水體的魚兒都跑不掉;
1x1卷積可以視為每次移位stride,甩鉤釣魚代替了撒網;
下面解釋一下特殊情況的 M > H:
實際上,除了輸入數據的通道數比較少之外,中間層的feature map數很多,這樣中間層算卷積會累死計算機(魚塘太深,每層魚都打,需要的魚網太重了)。
所以很多深度卷積網絡把全部通道/特征圖劃分一下,每個卷積核只看其中一部分(漁夫A的漁網只打撈深水段,漁夫B的漁網只打撈淺水段)。
這樣整個深度網絡架構是橫向開始分道揚鑣了,到最后才又融合。
這樣看來,很多網絡模型的架構不完全是突發奇想,而是是被參數計算量逼得。
特別是現在需要在移動設備上進行AI應用計算(也叫推斷), 模型參數規模必須更小, 所以出現很多減少握手規模的卷積形式, 現在主流網絡架構大都如此。
福利時間
立刻掃碼領紅包
可以分享出去讓朋友們領取哦.
朋友領的越多.你拿的也會更多
他用機器學習減肥20斤!程序員必看,你想不到的機器學習妙用
Github最火!程序員必須知道22大定律和法則
戳你在看嗎?總結
以上是生活随笔為你收集整理的一维卷积filter_面试题:CNN的卷积核是单层的还是多层的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言实现有限域模多项式_有限域计算简述
- 下一篇: 倒序排序_排序算法(六):Countin