0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計算機視覺的主要目的是什么

QQ475400555 ? 來源:周縱葦@知乎 ? 2023-11-15 09:14 ? 次閱讀

作者丨周縱葦@知乎

導(dǎo)讀

視覺的目的是什么?設(shè)計匹配亦或是分類。作者從“視覺的目的”引發(fā)討論,簡要回顧計算機視覺在通用視覺特征學(xué)習(xí)的發(fā)展歷程,以及近期在這個領(lǐng)域取得的眾多突破,最后對自監(jiān)督學(xué)習(xí)框架提出一些作者自己的想法。

摘要:視覺,對于人類或動物來說,似乎是一件稀松平常的事情,我們甚至都不需要去有意識地訓(xùn)練自己,就可以天賦一般地認(rèn)識世界。對于機器而言,理解圖片卻是一項極其困難的任務(wù),計算機視覺是一門教機器如何“看”的科學(xué)。當(dāng)給定一個明確的目標(biāo)函數(shù)并加以不斷地迭代,當(dāng)前的計算機已經(jīng)可以完成很多復(fù)雜的任務(wù),比如圖像視頻分類,目標(biāo)跟蹤和檢測,實例分割,關(guān)鍵點檢測等。完成單一的復(fù)雜任務(wù)雖然能夠清晰地定義目標(biāo)函數(shù),但是訓(xùn)練成本高,數(shù)據(jù)收集困難,并且復(fù)雜任務(wù)的數(shù)量不勝枚舉,尤其是對于跨學(xué)科的圖像理解任務(wù)。人類的視覺恰恰相反:通過長時間的觀察學(xué)習(xí),只需很少的監(jiān)督樣本就可以快速達(dá)到多個領(lǐng)域的專家水平。要給這種長期的,無監(jiān)督的學(xué)習(xí)定義一個清晰的目標(biāo)函數(shù)或目標(biāo)任務(wù),卻是一項非常具有挑戰(zhàn)的課題,也是計算機視覺一直在探索的問題。這次分享,我將會從“視覺的目的”引發(fā)討論,簡要回顧計算機視覺在通用視覺特征學(xué)習(xí)的發(fā)展歷程,以及近期在這個領(lǐng)域取得的眾多突破,最后對自監(jiān)督學(xué)習(xí)框架提出一些我自己的想法。

為什么問“視覺的目的是什么?”

大家好,我是周縱葦,現(xiàn)在是亞利桑那州立大學(xué)的博士生,再過幾個月我就畢業(yè)了,今天很高興在這里和大家聊一聊計算機視覺。視覺不是人類特有的,大多數(shù)的動物,或者更寬泛地來說,攝像頭,都有所謂視覺,來收集光線,并做出某些反應(yīng)。比如現(xiàn)在我沒有真的坐在大家的面前,但是你們可以通過攝像頭看到我?,F(xiàn)在的攝像頭變得越來越聰明了,它不光能檢測到物體,還能跟蹤,能識別人臉,能給我實時地做美顏,這還不算什么,現(xiàn)在的攝像頭還能輔助自動駕駛,自動手術(shù)等等。真的和我們的視覺越來越像了。問題是,既然攝像頭這么智能,如果用它來替換動物的眼睛,能好使嗎?小貓小狗的視覺系統(tǒng)可能還遠(yuǎn)遠(yuǎn)做不到像現(xiàn)在的攝像頭一樣,把圖片中的大大小小的東西都識別出來,打上標(biāo)簽,甚至把邊緣都分割得那么好,它們的視覺系統(tǒng)看起來笨笨的,但是很穩(wěn)定,很可靠。攝像頭背后的秘密就是我們今天討論的計算機視覺,它的最終目標(biāo)就是能讓計算機像人一樣地看見,理解照片,視頻,和周圍的環(huán)境,并且能作出某些反應(yīng)。

我們先來看看為什么現(xiàn)在的計算機視覺在某些任務(wù)中這么厲害——比如人臉識別——因為它目的明確。在訓(xùn)練計算機的時候,我們就告訴它,你把這個事兒做了,其他不用管,跟我們小時候差不多,你把學(xué)習(xí)弄好了,其他大大小小的家務(wù)不用你管。那這個事情就簡單了,我們需要做的就是把目標(biāo)函數(shù)設(shè)計好,計算機的任務(wù)就是不停地學(xué),不停地迭代,直到無限靠近這個目標(biāo)。用這一套方法論,你會發(fā)現(xiàn)計算機視覺很簡單嘛,很多任務(wù),只要我們能清晰地設(shè)計出目標(biāo)函數(shù),并且能收集到大量的數(shù)據(jù)集,計算機視覺非常容易在某個任務(wù)中超越人眼。我說到這兒,不知道大家有沒有在想一個問題?如果說計算機視覺的終極目標(biāo)是讓計算機擁有像人類或者動物一樣看上去笨笨的但是可靠的視覺理解系統(tǒng),那我就請問,

視覺的目的是什么?或者視覺的目標(biāo)函數(shù)是什么?

What is the Will of Vision?

“視覺的目的是設(shè)計和匹配特征?“

