第一課:為什么計(jì)算機(jī)視覺(jué)能夠發(fā)展迅速
大數(shù)據(jù)以及算法開(kāi)發(fā)將會(huì)使智能系統(tǒng)的測(cè)試誤差逐漸趨近于貝葉斯最優(yōu)誤差。這個(gè)結(jié)果將會(huì)導(dǎo)致人工智能的表現(xiàn)全方位超越人類(lèi)切蟋,其中包括自然識(shí)別方面的工作融柬。像TensorFlow這樣的開(kāi)源軟件鸽素,就可以幫助你用遷移學(xué)習(xí)的方法迅速實(shí)現(xiàn)其任何物體的探測(cè)器隆判。用遷移學(xué)習(xí)的方法你只需要大約100-500個(gè)訓(xùn)練實(shí)例就可以得到很好的結(jié)果。手動(dòng)標(biāo)記100個(gè)實(shí)例的工作量并不太俯渤,所以你可以很快得到一個(gè)最小化可用模型呆细。
第二課:卷積是如何工作的?
吳恩達(dá)解釋了如何實(shí)現(xiàn)卷積算符并展示了如何用它檢測(cè)物體邊緣八匠。他同時(shí)還解釋了其他的過(guò)濾器絮爷,比如說(shuō)索貝爾過(guò)濾器(Sobel filter),這種過(guò)濾器在圖像邊緣中部采用更大的比重梨树。然后坑夯,吳恩達(dá)解釋了這些過(guò)濾器的比重并不是靠人為設(shè)計(jì)的,而是依靠類(lèi)似于梯度下降的這樣的爬山算法由計(jì)算機(jī)自行訓(xùn)練出來(lái)的抡四。
第三課:為什么要用卷積柜蜈?
吳恩達(dá)透徹的解釋了卷積適用于圖像識(shí)別的原因。其中有兩個(gè)具體的原因指巡。第一個(gè)是參數(shù)共享淑履。大體的想法是如果一個(gè)特征探測(cè)器對(duì)于圖像的某一部分很有效,這個(gè)探測(cè)器很可能對(duì)圖像的其他部分也有效藻雪。比如說(shuō)秘噪,一個(gè)邊緣探測(cè)器可能對(duì)圖像的很多部分都有用。特征分享的方法能夠降低系統(tǒng)參數(shù)的數(shù)量阔涉,同時(shí)能夠帶來(lái)穩(wěn)健的平移不變性(translation invariance)缆娃。平移不變性是一個(gè)概念,意思是比如說(shuō)有一張貓的圖片瑰排,即使是經(jīng)過(guò)了移動(dòng)和旋轉(zhuǎn)贯要,依舊是一只貓的圖片。
第二個(gè)原因被稱(chēng)作稀疏連結(jié)性椭住,即每個(gè)輸出層僅僅由很小一部分輸入結(jié)點(diǎn)計(jì)算得到(更具體一些崇渗,輸入的數(shù)量是過(guò)濾器數(shù)量的平方)。用這個(gè)方法可以極大的減少網(wǎng)絡(luò)中參數(shù)的數(shù)量京郑,提高訓(xùn)練速度宅广。
第四課:為什么使用填充(Padding)?
填充通常用來(lái)保持輸入的數(shù)量(也就是說(shuō)些举,使得輸入輸出的維度相同)跟狱。用這個(gè)方法也可以保證在進(jìn)行訓(xùn)練時(shí),來(lái)自圖片邊緣的貢獻(xiàn)和來(lái)自中心的貢獻(xiàn)相當(dāng)户魏。
第五課:為什么使用最大池化層(Max Pooling)驶臊?
實(shí)證研究證明,最大池化層對(duì)于CNN非常有效叼丑。通過(guò)對(duì)圖像向下取樣关翎,我們減少了參數(shù)數(shù)量,同時(shí)也確保圖像特征在圖像尺度變化或者方向變化時(shí)保持不變鸠信。
第六課:經(jīng)典網(wǎng)絡(luò)架構(gòu)
吳恩達(dá)展示了3種經(jīng)典的神經(jīng)網(wǎng)絡(luò)架構(gòu)纵寝,包括LeNet-5, AlexNet 和VGG-16。他所展示的主要觀點(diǎn)是一個(gè)有效的神經(jīng)網(wǎng)絡(luò)通常是通道的數(shù)目不斷上升星立,寬度和高度不斷下降爽茴。
第七課:為什么ResNets 有效?
對(duì)于一般的神經(jīng)網(wǎng)絡(luò)贞铣,由于梯度的消失和爆炸闹啦,訓(xùn)練誤差并不會(huì)隨著網(wǎng)絡(luò)層數(shù)的增加而單調(diào)遞減。然而對(duì)于ResNets而言辕坝,可以通過(guò)向前跳躍性連接窍奋,讓你在訓(xùn)練一個(gè)很大的神經(jīng)網(wǎng)絡(luò)時(shí),誤差單調(diào)下降酱畅,性能單調(diào)遞增琳袄。
第八課:使用遷移學(xué)習(xí)!
如果從頭開(kāi)始訓(xùn)練一個(gè)像inception這種結(jié)構(gòu)巨大的神經(jīng)網(wǎng)絡(luò)纺酸,即使在GPU上訓(xùn)練也可能需要好幾周的時(shí)間窖逗。你可以下載經(jīng)過(guò)預(yù)訓(xùn)練得到的權(quán)重,然后只重新訓(xùn)練最后的softmax層(或者最后幾個(gè)層)餐蔬。這個(gè)會(huì)極大縮短訓(xùn)練時(shí)間碎紊。這種方法有效的原因是前幾層所訓(xùn)練的特征很可能是諸如邊界或者彎曲線(xiàn)條之類(lèi)的所有圖像的共同特征佑附。
第九課:如何在計(jì)算機(jī)視覺(jué)競(jìng)賽中獲勝
吳恩達(dá)解釋說(shuō),你需要獨(dú)立的訓(xùn)練多個(gè)神經(jīng)網(wǎng)絡(luò)然后取結(jié)果的平均值仗考,來(lái)獲得更好的結(jié)果音同。一些數(shù)據(jù)增強(qiáng)的技術(shù),比如說(shuō)隨機(jī)裁剪圖片秃嗜,沿水平垂直軸翻轉(zhuǎn)圖像可以幫助提升模型表現(xiàn)权均。總之锅锨,你一開(kāi)始應(yīng)該使用開(kāi)源軟件庫(kù)和預(yù)訓(xùn)練模型叽赊,然后根據(jù)自己要解決的問(wèn)題不斷細(xì)化模型,調(diào)整參數(shù)必搞。
第十課:如何實(shí)現(xiàn)對(duì)象檢測(cè)
首先必指,吳恩達(dá)解釋了從圖片中檢測(cè)標(biāo)志性物體的思路。基本上來(lái)說(shuō)恕洲,這些標(biāo)志性物體將成為最終輸出結(jié)果的一部分取劫。通過(guò)一些有效的卷積操作,你會(huì)得到一個(gè)輸出值研侣,表示一個(gè)物體出現(xiàn)在某個(gè)區(qū)域的概率和區(qū)域的位置谱邪。同時(shí),他解釋了如何通過(guò)交集并集商評(píng)估對(duì)象檢測(cè)器的有效性庶诡。最后惦银,吳恩達(dá)結(jié)合所有構(gòu)成要素,解釋了著名的YOLO算法末誓。
第十一課:如何實(shí)現(xiàn)面部識(shí)別
面部識(shí)別是一個(gè)單樣本學(xué)習(xí)(one-shot learning)問(wèn)題扯俱,因?yàn)槟阌锌赡苤荒芨鶕?jù)一張示例圖片來(lái)辨別一個(gè)人。解決問(wèn)題的方法是使用相似性函數(shù)喇澡,這個(gè)函數(shù)可以給出兩個(gè)圖像之間的相似程度迅栅。所以,如果兩張圖像是同一個(gè)人晴玖,你希望這個(gè)函數(shù)輸出一個(gè)較小的數(shù)值读存;不同人的兩張圖像則輸出較大的數(shù)值。
吳恩達(dá)給出的第一個(gè)解決方案被稱(chēng)作siamese網(wǎng)絡(luò)呕屎。它的基本思路是將兩張不同的圖片輸入到同一個(gè)神經(jīng)網(wǎng)絡(luò)然后比較結(jié)果让簿。如果輸出相似性很高,那么很有可能是同一個(gè)人秀睛。神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目標(biāo)就是如果兩個(gè)輸入的圖片是同一個(gè)人尔当,那么輸出的結(jié)果距離相對(duì)很小。
對(duì)于第二種解決方案蹂安,他給出了一個(gè)三元損失方法(triplet loss method)椭迎。這個(gè)方法是锐帜,從三張圖片(Anchor (A), Positive (P) and Negative (N))訓(xùn)練得到一個(gè)神經(jīng)網(wǎng)絡(luò),使得 A與P 的結(jié)果相似程度遠(yuǎn)遠(yuǎn)高于A與N的結(jié)果相似程度畜号。
第十二課:如何用神經(jīng)風(fēng)格遷移(Neural Style Transfer)的方法創(chuàng)造藝術(shù)作品
吳恩達(dá)解釋了如何結(jié)合風(fēng)格和內(nèi)容創(chuàng)造新的圖畫(huà)抹估。示例如下。神經(jīng)風(fēng)格遷移方法的核心在于充分理解神經(jīng)網(wǎng)絡(luò)中每一個(gè)卷積層對(duì)應(yīng)的具體的視覺(jué)表征弄兜。實(shí)際表明,網(wǎng)絡(luò)當(dāng)中前幾層通常學(xué)習(xí)簡(jiǎn)單的特征瓷式,比如圖像邊緣替饿。后幾層通常學(xué)習(xí)一些復(fù)雜的對(duì)象,比如臉贸典,腳视卢,汽車(chē)等。
為了創(chuàng)建一個(gè)神經(jīng)風(fēng)格轉(zhuǎn)移圖畫(huà)廊驼,你只需要定義一個(gè)結(jié)合風(fēng)格和內(nèi)容相似性的凸函數(shù)作為損失函數(shù)据过。具體而言,這個(gè)函數(shù)可以寫(xiě)成:
在這個(gè)方程中妒挎,G是被創(chuàng)造出的圖像绳锅,C是圖像內(nèi)容,S是圖像風(fēng)格酝掩。簡(jiǎn)單的采用梯度下降法來(lái)對(duì)損失函數(shù)就生成圖像求最小值鳞芙。
基本步驟如下:
隨機(jī)生成G。
使用梯度下降方法最小化J(G)期虾,通過(guò)這個(gè)等式: G:=G-dG(J(G))
重復(fù)第二步原朝。
結(jié)論:
完成這門(mén)課程之后,你會(huì)對(duì)大量計(jì)算機(jī)視覺(jué)方面的文獻(xiàn)有一個(gè)直觀的認(rèn)識(shí)镶苞。同時(shí)課后作業(yè)讓你有機(jī)會(huì)自己實(shí)現(xiàn)部分算法喳坠。完成這門(mén)課程后,你不會(huì)很快成為一個(gè)計(jì)算機(jī)視覺(jué)方面的專(zhuān)家茂蚓,但是它可能會(huì)開(kāi)啟你計(jì)算機(jī)視覺(jué)相關(guān)的想法和事業(yè)壕鹉。