1
雷鋒網(wǎng)按:本文作者 Kaiser,景略集智總經(jīng)理,原文載于集智網(wǎng)專欄,雷鋒網(wǎng)已獲授權(quán)。
在昨天的卷積:如何成為一個(gè)很厲害的神經(jīng)網(wǎng)絡(luò) - 知乎專欄中,熱心網(wǎng)友提出了這樣的問題:
該文在卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)成上講解的比較直觀,但是沒有深入地探討數(shù)學(xué)原理。本文將詳細(xì)介紹卷積濾波器的具體機(jī)理,當(dāng)然不要擔(dān)心數(shù)學(xué)問題,只要能熟練掌握百以內(nèi)加減法和九九乘法表就可以。
之前在微博上關(guān)于神經(jīng)網(wǎng)絡(luò)的探討中,話題走向奇怪地走向了奶子(計(jì)劃通り),并且王司圖也做出了召喚柏木由紀(jì)的承諾,所以這次就以柏木由紀(jì)的照片為例,講解圖像處理的基本法。
現(xiàn)在我們談的“人工智能”都是弱人工智能,更確切地說,還是輔助計(jì)算工具。我們不能因?yàn)橛辛松窠?jīng)網(wǎng)絡(luò),就像卡茲一樣停止思考。
所以不管借助神經(jīng)網(wǎng)絡(luò)解決任何問題,第一步也是最關(guān)鍵的一步,就是了解你的問題本身。反映在具體的應(yīng)用上,就是要摸清業(yè)務(wù)背后的邏輯關(guān)系,而不是把數(shù)據(jù)往黑盒里一扔,開始準(zhǔn)備煉丹。如果一遍摸不清,那就再摸一遍。
現(xiàn)在我們要做一個(gè)物體識(shí)別的程序,上圖中可供識(shí)別的物體并不多,唯一涼鞋、一褲頭、一奶罩而已,那就奶罩吧。作為一個(gè)入門程序,現(xiàn)在那么早就處理彩色圖片,是不理智、不合適的。所以我們要進(jìn)行一些簡(jiǎn)化,從皮相中剝離出骨相,把最核心的數(shù)學(xué)原理公然露出,放置Play。
經(jīng)過“灰度->閾值”兩步,彩圖變成了黑白圖。接下來我們要從計(jì)算機(jī)視覺的角度去司圖,所以眼前的黑不是黑,你說的白也不是白,所見諸相非相,只是像素值,0 or 1。
暫時(shí)拋開圖片背景, 經(jīng)過觀察可知,要從人的身體上識(shí)別出奶罩和褲頭,本質(zhì)上是從白花花中尋找黑乎乎,其實(shí)就是從0中找到1。
那我們是不是需要整個(gè)奶罩呢?非也,只需要探測(cè)出奶罩的邊緣就可以了,這就如同棋道,金角銀邊爛肚皮,只要圍住了眼,就占住了氣,從而控住了勢(shì)。
卷積濾波器是一個(gè)比圖片尺寸小的矩陣,這里設(shè)為3x3。我們把圖片縮放至像素級(jí)(猜猜這是哪個(gè)部位),這里每一個(gè)小方格背后就是0或1了。卷積核在輸入圖像上來回滾動(dòng)、摩擦,那么基本上會(huì)遇到三種區(qū)域(橙框):
全白(肉體)
全黑(奶罩)
黑白(肉體和奶罩的邊緣)
和下圖的對(duì)應(yīng)關(guān)系應(yīng)該也很明顯。
這時(shí)候,我們的卷積核就像情趣羽毛,掃遍每一個(gè)角落, 撩撥你的動(dòng)感地帶。
在上文的圖表中,我們已經(jīng)見識(shí)到了多種濾波器和對(duì)應(yīng)的濾鏡效果,比如邊緣檢測(cè)、銳化、均值模糊、高斯模糊。
來看第三種邊緣檢測(cè)卷積核,其矩陣為:
再取包含邊緣的5x5區(qū)域,對(duì)應(yīng)矩陣:
現(xiàn)在這個(gè)3x3矩陣(濾波器)要在5x5矩陣上摸一遍,當(dāng)然摸不是為了爽,而是為計(jì)算一個(gè)值。計(jì)算方式如下圖,黃色方格與紅色數(shù)字即是卷積濾波器,而計(jì)算的方式就是重疊的對(duì)應(yīng)元素相乘,再相加。(注意:這不是真正的「矩陣乘法」)
因?yàn)檫@里的image在豎直方向上是不變的,所以只需要讓filter沿著最上端滑一圈就行了,總共有三次計(jì)算:
1.
2.
3.
最后生成的完整特征映射(Feature Map)將是:
特征映射的單元位置對(duì)應(yīng)的是卷積核中心(8)的位置,特征映射的取值有三種:
-3:探測(cè)到奶罩邊緣,且卷積核位于奶罩外側(cè)
3:探測(cè)到奶罩邊緣,且卷積核位于奶罩內(nèi)側(cè)
0: 沒有探測(cè)到邊緣特征
現(xiàn)在你應(yīng)該已經(jīng)明白了,為什么濾波器可以提取圖片的特征。
從初級(jí)到高級(jí),理論 + 實(shí)戰(zhàn),一站式深度了解 TensorFlow!
本課程面向深度學(xué)習(xí)開發(fā)者,講授如何利用 TensorFlow 解決圖像識(shí)別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎(chǔ)實(shí)戰(zhàn)技巧開始,一步步教授學(xué)員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,并最終掌握一整套基于 TensorFlow 做深度學(xué)習(xí)開發(fā)的專業(yè)技能。
兩名授課老師佟達(dá)、白發(fā)川身為 ThoughtWorks 的資深技術(shù)專家,具有豐富的大數(shù)據(jù)平臺(tái)搭建、深度學(xué)習(xí)系統(tǒng)開發(fā)項(xiàng)目經(jīng)驗(yàn)。
時(shí)間:每周二、四晚 20:00-21:00
開課時(shí)長(zhǎng):總學(xué)時(shí) 20 小時(shí),分 10 周完成,每周 2 次,每次 1 小時(shí)
線上授課地址:http://www.mooc.ai/
雷鋒網(wǎng)相關(guān)閱讀:
CNN 在基于弱監(jiān)督學(xué)習(xí)的圖像分割中的應(yīng)用
看了這篇文章,了解深度卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測(cè)中的進(jìn)展
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。