這個問題很有意思,基本上貫穿了整個計算機視覺的研究脈絡(luò)。在我還沒生出來的時候,計算機視覺是以規(guī)則為主的,對于所有的概念,我們都需要很詳細(xì)地去設(shè)計它的特征。比如要讓計算機了解貓,最簡單的特征就是它的臉,形狀,四肢,尾巴等等,為了和狗做區(qū)分,我們還要設(shè)計那些顯著的特征。有了這些特征,計算機就去匹配,能匹配上的就是貓?,F(xiàn)在回過來看,你會發(fā)現(xiàn)這種方法特沒譜,首先,就算計算機認(rèn)出了這只貓,這算不上理解,只是對一些規(guī)則的數(shù)學(xué)匹配;其次,普遍的規(guī)則很難用在復(fù)雜的現(xiàn)實情況中,這只貓必須站的非常端正,計算機才能把它認(rèn)出來;再有,定義一個概念是非常不容易的,何況有那么多概念要定義。那時候的計算機視覺,目的就是特征的計算和匹配——無論是人為設(shè)計的還是用公式算出來的特征,只要匹配上了,計算機就算認(rèn)出了這個東西。它的弊端雖然不言而喻,但為了解決它還是費了很多時間的。

“視覺的目的是大規(guī)模分類?“

后來是怎么解決這個問題的呢?我們就得回頭分析人的視覺系統(tǒng)了,在我們認(rèn)識世界的時候,沒有人給設(shè)計特征,完全是靠大量地長時間地看,不知不覺地就形成了視覺理解?!安恢挥X”這個事情很玄,沒法在工程上實現(xiàn),那么我們就退一步,給計算機看很多很多的圖片,并且告訴它里面有什么,通過這個方法來形成計算機視覺。最有名的就是ImageNet,這個圖片數(shù)據(jù)集,里面包含了很多人工標(biāo)注的概念,比如貓,狗。它和之前方法不同的是,從此我們不再需要人為地設(shè)計特征了,而是讓計算機自己從大量的圖片和標(biāo)簽配對中學(xué)習(xí)這么多概念和它們對應(yīng)的視覺特征。

用這個方法學(xué)習(xí)的計算機視覺很強,怎么看出來的呢?是在眾多的benchmark任務(wù)中體現(xiàn)出來的。我們稱這些模型為ImageNet預(yù)訓(xùn)練模型。計算機視覺,在這個任務(wù)中的目的也很明確,就是準(zhǔn)確分類,讓計算機的識別和人類標(biāo)注越接近越好。是不是順著這個思路,我們可以訓(xùn)練出一個至少像動物一樣可靠的視覺系統(tǒng)呢?如果答案是的話,問題就簡單多了,擴充ImageNet數(shù)據(jù)集,增加類別數(shù),增加圖片量,增強模型設(shè)計。雖然有人說這樣很費時間也很費錢,但是如果這個思路真的可行,能用錢解決的問題都不是大問題??墒俏覀兿胍幌?,人類或者動物的視覺是這么形成的嗎?或者說

分類是視覺的目的嗎?

再回到我們小時候,我們的視覺系統(tǒng)是否是這樣形成的?當(dāng)我們看東西的時候,有沒有一個人在邊上一直告訴我們:這是貓,那是狗,這個桌子,那是椅子。如果這個不夠直接,那不妨考慮一下動物,家里的寵物狗是否需要區(qū)分這些概念才能建立起它們的視覺系統(tǒng)?在大量的例子中我們可以發(fā)現(xiàn),概念的分類可能是一個有效的途徑,但并不是建立視覺系統(tǒng)的必要條件。進一步講,基于人類語言的標(biāo)簽不是視覺系統(tǒng)的必要條件,換句話說,不需要“分類”,只需要“分辨”,也就是說,是貓是狗是桌子是椅子沒所謂的,重要的是把這些概念區(qū)分開即可。

這里展開來闡述一下“分類”和“分辨”的差異。它們貌似差不多,但在我們今天聊的“視覺的目的”上有本質(zhì)的區(qū)別。

首先,在分類問題中,所有類是完全獨立的,或者說在空間中是兩兩正交的。但是實際情況下卻并非如此,比如類別貓和老虎,貓和椅子,在分類問題的設(shè)定下,它們類之間的差異是一樣的,但很顯然,貓和老虎的類間差異比貓和椅子低很多。這就出來兩個問題:我們?nèi)绾稳?biāo)注這樣一個數(shù)據(jù)集,如何去訓(xùn)練一個模型才能夠讓它知道類之間的不同?

第二點,人工標(biāo)注的數(shù)據(jù)集中類之間是很平衡的,貓和狗的數(shù)量一樣多,但是現(xiàn)實情況下,類別是長尾分布的,也就是大多數(shù)類的圖片是很稀有的,這里的問題是如何解決大多數(shù)類的長尾標(biāo)注問題?

最后一點,也是最關(guān)鍵的一點是,類別這個事情,本身就是不勝枚舉的。世界上有多少正交的類,類中還有子類,子類還有子子類,子子孫孫無窮盡也。同樣是狗,狗中還有特別多的子類,如何去定義類和子類,以及如何去定義“有用的”類。比如,ImageNet里面大多是動物,那么植物呢,其他的物件,或者說背景信息,比如天空,大海,星辰呢?

