--- tags: Knock Knock! Deep Learning --- Day 17 / DL x CV / 從 ImageNet 發起的 Data 大戰 === 這篇開始是 Computer Vision 電腦視覺系列。CV 可以說是 deep learning 中最火熱的領域,申請國外研究所年年擠破頭。DL x CV 的發展是從何開始?處理圖像又有什麼難題?這要從 ImageNet 說起。 ## ImageNet 2006 年,當時 CV 的世界還是圍繞在演算法的改進。有上過傳統 CV 課的應該知道,那時候的技術注重在開發演算法做特徵提取以利進行下游的應用,例如找出臉部的輪廓做人臉辨識等等。 而也是在這年, Fei-Fei Li 籌組了一個研究小組,仿效知名的文字關係 dataset [WordNet](https://en.wikipedia.org/wiki/WordNet),開始進行大規模的 image labeling 計畫,收集大量的圖像並用 crowdsourcing 的方式標記圖像。這個 image database 在 2009 年發表,稱為 [ImageNet](http://www.image-net.org/)。 ![ImageNet](https://i.imgur.com/7LFxtJG.jpg) *—— ImageNet。[1]* ImageNet 包含了超過 1400 萬張圖片,分類多達 2 萬種,也是當時史無前例的超大圖像資料庫。提出後每年舉辦圖像分類比賽 [ILSVRC](http://image-net.org/challenges/LSVRC/#:~:text=The%20ImageNet%20Large%20Scale%20Visual,image%20classification%20at%20large%20scale.&text=Another%20motivation%20is%20to%20measure,indexing%20for%20retrieval%20and%20annotation.),在 2015 年正確率甚至超越了人類。也是從 ImageNet 開始,data 在 CV 受到更多的重視,重要程度有時甚至超越了演算法和 model 本身。 而有了大量的 data,再搭配已經漸漸成熟的電腦硬體帶來的效能提升,讓原本不受重視的 neural network 又重新受到了學術界的注目。大家發現 neural network 訓練在海量 data 上,能在短時間之內突破好幾年以來許多圖像任務的最佳成績,便紛紛投入 deep learning 的懷抱。 又深訓練又久的 network 成為標配:2012 年的 ILSVRC 由 Krizhevsky 等人提出的 AlexNet 運用 GPU 訓練出一個非常深的 CNN,表現甚至贏過第二名超過 15%;2015 年微軟研究團隊提出的 ResNet 加入了 residual 的概念,相當於在 network 中加了捷徑讓 gradient 反饋更有效,才得以訓練在更深的 model 上,最後成果也突破了人類的正確率。在短短幾年內,CV 領域因為 deep learning 有了許多重大突破。 ![AlexNet and ResNet](https://i.imgur.com/ByKkHP9.png) *—— AlexNet and ResNet。[3]* 雖然整個任務聽起來只是收集並 label data 並不特別厲害,但他的突破在於展示收集大量 data 搭配 deep learning 能帶來的驚人成效,以及讓學術界能快速訓練在其之上,專心於開發更好的 model。ImageNet 對 CV 領域的貢獻也讓他在十年後 2019 年獲頒 Longuet-Higgins Prize。 ## The Data-Driven Approach Image classification 算是 CV 最基礎的 task。但 image 有很多變化,讓這個看似簡單的 task 多了很多難點: 1. 他可以很多不同角度 2. 有很多光線變化 3. 你看不出他的 scale 4. 物體可以歪七扭八 5. 物體還可以跟背景融為一體 6. 重要物體也會被不重要的物體遮住 7. 同一種東西還有很多不同樣貌 ![image variations](https://i.imgur.com/Imd4W6H.jpg) *—— Image 的變化。[4]* 這也是為什麼根據物體特性開發演算法很不實際,因為你的 model 要掌握這麼多的變化。 Data-driven approach 旨在讓 model 從海量 data 中自己摸索出這些變化,學會一張圖片中的重點在哪裡、物體不同 level 的特徵、形體接近但不同種類的主要差別等等。這也是為什麼 data 在 CV 的世界裡顯得更重要! ## CV 與 NLP 各自的難題 最後提出一些自己對 CV 和 NLP 兩個領域的看法。 CV 應用非常廣,舉凡機器人、自駕車、圖像影片分析、醫療影像分析、圖片生成等等,都是對人類社會很有幫助的領域。他的難點在於資料運算處理和資料多樣性,以及很多應用所要求的精準度。首先大量 2D 甚至 3D 圖片要進入 model 做運算,那肯定是比文字來的吃不消,如何最有效率的進行運算也是個難題。再來多樣性上面有提到,但是有時候再多的 data 可能還是訓練不出一個 model 可以在某些人類一眼能辨識的圖片上找出解答。最後是他許多應用都要求極高的精準度,包括自駕車需要精準判定是不是有人衝出來、醫療圖像判定的失誤也可能攸關生死等等。這也是為什麼 CV 這幾年來雖然發展迅速,卻依然充滿許多研究機會和發展空間。 NLP 的應用也很多,機器翻譯、文意分析、對話系統、聲音處理等等,都是很有趣的主題,但似乎都不及 CV 應用來得迫切需要。但個人認為 NLP 要達到人類程度的困難度,卻是 CV 領域的很多倍。具體來說,像是 evaluation metric 需要檢驗文字的流暢度、多樣性、正確性等等,很多都還是以人類給分比較有參考價值。再來文意理解方面,一個句子裡一字之差,文意可以直接相反;文字中包含情緒,或是諷刺這種表面是正實質是負的特性,也比圖像理解來得困難。 不過主要原因還是,語言是人類智慧的結晶吧。世界上很多動物都有視覺功能、都能理解圖像,但只有人類能發展出完整與多樣的語言系統。要追上這樣的人類智慧,是 NLP 領域目前還望塵莫及的目標! ## 參考資料 1. [Google & DeepMind Researchers Revamp ImageNet](https://syncedreview.com/2020/06/23/google-deepmind-researchers-revamp-imagenet/) 2. [CS231n Lecture Slides: History of Computer Vision](http://cs231n.stanford.edu/slides/2020/lecture_1_feifei.pdf) 3. [CS231n Lecture Slides: Image Classification](http://cs231n.stanford.edu/slides/2020/lecture_2.pdf) 4. [CS231n Lecture Notes: Image Classification](https://cs231n.github.io/classification/) ## 延伸閱讀 1. [ImageNet Classification with Deep Convolutional Neural Networks](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)