如今,深度學(xué)習(xí)在眾多領(lǐng)域都有一席之地,尤其是在計(jì)算機(jī)視覺(jué)領(lǐng)域。盡管許多人都為之深深著迷,然而,深網(wǎng)就相當(dāng)于一個(gè)黑盒子,我們大多數(shù)人,甚至是該領(lǐng)域接受過(guò)培訓(xùn)的科學(xué)家,都不知道它們究竟是如何運(yùn)作的。
大量有關(guān)深度學(xué)習(xí)的成功或失敗事例給我們上了寶貴的一課,教會(huì)我們正確處理數(shù)據(jù)。在這篇文章中,我們將深入剖析深度學(xué)習(xí)的潛力,深度學(xué)習(xí)與經(jīng)典計(jì)算機(jī)視覺(jué)的關(guān)系,以及深度學(xué)習(xí)用于關(guān)鍵應(yīng)用程序的潛在危險(xiǎn)。
視覺(jué)問(wèn)題的簡(jiǎn)單與復(fù)雜
首先,我們需要就視覺(jué)/計(jì)算機(jī)視覺(jué)問(wèn)題提出一些看法。原則上它可以這樣理解,人們給定一幅由攝像機(jī)拍攝的圖像,并允許計(jì)算機(jī)回答關(guān)于與該圖像內(nèi)容的相關(guān)問(wèn)題。
問(wèn)題的范圍可以從“圖像中是否存在三角形”,“圖像中是否有人臉”等簡(jiǎn)單問(wèn)題到更為復(fù)雜的問(wèn)題,例如“圖像中是否有狗在追逐貓”。盡管這類(lèi)的問(wèn)題看起來(lái)很相似,對(duì)于人類(lèi)來(lái)說(shuō)甚至有點(diǎn)微不足道,但事實(shí)證明,這些問(wèn)題所隱藏的復(fù)雜性存在巨大差異。
雖然回答諸如“圖像中是否有紅圈”或“圖像中有多少亮點(diǎn)”之類(lèi)的問(wèn)題相對(duì)容易,但其他看似簡(jiǎn)單的問(wèn)題如“圖像中是否有一只貓”,則要復(fù)雜得多!昂(jiǎn)單”視覺(jué)問(wèn)題和“復(fù)雜”視覺(jué)問(wèn)題之間的區(qū)別難以界限。
這一點(diǎn)值得注意,因?yàn)閷?duì)于人類(lèi)這種高度視覺(jué)化的動(dòng)物來(lái)說(shuō),上述所有問(wèn)題都是不足以成為難題,即便是對(duì)孩子們來(lái)說(shuō),回答上述視覺(jué)問(wèn)題也并不困難。然而,處在變革時(shí)期的深度學(xué)習(xí)卻無(wú)法回答這些問(wèn)題。
傳統(tǒng)計(jì)算機(jī)視覺(jué)V.S.深度學(xué)習(xí)
傳統(tǒng)計(jì)算機(jī)視覺(jué)是廣泛算法的集合,允許計(jì)算機(jī)從圖像中提取信息(通常表示為像素值數(shù)組)。目前,傳統(tǒng)計(jì)算機(jī)視覺(jué)已有多種用途,例如對(duì)不同的對(duì)象進(jìn)行去噪,增強(qiáng)和檢測(cè)。
一些用途旨在尋找簡(jiǎn)單的幾何原語(yǔ),如邊緣檢測(cè),形態(tài)分析,霍夫變換,斑點(diǎn)檢測(cè),角點(diǎn)檢測(cè),各種圖像閾值化技術(shù)等。還有一些特征代表技術(shù),如方向梯度直方圖可以作為機(jī)器學(xué)習(xí)分類(lèi)器的前端,來(lái)構(gòu)建更復(fù)雜的檢測(cè)器。
與普遍的看法相反,上面討論的工具結(jié)合在一起可以造出針對(duì)特定對(duì)象的檢測(cè)器,這種檢測(cè)器性能強(qiáng),效率高。除此之外,人們還可以構(gòu)建面部檢測(cè)器,汽車(chē)檢測(cè)器,路標(biāo)檢測(cè)器,在精準(zhǔn)度和計(jì)算復(fù)雜性等方面,這些檢測(cè)器很可能優(yōu)于深度學(xué)習(xí)。
但問(wèn)題是,每個(gè)檢測(cè)器都需要由有能力的人從頭開(kāi)始構(gòu)建,這一行為低效又昂貴。因此,從歷史上看,表現(xiàn)優(yōu)良的探測(cè)器只適用于那些必須經(jīng)常被檢測(cè),并且能夠證明前期投資是明智的對(duì)象。
這些探測(cè)器中有許多是專(zhuān)有的,不向公眾開(kāi)放,比如人臉檢測(cè)器,車(chē)牌識(shí)別器等等。但是,沒(méi)有一個(gè)心智正常的人會(huì)花錢(qián)編寫(xiě)狗探測(cè)器或分類(lèi)器,以便從圖像中對(duì)狗的品種進(jìn)行分類(lèi)。于是,深度學(xué)習(xí)就派上了用場(chǎng)。
尖子生的啟迪
假設(shè)你正在教授計(jì)算機(jī)視覺(jué)課程,在課程的前半部分,你要帶領(lǐng)學(xué)生們復(fù)習(xí)大量的專(zhuān)業(yè)知識(shí),然后留時(shí)間給學(xué)生完成任務(wù),也就是收集圖像內(nèi)容并提問(wèn)。任務(wù)一開(kāi)始很簡(jiǎn)單,例如通過(guò)詢(xún)問(wèn)圖像中是否有圓形或正方形,再到更復(fù)雜的任務(wù),例如區(qū)分貓和狗。
學(xué)生每周都要編寫(xiě)計(jì)算機(jī)程序來(lái)完成任務(wù),而你負(fù)責(zé)查看學(xué)生編寫(xiě)的代碼,并運(yùn)行查看它們的效果如何。
這個(gè)學(xué)期,一名新生加入了你的班級(jí)。他不愛(ài)說(shuō)話(huà),不愛(ài)社交,也沒(méi)有提過(guò)什么問(wèn)題。但是,當(dāng)他提交自己的第一個(gè)任務(wù)方案時(shí),你感到有點(diǎn)意外。這名新生編寫(xiě)的代碼讓人難以理解,你從來(lái)都沒(méi)見(jiàn)過(guò)這樣的代碼?雌饋(lái)他像是用隨機(jī)的過(guò)濾器對(duì)每幅圖像進(jìn)行卷積,然后再用非常奇怪的邏輯來(lái)得到最終的答案。
你運(yùn)行了這段代碼,效果非常好。你心想,雖然這個(gè)解決方案非同尋常,但只要它有效就足夠了。幾周過(guò)去了,學(xué)生們需要完成的任務(wù)難度越來(lái)越高,你也從這名新生那里得到了越來(lái)越復(fù)雜的代碼。他的代碼出色地完成了難度日益增大的任務(wù),但你無(wú)法真正理解其中的內(nèi)容。
期末的時(shí)候,你給學(xué)生們布置了一項(xiàng)作業(yè),用一組真實(shí)的圖片來(lái)區(qū)分貓和狗。結(jié)果,沒(méi)有學(xué)生能夠在這項(xiàng)任務(wù)上達(dá)到超過(guò)65%的準(zhǔn)確率,但是新生編寫(xiě)的代碼準(zhǔn)確率高達(dá)95%,你大吃一驚。你開(kāi)始在接下來(lái)的幾天中深入分析這些高深莫測(cè)的代碼。你給它新的示例,然后進(jìn)行修改,試著找出影響程序決策的因素,對(duì)其進(jìn)行反向工程。
最終你得出一個(gè)非常令人驚訝的結(jié)論:代碼會(huì)檢測(cè)出狗的標(biāo)簽。如果它能檢測(cè)到標(biāo)簽,那么它就可以判斷對(duì)象的下部是否為棕色。如果是,則返回“cat”,否則返回“dog”。如果不能檢測(cè)到標(biāo)簽,那么它將檢查對(duì)象的左側(cè)是否比右側(cè)更黃。如果是,則返回“dog”,否則返回“cat”。
你邀請(qǐng)這名新生到辦公室,并把研究結(jié)果呈給他。你向他詢(xún)問(wèn),是否認(rèn)為自己真的解決了問(wèn)題?在長(zhǎng)時(shí)間的沉默之后,他終于喃喃自語(yǔ)道,他解決了數(shù)據(jù)集顯示的任務(wù),但他并不知道狗長(zhǎng)什么樣,也不知道狗和貓之間有什么不同……
很明顯,他作弊了,因?yàn)樗鉀Q任務(wù)目的和你想要的目的無(wú)關(guān)。不過(guò),他又沒(méi)有作弊,因?yàn)樗慕鉀Q方案確實(shí)是有效的。然而,其他學(xué)生的表現(xiàn)都不怎么樣。他們?cè)噲D通過(guò)問(wèn)題來(lái)解決任務(wù),而不是通過(guò)原始數(shù)據(jù)集。雖然,他們的程序運(yùn)行得并不好,倒也沒(méi)有犯奇怪的錯(cuò)誤。
深度學(xué)習(xí)的祝福和詛咒
深度學(xué)習(xí)是一種技術(shù),它使用一種稱(chēng)為梯度反向傳播的優(yōu)化技術(shù)來(lái)生成“程序”(也稱(chēng)為“神經(jīng)網(wǎng)絡(luò)”),就像上面故事中學(xué)者學(xué)生編寫(xiě)的那些程序一樣。這些“程序”和優(yōu)化技術(shù)對(duì)世界一無(wú)所知,它所關(guān)心的只是構(gòu)建一組轉(zhuǎn)換和條件,將正確的標(biāo)簽分配給數(shù)據(jù)集中的正確圖像。
通過(guò)向訓(xùn)練集添加更多的數(shù)據(jù),可以消除虛假的偏差,但是,伴隨著數(shù)百萬(wàn)個(gè)參數(shù)和數(shù)千個(gè)條件檢查,反向傳播生成的“程序”會(huì)非常大,非常復(fù)雜,因此它們可以鎖定更細(xì)微偏差的組合。任何通過(guò)分配正確標(biāo)簽,來(lái)統(tǒng)計(jì)優(yōu)化目標(biāo)函數(shù)的方法都可以使用,不管是否與任務(wù)的“語(yǔ)義精神”有關(guān)。
這些網(wǎng)絡(luò)最終能鎖定“語(yǔ)義正確”的先驗(yàn)嗎?當(dāng)然可以。但是現(xiàn)在有大量的證據(jù)表明,這并不是這些網(wǎng)絡(luò)分內(nèi)之事。相反的例子表明,對(duì)圖像進(jìn)行非常微小的、無(wú)法察覺(jué)的修改就可以改變檢測(cè)結(jié)果。
研究人員對(duì)訓(xùn)練過(guò)的數(shù)據(jù)集的新示例進(jìn)行了研究,結(jié)果表明,原始數(shù)據(jù)集之外的泛化要比數(shù)據(jù)集內(nèi)的泛化弱得多,因此說(shuō)明,網(wǎng)絡(luò)所依賴(lài)的給定數(shù)據(jù)集具有特定的低層特性。在某些情況下,修改單個(gè)像素就足以產(chǎn)生一個(gè)新的深度網(wǎng)絡(luò)分類(lèi)器。
在某種程度上,深度學(xué)習(xí)最大的優(yōu)勢(shì)就是自動(dòng)創(chuàng)建沒(méi)有人會(huì)想到的特性能力,這同時(shí)也是它最大的弱點(diǎn),因?yàn)榇蠖鄶?shù)這些功能至少在語(yǔ)義上看起來(lái),可以說(shuō)是“可疑的”。
什么時(shí)候有意義,什么時(shí)候沒(méi)有意義?
深度學(xué)習(xí)對(duì)于計(jì)算機(jī)視覺(jué)系統(tǒng)來(lái)說(shuō)無(wú)疑是一個(gè)有趣的補(bǔ)充。我們現(xiàn)在可以相對(duì)容易地“訓(xùn)練”探測(cè)器來(lái)探測(cè)那些昂貴且不切實(shí)際的物體。我們還可以在一定程度上擴(kuò)展這些檢測(cè)器,以使用更多的計(jì)算能力。
但我們?yōu)檫@種奢侈付出的代價(jià)是高昂的:我們不知道深度學(xué)習(xí)是如何做出判斷,而且我們確實(shí)知道,分類(lèi)的依據(jù)很可能與任務(wù)的“語(yǔ)義精神”無(wú)關(guān)。而且,只要輸入數(shù)據(jù)違反訓(xùn)練集中的低水平偏差,檢測(cè)器就會(huì)出現(xiàn)失效。這些失效條件目前尚且不為人知。
因此,在實(shí)踐中,深度學(xué)習(xí)對(duì)于那些錯(cuò)誤不是很?chē)?yán)重,并且保證輸入不會(huì)與訓(xùn)練數(shù)據(jù)集有很大差異的應(yīng)用程序非常有用,這些應(yīng)用能夠承受5%以?xún)?nèi)的錯(cuò)誤率就沒(méi)問(wèn)題,包括圖像搜索、監(jiān)視、自動(dòng)化零售,以及幾乎所有不是“關(guān)鍵任務(wù)”的東西。
具有諷刺意味的是,大多數(shù)人認(rèn)為深度學(xué)習(xí)是應(yīng)用領(lǐng)域的一次革命,因?yàn)樯疃葘W(xué)習(xí)的決策具有實(shí)時(shí)性,錯(cuò)誤具有重大性,甚至?xí)䦟?dǎo)致致命的結(jié)果,如自動(dòng)駕駛汽車(chē),自主機(jī)器人(例如,最近的研究表明,基于深層神經(jīng)網(wǎng)絡(luò)的自主駕駛確實(shí)容易受到現(xiàn)實(shí)生活中的對(duì)抗性攻擊)。我只能將這種信念描述為對(duì)“不幸”的誤解。
一些人對(duì)深度學(xué)習(xí)在醫(yī)學(xué)和診斷中的應(yīng)用寄予厚望。然而,在這方面也有一些令人擔(dān)憂(yōu)的發(fā)現(xiàn),例如,針對(duì)一個(gè)機(jī)構(gòu)數(shù)據(jù)的模型未能很好地檢測(cè)另一個(gè)機(jī)構(gòu)數(shù)據(jù)。這再次印證了一種觀點(diǎn):這些模型獲取的數(shù)據(jù)要比許多研究人員所希望的更淺。
數(shù)據(jù)比我們想象的要淺
出人意料的是,深度學(xué)習(xí)教會(huì)了我們一些關(guān)于視覺(jué)數(shù)據(jù)(通常是高維數(shù)據(jù))的東西,這個(gè)觀點(diǎn)十分有趣:在某種程度上,數(shù)據(jù)比我們過(guò)去認(rèn)為的要“淺”得多。
似乎有更多的方法來(lái)統(tǒng)計(jì)地分離標(biāo)有高級(jí)人類(lèi)類(lèi)別的可視化數(shù)據(jù)集,然后有更多的方法來(lái)分離這些“語(yǔ)義正確”的數(shù)據(jù)集。換句話(huà)說(shuō),這組低水平的圖像特征比我們想象的更具“統(tǒng)計(jì)意義”。這是深度學(xué)習(xí)的偉大發(fā)現(xiàn)。
如何生成“語(yǔ)義上合理”的方法來(lái)分離可視數(shù)據(jù)集模型的問(wèn)題仍然存在,事實(shí)上,這個(gè)問(wèn)題現(xiàn)在似乎比以前更難回答。
結(jié)論
深度學(xué)習(xí)已經(jīng)成為計(jì)算機(jī)視覺(jué)系統(tǒng)的重要組成部分。但是傳統(tǒng)的計(jì)算機(jī)視覺(jué)并沒(méi)有走到那一步,而且,它仍然可以用來(lái)建造非常強(qiáng)大的探測(cè)器。這些人工制作的檢測(cè)器在某些特定的數(shù)據(jù)集度量上可能無(wú)法實(shí)現(xiàn)深度學(xué)習(xí)的高性能,但是可以保證依賴(lài)于輸入的“語(yǔ)義相關(guān)”特性集。
深度學(xué)習(xí)提供了統(tǒng)計(jì)性能強(qiáng)大的檢測(cè)器,而且不需要犧牲特征工程,不過(guò)仍然需要有大量的標(biāo)記數(shù)據(jù)、大量GPU,以及深度學(xué)習(xí)專(zhuān)家。然而,這些強(qiáng)大的檢測(cè)器也會(huì)遭遇意外的失敗,因?yàn)樗鼈兊倪m用范圍無(wú)法輕易地描述(或者更確切地說(shuō),根本無(wú)法描述)。
需要注意的是,上面的討論都與“人工智能”中的AI無(wú)關(guān)。我不認(rèn)為像深度學(xué)習(xí)與解決人工智能的問(wèn)題有任何關(guān)系。但我確實(shí)認(rèn)為,將深度學(xué)習(xí)、特性工程和邏輯推理結(jié)合起來(lái),可以在廣泛的自動(dòng)化空間中實(shí)現(xiàn)非常有趣和有用的技術(shù)能力。