目前來說,訓(xùn)練完一個計算機模型,它能做的分類只能是數(shù)據(jù)集里面有的類而已,如果測試集中出來新的類,它是完全不知道的。那么如果說分類真的是視覺的目的,為了去真正地實現(xiàn)像人和動物這樣的視覺系統(tǒng),其中最大的難點就是去定義和標(biāo)注這些類。不知道你是否認(rèn)同,定義類本身這個工作,和定義特征的工作沒有本質(zhì)的區(qū)別。它們的目標(biāo)都是讓模型能更好的理解圖片,但是定義類和定義特征這兩個工作都是無窮盡的,并且有很多人為主觀的干預(yù),比如什么樣的特征能刻畫一個概念,什么樣的類能幫助建立可靠的視覺系統(tǒng)。但是,話說回來,你是否認(rèn)同分類是視覺的目的這個假設(shè)?

也許不見得吧,再回想我們小時候,監(jiān)督學(xué)習(xí),或者類別學(xué)習(xí)占的畢竟少數(shù),特別是對動物而言,它們很少很少會出現(xiàn)監(jiān)督學(xué)習(xí)這個情況。大多數(shù)情況下,視覺系統(tǒng)的建立是無監(jiān)督的,靠我們自己和環(huán)境之間的互動,來理解圖片和視頻。這個簡單的想法就促成了無監(jiān)督或者自監(jiān)督的視覺學(xué)習(xí)方法。其實這方面的研究開始的挺早的,為什么一直都沒有像現(xiàn)在這么火呢?關(guān)鍵還是當(dāng)時的實驗結(jié)果沒有像全監(jiān)督的分類學(xué)習(xí)那么好,雖然它蠻符合我們對視覺的期望,實驗結(jié)果還是硬道理。不過就這幾年,自監(jiān)督學(xué)習(xí)發(fā)展地特別快,某些方法已經(jīng)在實驗中被驗證比有監(jiān)督的分類學(xué)習(xí)要好。這又是我們在了解視覺系統(tǒng)中邁出的很大的一步。那么我們就來聊一聊自監(jiān)督學(xué)習(xí)是如何回答“視覺的目的是什么”這個問題的。

我們所有的系統(tǒng),視覺,聽覺,觸覺,嗅覺都是自我迭代學(xué)習(xí)的,很多時候它們在學(xué)習(xí)而我們是不自知的。有人會問自監(jiān)督學(xué)習(xí)是不是就是給一堆數(shù)據(jù),讓計算機自己實現(xiàn)智能?不是的,一個很簡單的例子,我給一條狗看MNIST數(shù)據(jù)集,不停地看,不停地看,很多很多的數(shù)字,它會建立起對數(shù)字的認(rèn)知嗎?我再換一個方法,還是讓它不停地看,但是每次看到數(shù)字9的時候,給吃的。第二個方法狗的視覺系統(tǒng)會產(chǎn)生學(xué)習(xí),但是第一個不會。也就是說,視覺系統(tǒng),或其他系統(tǒng)的學(xué)習(xí)是天生惰性的,雖然說我們的視覺系統(tǒng)感覺上是自發(fā)學(xué)習(xí)的,如果沒有明確的動機,它是不會在腦回路中真的產(chǎn)生變化的,那也就回到了我們一直在討論的問題,視覺的目的是什么?如果我們了解了它的動機,那么實現(xiàn)通用的計算機視覺算法就沒有那么困難了?,F(xiàn)在那么多的自監(jiān)督學(xué)習(xí)方法,其實本質(zhì)上都在探索這個問題的答案。

我們可以先猜一猜,視覺的目的是什么?科學(xué)研究就是先提出假設(shè),然后驗證這個假設(shè)。那好,生物最基本的動機就是活著,為了活著,視覺必須學(xué)會一個很重要的功能,那就是

預(yù)判

試想一直老虎向你跑過來了,你不會等它到了才跑吧,視覺系統(tǒng)需要做準(zhǔn)確的預(yù)判并且馬上采取行動。對于那些不能做預(yù)判的,可能就被自然淘汰了。另一個不那么極端的例子,你看到蘋果從樹上掉下來,應(yīng)該會躲吧,這也是一種預(yù)判。往大里說是你的視覺系統(tǒng)學(xué)習(xí)到了牛頓定理,其實就是它學(xué)習(xí)到了重力的表現(xiàn)形式。很多很多生活上的例子表明,視覺系統(tǒng)需要學(xué)習(xí)預(yù)判的能力。那么預(yù)判在自監(jiān)督學(xué)習(xí)上體現(xiàn)在哪兒呢?其實有很多,最基本的就是auto-encoder,還有去噪聲的auto-encoder,in-painting,out-painting,在視頻處理中應(yīng)用的更多,根據(jù)當(dāng)前幀來預(yù)測下一幀的圖片。這些方法在實驗中被證明是非常有效的,并且不需要人工的標(biāo)注,因為圖片和視頻本身就是最好的標(biāo)注。

但是這一系列的預(yù)判方法在某些時候可能會不太好用。比如,我隨機遮住一只貓腦袋的一部分,讓計算機去腦補,如果它知道這只貓,就會補全它的腦袋,這沒有問題。但是,如果我遮住那只貓的尾巴,計算機去腦補的時候就會出問題,因為就算我知道這只貓需要補一條尾巴,但是我不知道那尾巴原來是朝哪兒的。再看原圖,它只是提供了某一種可能性,但并不唯一的可能性。發(fā)現(xiàn)問題了嗎?這一系統(tǒng)方法被人詬病的最重要的一個點就是,預(yù)判是一個概率的問題,不能用原圖的每一個像素來做嚴(yán)格訓(xùn)練,特別是需要預(yù)判的內(nèi)容特別多的時候,會出現(xiàn)問題。Yann Lecun有一個非常經(jīng)典的例子,視頻中一只鉛筆筆尖朝下豎直放著,預(yù)測下一時間,我們都知道鉛筆會因為重力倒下,但是具體往哪個放下倒是一個隨機的問題,并不能用原數(shù)據(jù)來監(jiān)督學(xué)習(xí)。最近有論文就對這個問題做了詳細(xì)的詮釋和提出了解決方案,大家有機會可以去看一看:

https://openai.com/blog/image-gpt/

好,我們再想想還有什么是視覺系統(tǒng)需要自發(fā)學(xué)習(xí)的。剛剛說了一只老虎朝你跑過來,你需要預(yù)判并且躲避,那么如果一只小貓跑過來呢?注意這里需要學(xué)習(xí)的是

分辨(而不是分類)

最簡單的動機,還是為了生存,我們需要區(qū)分能吃的和不能吃的,往大里說,我們需要區(qū)分不同物體的差異,并不是分出來貓和狗的類別差異就可以了,更需要分出來不同的貓之間的差異,大小胖瘦,毛色等等,從這個角度講,每一只貓個體都是不一樣的,并且,即便是一只貓,在早中晚也是不一樣的。這就和剛剛說的以分類為核心,類與類之間正交的學(xué)習(xí)方法完全不同了,廣義上說,我們需要承認(rèn)世界上沒有兩片一樣的雪花,即便給的標(biāo)簽是一摸一樣的,(0,1,0,0),計算機也需要看出物與物之間的不同。這個思路引出了最近火的不行的對比學(xué)習(xí)。和預(yù)判不同的是,這一系列的方法不需要“腦補”,而是能在對比中發(fā)現(xiàn)不同即可。很有代表性的工作包括聚類,旋轉(zhuǎn),和最近的SimCLR,MoCo等。特別一提的是,就是這種方法最近被發(fā)現(xiàn)比ImageNet上的分類學(xué)習(xí)更有效。SimCLR和MoCo假設(shè)是世界上沒有兩片一樣的雪花,我們在這個基礎(chǔ)上又加了一個假設(shè),也就是我們承認(rèn)沒有兩片一樣的雪花,但是雪花和雪花之間的差異還是會比雪花和樹葉之間的差異更大。

這個很重要,對比學(xué)習(xí),除了對比出不同點,也應(yīng)該同時發(fā)現(xiàn)相似處。這就是我們?nèi)ツ暝贛ICCAI Workshop中發(fā)表的一篇工作。大家有興趣的也可以看一看。

Parts2Whole: Self-supervised Contrastive Learning via Reconstructionlink.springer.com

https://link.springer.com/chapter/10.1007/978-3-030-60548-3_9

這也引出了一個更深層的討論,不同概念的內(nèi)涵(connotation)和外延(denotation):內(nèi)涵是一個概念中事物的共有屬性,外延是一切屬于這個概念的具體事物。分類問題事先給定了一個概念的外延的一部分,比如在所有ImageNet數(shù)據(jù)集中,“貓”這個概念的外延就是它對應(yīng)的那幾張圖片,模型根據(jù)這個外延,來學(xué)習(xí)“貓”這個概念中圖片的共有屬性(內(nèi)涵)。分辨則不同,它是不斷地放縮一個概念的外延,來辨別兩幅圖片的相似點和差異性,即便是兩幅“貓”,當(dāng)外延只縮到每一幅圖本身了,模型在承認(rèn)這兩幅圖都有貓的同時,還需要辨別出兩只貓細(xì)微的差異的,比如顏色,動作,長相,年齡。對比學(xué)習(xí)在縮放不同概念的內(nèi)涵和外延之間,學(xué)習(xí)到更立體,更豐滿的視覺特征。

前沿成果的比較

談到這里,我們離學(xué)術(shù)前沿是越來越近了?;仡櫼幌挛覀兊降紫胍粋€什么東西?我們需要一個通用的,可靠的,可延展的視覺模型,這個模型不是去做博士干的事情,比如分割一個細(xì)胞,區(qū)分一個腫瘤是惡性還是良性的,從圖片中找病灶等等,這些工作都是后話,有足夠標(biāo)簽就能做好,我們需要的是一個五歲小朋友的視覺系統(tǒng),一種雖然看上去傻乎乎的什么都不會,但是很穩(wěn)定,很全面的一個模型。很多人在詬病深度學(xué)習(xí)說需要很多的標(biāo)簽,而人只需要學(xué)習(xí)一兩個樣本中就掌握一項任務(wù)。這個認(rèn)識是有偏見的,人確實可以通過學(xué)習(xí)一兩個樣本就能大概分清什么是肋骨,什么是心臟,但是這個人想必不是剛出生的嬰兒,嬰兒視覺系統(tǒng)是沒有辦法短時間內(nèi)完成這個one-shot或者few-shot的任務(wù)的。而這個五歲左右的視覺系統(tǒng),就是我們追求的視覺模型。這個模型,是有機會讓無數(shù)的下游任務(wù)實現(xiàn)少樣本學(xué)習(xí)。這相當(dāng)于是一件“磨刀不誤砍柴工”的工作。在眾多的下游任務(wù)中,我們只需要極少的模型參數(shù)量的調(diào)整,極少的人工標(biāo)注,就可以達(dá)到一個不錯的水平。

我們離這個夢想是有距離的?,F(xiàn)在我們就來看看自監(jiān)督學(xué)習(xí)離真正回答“視覺的目的是什么”還差多少?,F(xiàn)在每天都有那么多自監(jiān)督學(xué)習(xí)的方案發(fā)表,可以說是公說公有理,婆說婆有理,大家都從不同的角度去思考如何訓(xùn)練一個通用的視覺模型,所以給模型設(shè)定的目標(biāo)也是非常不一樣的。有說腦補可以的,有預(yù)測旋轉(zhuǎn)角度的,有做拼圖游戲的,有比較學(xué)習(xí)的。一時間出現(xiàn)這么多套訓(xùn)練方案百家爭鳴,正常嗎?非常正常。想想我們在建立視覺基礎(chǔ)的時候也不就是自己摸索出自己的一套方法嗎?打個比方,如果說一個厲害的視覺預(yù)訓(xùn)練模型是高考狀元,高考每年有那么多的狀元,他們成功背后的方法也是不一樣的嘛。每一個方法都可以發(fā)表一篇論文,每個家長都說自己的一套方法是訓(xùn)練狀元的有效途徑。但是,真的要去評價孰好孰壞是不容易的,確實可能某些自監(jiān)督方法在特定的情況下會很強,它的通用性是需要在很多具體任務(wù)來評判。最新的一篇論文

How Well Do Self-Supervised Models Transfer?

https://arxiv.org/pdf/2011.13377.pdf

就有對大部分自監(jiān)督學(xué)習(xí)方法做一個比較,得到的結(jié)果參差不齊,有時候這個方法好,有時候那個方法好。這方面的研究論文一般來說有兩種,一種是提出新的自監(jiān)督學(xué)習(xí)方法,說新提出的方法比其他的方法好。隨著越來越多的方案的提出,另一種文章是對這么多方法的一個綜述和比較。除了這兩種論文,現(xiàn)在又有一種論文的題目特別有趣兒,形如:

Do Better ... Transfer Better?

這里的省略號代表不同的預(yù)訓(xùn)練方法。你可能會覺得很奇怪,人家論文都說了,比如預(yù)測旋轉(zhuǎn)角度可以讓模型更好地遷移學(xué)習(xí),為什么還有問這個問題呢?其實這兩個論述不太一樣,一個是實然層面的,我做了實驗,結(jié)果表明預(yù)測旋轉(zhuǎn)角度可以提高遷移學(xué)習(xí)的效果,另一個是應(yīng)然層面的,意思是說預(yù)測旋轉(zhuǎn)角度是不是視覺的目的,也就說如果我提升了預(yù)測旋轉(zhuǎn)的能力,是否保證這個預(yù)訓(xùn)練模型一定會更好?這是一個很有意思的問題,我們可以從實驗中總結(jié)出來一個自監(jiān)督學(xué)習(xí)的方法,比如預(yù)測旋轉(zhuǎn)角,是不是直接地學(xué)習(xí)了視覺特征,還是在預(yù)測角度的同時間接地學(xué)到了視覺特征。還是高考狀元為例,我寫一篇論文說根據(jù)我的統(tǒng)計結(jié)果,發(fā)現(xiàn)高考狀元的家境普遍比較貧寒。我再寫一篇論文,問是不是家境越貧寒,高考成績越好呢?這就是這一類論文的價值所在,它簡直就是靈魂拷問,它從本質(zhì)上去測試一個自監(jiān)督學(xué)習(xí)方法是不是學(xué)習(xí)到了視覺的目的。大家能明白我接下來要講什么嗎?如果這個類的論文“Do Better ... Transfer Better?”,但凡有一篇的回答是Yes,那真的是,學(xué)習(xí)通用視覺特征這個問題就大體解決了,或者變成了一個可解的問題了。為什么呢?打個比方,我發(fā)現(xiàn)腦補圖片的技能越強,模型的遷移學(xué)習(xí)能力越強。視覺的目的一下子被清晰的定義下來了,也就說訓(xùn)練模型的目標(biāo)函數(shù)被定義下來了。我們把一個模糊的,抽象的所謂“視覺的目的”,轉(zhuǎn)化成了一個具體的,可量化的函數(shù),接下來的任務(wù)就是刷高分?jǐn)?shù),像ImageNet競賽一樣,有一個清晰的評價指標(biāo),然后每年把分?jǐn)?shù)往上刷。

現(xiàn)在我們沒有辦法這么直接地解決問題,還在一個探索期,視覺的目的是什么?剛剛總結(jié)了兩大塊主流任務(wù),預(yù)判與分辨。計算機科學(xué)為什么是一門科學(xué),是因為在解決工程問題的時候,我們需要做底層的分析和研究,也需要多學(xué)科的交流,比如視覺和腦科學(xué)的研究會對解決這個預(yù)訓(xùn)練的問題很有幫助。那我們來看看這一路走來學(xué)到了什么。從一開始的定義特征,到后來自動學(xué)習(xí)特征(但是需要定義好類別和類別數(shù)),到現(xiàn)在完全不需要人工的類別標(biāo)簽,一個趨勢就是,當(dāng)學(xué)習(xí)通用的視覺模型時,人為定義的東西越少越好,讓計算機自主學(xué)習(xí)的東西越多越好。沿著這個思路下去,和我們的視覺系統(tǒng)相比,這些自監(jiān)督學(xué)習(xí)的方法,至少到目前為止,我認(rèn)為還有幾個方面需要解決:

首先,視角是人為設(shè)計的。

其次,模型是人為設(shè)計的。

最后,任務(wù)是人為設(shè)計的。

這三個方向的研究都非常有意思,今天我沒辦法一一細(xì)說,我會在后續(xù)的博客中討論。這邊我展開來討論一下最后一條,任務(wù)是人為設(shè)計的。首先我覺得在現(xiàn)在的階段,人為設(shè)計預(yù)訓(xùn)練的任務(wù)是可以被接受的,畢竟我們?nèi)祟惿险n學(xué)習(xí)的時候也有一個培養(yǎng)計劃,讓計算機自己給自己設(shè)計一套學(xué)習(xí)方案,我現(xiàn)在還不敢想。那就看看如何去設(shè)計任務(wù),讓計算機可以學(xué)到通用的視覺特征?回溯到自監(jiān)督學(xué)習(xí)一開始的時候,它是先在自然語言處理領(lǐng)域得到突破,為什么自然語言可以做自監(jiān)督呢?原因是(1)語言可以切成詞匯,(2)詞匯的排列是有意義的。計算機從網(wǎng)上的那么多語料中學(xué)習(xí),一個很重要的點是你不能把語料中的詞匯打亂,打亂了就沒有語義了。比如

視 · 覺 · 的 · 目 · 的 · 是 · 什 · 么

一共八個字組成,是一段有意義的話,但是,這八個字有很多中排列組合的形式,絕大多數(shù)的排列是沒有語義特征的,而計算機就只在這種有意義的排列中學(xué)習(xí)特征,所以是有效的。反觀自然圖片,貓的圖片可謂說是千奇百怪什么都有,像自然語言那樣的理想情況是什么?最好所有的貓都端端正正地給我坐好,一個姿勢,一種表情,然后計算機去學(xué)習(xí)它的紋理,形狀,或其他的抽象特征。在這種嚴(yán)格的規(guī)定下,我清楚地知道什么在上,什么在下,什么在左,什么在右,就像自然語言一樣人為地創(chuàng)造了一種特定的語法。計算機就可以比較直接地學(xué)習(xí)到圖片的上下文語義特征。請問這一段對理想圖片的描述讓你想到了什么?

醫(yī)學(xué)影像

首先在拍影像的時候,醫(yī)生是不會讓你有天馬行空的姿勢的,基本上兩種姿勢,要不站著,要不躺著。其次,如果姿勢是固定的,人體的組織器官的分布也是有序的,五臟六腑都有固定的位置。所以最后拍出來的圖片都看起來差不多,就像一個句子,你反復(fù)地用不同的詞匯說,但是表達(dá)的內(nèi)容相似。

視覺的目的是什么?視覺的動機是什么?視覺的目標(biāo)是什么?

醫(yī)學(xué)影像這個獨特的優(yōu)勢和自然語言非常的類似。所以我有理由相信在醫(yī)學(xué)影像處理中的自監(jiān)督學(xué)習(xí)也可以得到像BERT一樣很猛的預(yù)訓(xùn)練模型,而不依賴于人工標(biāo)簽。那如何去利用這個天然的優(yōu)勢呢?我們還需要參考自然語言處理,它們是先定義了詞的概念,然后根據(jù)大量的語料學(xué)習(xí)每個詞的特征,或者每個詞在句子中的特征。相似地,我們也可以給醫(yī)學(xué)影像定義視覺詞匯,因為剛才說了,這些視覺詞匯在醫(yī)學(xué)影像中是有序的,并且傳達(dá)出人體組織結(jié)構(gòu)的語義信息,那么一個簡單的思路就是去學(xué)這些視覺詞匯的特征。在計算機視覺早期的時候就有Bag of Visual Word的概念,我們最近的一篇TMI就是讓這些視覺詞匯通過深度網(wǎng)絡(luò)的學(xué)習(xí),使之具備遷移學(xué)習(xí)的能力。大家有機會可以去看看,應(yīng)該馬上就能見刊了,下面這篇是它的會議版本:

Learning Semantics-enriched Representation via Self-discovery, Self-classification, and Self-restoration

https://arxiv.org/abs/2007.06959

我們來看看這個方法背后想要傳達(dá)的信息和整體框架的基本假設(shè)。梳理一下剛剛的邏輯:

自然語言處理的預(yù)訓(xùn)練特別猛,而且不依靠人工標(biāo)注,因為語料中自帶了上下文語義特征

醫(yī)學(xué)影像也具備相似的屬性,因為拍照是的姿勢固定的,人體內(nèi)部的組織結(jié)構(gòu)是有序的

因此,我們只需要定義醫(yī)學(xué)影像中的視覺詞匯,并學(xué)習(xí)它的上下文語義特征即可

可能這個時候有小伙伴會質(zhì)疑,你說的這個特征確實在醫(yī)學(xué)影像中表現(xiàn)地非常明顯,但自然圖像難道不具備這個特征嗎?沒錯,自然圖片也可以有這個特征,比如說人臉識別,只要能把人臉從圖片中框出來,并加上一定的旋轉(zhuǎn),也可以得到一個具有固定上下文語義特征的數(shù)據(jù)集, 也就是一個近似對齊的數(shù)據(jù)集,計算機同樣可以通過自監(jiān)督的視覺詞匯學(xué)習(xí),從圖像中學(xué)到特征。只是構(gòu)建這種數(shù)據(jù)集需要一定的工作,不像醫(yī)學(xué)影像(比如ChestXray)那樣是自帶的屬性。

再往上想一層,其實自然圖片是包含了弱弱的上下文語義的。剛剛說的語義特征是來自于有序的詞匯排列,如果打亂了,語義就沒了。從這個邏輯出發(fā),嚴(yán)格意義上講,所有能被理解的自然圖片都是有一定意義的,真的打亂圖片中的像素才能說它是一堆亂碼。一張圖中這么多像素,它們能根據(jù)一定的規(guī)則拼成有意義的圖片,本身就是一種語義信息。

只是沒有像醫(yī)學(xué)影像那么直接,看起來那么有規(guī)則??偨Y(jié)來講,醫(yī)學(xué)影像本身具有很好的屬性,讓我們可以有針對性地設(shè)計自監(jiān)督學(xué)習(xí)的策略,原因是它比自然圖片更有規(guī)則,總結(jié)來說,人體組織結(jié)構(gòu)的一致性是自監(jiān)督學(xué)習(xí)在醫(yī)學(xué)影像處理中一個很獨特也是很直接的學(xué)習(xí)目的。除了這個特性,醫(yī)學(xué)影像和自然圖片相比,還有很多寶藏可以挖,比如影像的像素值有物理意義,大多數(shù)影像是三維的等等,這些特性都是設(shè)計預(yù)訓(xùn)練算法的非常寶貴的參考,我今天就不細(xì)說了,因為很多想法都還沒有發(fā)表,等以后和大家分享。

最后,上一個價值:計算機視覺在學(xué)習(xí)通用特征時,需要大量參考人類或者動物的視覺系統(tǒng),也就是一種跨學(xué)科的概念。當(dāng)然也不是說必須我們要用電腦模擬一個一摸一樣的視覺系統(tǒng),很多工具在借鑒生物學(xué)的同時也會根據(jù)工程的實際需要進行調(diào)整。比如飛機借鑒了鳥的翅膀,但是最后的成品是在這個鳥的基礎(chǔ)上優(yōu)化了很多,甚至改進地面目全非。這是在了解了鳥類飛行的機理的前提下,我們才有可能進行仿真和優(yōu)化。其實這方面是有爭論的,我們會因為腦科學(xué)的研究對大腦有一個完整的認(rèn)識,還是會先在計算機科學(xué)上有一個突破,從而反推回大腦的機理,建立起更深的認(rèn)識,這個我不清楚。但是今天討論“視覺的目的”是想給計算機找出一個可量化的目標(biāo)函數(shù),這個目標(biāo)函數(shù)可以和通用視覺特征有一個很緊密的關(guān)聯(lián),而做到Better ... Better Transfer。這個目的從一開始計算和匹配人為設(shè)計的特征,到后來匹配人為定義的類別的監(jiān)督學(xué)習(xí),再到現(xiàn)在的預(yù)判,分辨為核心的自監(jiān)督學(xué)習(xí)。除了從視覺本身出發(fā)去設(shè)計不同的預(yù)訓(xùn)練任務(wù),探索視覺的目的,我們也可以通過對圖片本身性質(zhì)的理解出發(fā)來設(shè)計任務(wù),也就是所謂先驗的特征,特別是醫(yī)學(xué)影像中那么多的模態(tài),各有千秋,各有各的語義特征。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器視覺
    +關(guān)注

    關(guān)注

    161

    文章

    4305

    瀏覽量

    119896
  • 醫(yī)學(xué)影像
    +關(guān)注

    關(guān)注

    1

    文章

    108

    瀏覽量

    17339
  • 人臉識別
    +關(guān)注

    關(guān)注

    76

    文章

    4000

    瀏覽量

    81590
  • 視覺系統(tǒng)
    +關(guān)注

    關(guān)注

    3

    文章

    329

    瀏覽量

    30658
  • 計算機視覺
    +關(guān)注

    關(guān)注

    8

    文章

    1690

    瀏覽量

    45876

原文標(biāo)題:視覺的目的到底是什么?

文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    動力電池的原理和類型,實現(xiàn)BMS的主要目的

    本文對動力電池中使用的不同化學(xué)物質(zhì)以及實現(xiàn)BMS的主要目的提出了全球概述。
    的頭像 發(fā)表于 07-12 16:02 ?1289次閱讀
    動力電池的原理和類型,實現(xiàn)BMS的<b class='flag-5'>主要目的</b>

    均流線路的主要目的是什么?

    什么是均流線路?主要目的是什么?
    發(fā)表于 03-16 07:21

    TIDA-00600的主要目的是什么?TIDA-00600有哪些特性?

    TIDA-00600的主要目的是什么?TIDA-00600有哪些特性?
    發(fā)表于 06-28 08:55

    微型計算機原理及應(yīng)用

    前言微機原理主要內(nèi)容包括微型計算機體系結(jié)構(gòu)、8088微處理器和指令系統(tǒng)、匯編語言設(shè)計以及微型計算機各個組成部分介紹等內(nèi)容。微機原理接口技術(shù)是一門實踐性強的學(xué)科,不但要求較高的理論水平,而且還要求有實際的動手能力。這次項目設(shè)計的
    發(fā)表于 09-10 07:38

    嵌入式系統(tǒng)設(shè)計的主要目標(biāo)是什么?

    嵌入式系統(tǒng)設(shè)計的主要目標(biāo):低功耗、實時要求高、低成本嵌入式系統(tǒng)的準(zhǔn)確定義:嵌入式系統(tǒng)是以應(yīng)用為中心。以計算機技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求
    發(fā)表于 10-27 09:05

    嵌入式系統(tǒng)應(yīng)用開發(fā)工具的主要目的是什么

    。嵌入式系統(tǒng)應(yīng)用開發(fā)工具的主要目的:提高開發(fā)質(zhì)量,縮短開發(fā)周期,降低開發(fā)成本。按照軟硬件技術(shù)的復(fù)雜程度進行分類,可以把嵌入式系統(tǒng)分為:高端系統(tǒng)、終端系統(tǒng)和低端系統(tǒng)三大類。仿真平臺指嵌入...
    發(fā)表于 11-09 08:44

    Linux內(nèi)核的最主要目的是什么

    Flash等外設(shè)讀內(nèi)核,存到內(nèi)存里去。所以需要有Flash里外設(shè)的驅(qū)動能力,為了調(diào)試方便還會有網(wǎng)絡(luò)功能。所以,可以認(rèn)為 booloader = 裸機集合,它就是一個復(fù)雜的單片機程序。③ Linux內(nèi)核Linux內(nèi)核的最主要目的是去啟動APP,APP保存在哪里?保存在“根文件系統(tǒng)”里?!案募到y(tǒng)”又保存..
    發(fā)表于 12-17 07:09

    STM32中的FreeRTOS的主要目的是什么

    可以,原理相同)本教程默認(rèn)讀者已有一定的STM32編程基礎(chǔ),并且已經(jīng)熟悉CubeMX的使用,部分操作細(xì)節(jié)僅做文字提示或略過。RTOS(Real Time Operating System,實時操作系統(tǒng)),顧名思義,能夠像操作系統(tǒng)(例如Windows)一樣處理任務(wù)。操作系統(tǒng)的主要目的是“同時”處理多
    發(fā)表于 01-06 07:05

    計算機視覺的發(fā)展歷史_計算機視覺的應(yīng)用方向

    計算機視覺40多年的發(fā)展中,盡管人們提出了大量的理論和方法,但總體上說,計算機視覺經(jīng)歷了4個主要歷程。即: 馬爾
    的頭像 發(fā)表于 07-30 17:21 ?6968次閱讀

    計算機視覺的工作流程

    交通信號、標(biāo)志和行人;在制造業(yè)輔助工業(yè)機器人監(jiān)督和指導(dǎo)人工操作。 ? 計算機視覺主要目的是讓計算機能像人類一樣甚至比人類更好地看見和識別世界。計算
    的頭像 發(fā)表于 12-26 11:00 ?6243次閱讀

    計算機視覺的工作流程與主要應(yīng)用

    計算機視覺主要目的是讓計算機能像人類一樣甚至比人類更好地看見和識別世界。計算機視覺通常使用C+
    的頭像 發(fā)表于 01-08 14:06 ?5312次閱讀

    計算機網(wǎng)絡(luò)功能

    計算機網(wǎng)絡(luò)的功能主要目的是實現(xiàn)計算機之間的資源共享、網(wǎng)絡(luò)通信和對計算機的集中管理。計算機網(wǎng)絡(luò)是指將多臺
    發(fā)表于 05-10 16:21 ?1308次閱讀

    進行雙脈沖測試的主要目的

    進行雙脈沖測試的主要目的是獲得功率半導(dǎo)體的開關(guān)特性,可以說它伴隨著功率器件從研發(fā)制造到應(yīng)用的整個生命周期。
    的頭像 發(fā)表于 07-12 16:09 ?4139次閱讀
    進行雙脈沖測試的<b class='flag-5'>主要目的</b>

    接口測試的主要目的是什么

    接口測試的主要目的是什么? 在軟件開發(fā)過程中,接口測試是一種重要的測試方法,用于驗證不同模塊、系統(tǒng)或服務(wù)之間的交互是否符合預(yù)期。本文將詳細(xì)探討接口測試的主要目的,以及為什么它對于確保軟件質(zhì)量和系統(tǒng)
    的頭像 發(fā)表于 05-30 15:02 ?876次閱讀

    計算機視覺主要研究方向

    計算機視覺(Computer Vision, CV)作為人工智能領(lǐng)域的一個重要分支,致力于使計算機能夠像人眼一樣理解和解釋圖像和視頻中的信息。隨著深度學(xué)習(xí)、大數(shù)據(jù)等技術(shù)的快速發(fā)展,計算機
    的頭像 發(fā)表于 06-06 17:17 ?661次閱讀