計算機視覺導覽:如何快速上手,是否該讀博?
20萬,這是新智元今天達到的用戶總數。在飛向智能宇宙的旅程中,感謝每一位和新智元同行的朋友。您的關注和支持是「新智元號」星艦永不枯竭的燃料。
計算機視覺、機器學習和神經網路成為了計算機科學領域最受矚目、研究最多的課題。我們很幸運地與Samyak Datta 進行了交流,他是「Learning OpenCV 3 Application Development」一書的作者。Samyak 今年秋天將進入喬治亞理工學校的計算機科學系攻讀博士學位。可以說,這個採訪在一定程度上勾勒了整個領域的鳥瞰圖。
請簡要介紹一下,什麼是計算機視覺?計算機視覺和深度學習的關係是什麼?
在一個非常抽象的層面上,計算機視覺(CV)是教機器如何以人類的方式去「看」(實際上,這是計算機視覺領域的終極目標)。它是機器學習(ML)中的一個專業化領域。我們教計算機分析圖像和視頻的內容,並對其進行有意義的推論。例如,在CV演算法的幫助下,可以教計算機識別圖像中的物體,將圖像分類(如「室內」,「風景」,「建築物」,「汽車」等),識別照片中的人臉等等。
正如我所說,計算機視覺(CV)是更廣泛領域 ML 的專業化領域。ML 中有幾類學習演算法,如貝葉斯學習,變分推理,統計學習理論(good-ol"SVM)等等。近年來(2012年後),一類特定演算法在人氣和普及度上都出現了復甦,那就是神經網路。深度學習是加強型的神經網路!這些網路變得「更深」(即它們有更多的隱藏層),參數的數量已經爆炸到數百萬,並且它們訓練的機器也變得更快(GPU)。有趣的是,如果你追溯這個領域的歷史,你會發現,所有的拼圖都是早在 2012 年以前就由Yann LeCun,Geoff Hinton 和 Yoshua Bengio 等研究者領導的團隊開發了的。自2012 年以來,由於有了更多可用的大型數據集,更快、更便宜的計算資源和其他一些因素,深度學習開始在研究領域中獲得了重視。
如何上手深度學習?
我認為先要學習一些機器學習的相關內容。我在學習機器學習最後一年的課程上,開始接觸到神經網路,幫助我熟悉了一些神經網路術語。
除此之外,斯坦福大學的CS231課程(Andrej Karpathy)是深度學習基礎的絕佳出發點。幾乎所有的課程內容——作業,視頻講座,筆記等都可以在線獲得。進行完這個課程後,我就直接進入了一個研究項目。後來,我大部分動手實踐的知識都來自這一項目。
如何使用深度學習的庫(library)?
大約一年半以前,有很多庫可供選擇(Caffe,MatConvNet,Torch7,Keras,Theano,Tensorflow),選擇一個並堅持用下來並不容易。幸運的是,現在選擇正在收斂,可以看到DL庫目前由兩個主要玩家--Tensorflow(谷歌)和PyTorch(Facebook)主宰。我主要是用Torch7工作,這是基於Lua的PyTorch 前身。我最近已經開始遷移到PyTorch 上。
有幾個關鍵流程是任何 DL 庫功能的基礎——前向傳遞和反向傳播(梯度流)。如果你了解了你選擇的庫中的這兩種情況,那事情就變得很簡單了。
我想,當你開始調整新庫時,有一些步驟是必須的。你首先要載入和使用預先訓練的網路,然後你可能會開始組裝小的玩具網路,用於「Hello World」問題,如分類MNIST。接下來你可能會用自己的數據集從頭開始訓練更大的網路。最後,您開始嘗試構建任意的網路架構和損失函數,並將一些最新最先進的論文付諸實施。
你做了大量和OpenCV 相關的工作,給我們講一講,初學者應該如何使用它?
OpenCV 是一個非常受歡迎的開源庫,用於圖像處理和計算機視覺應用。該庫已經在C++ 中實現,您可以藉助流行的編程語言,如C,C ++,Python 和Java 來使用OpenCV 的API 。它的速度非常快,內置的硬體級優化也很多。無論是工業項目還是學術項目,我都在使用OpenCV ——在生產伺服器上部署基於OpenCV的應用程序,以及為我的研究項目編寫OpenCV腳本。
我認為OpenCV是初學者的優秀資源,因為它為大多數流行的圖像處理、計算機視覺和機器學習程序提供了清晰、高效的實現。例如,臉部檢測(使用Viola-Jones演算法)是幾行代碼並實時運行。它有一個非常活躍的開發人員社區,並為初學者提供了一個精心編寫的文檔。你還可以看看我的書——Learning OpenCV 3 Application Development——它是為OpenCV / C ++ 初學者專門編寫的。
目前在學術領域和產業中,計算機視覺的發展現狀如何?市場上有什麼實際的產品?
好問題!2012年左右,有開創意義的AlexNet論文成功發布之後,計算機視覺迅速崛起,將視覺深度網路應用於視覺中的所有可能的問題空間——圖像分類,對象檢測,語義分割,人臉識別等等。所有頂級的計算機視覺會議/期刊都被深度學習論文淹沒,因為基準已被破壞,準確度大幅提高了。
最近幾年來,在DL+ Vision 的領域內,由於各種原因,關注點正在轉向無監督的學習方式。首先,訓練深度網路的有監督學習需要很多(人工)注釋的數據,難以獲得並難以擴展;第二,無監督的學習更接近於人們發展視覺學習/推理能力的方式(想想一個嬰兒是如何學習視覺概念,如對象持久性,並開發出一種他/她周圍世界的合理性模型);第三,它設計到了大數據集和弱標籤之間的最佳點——這是DL一個優秀的特性。因此,無監督學習被推崇為將在通用人工智慧(AGI)的發展中發揮關鍵作用。
注意:這並不是說社區完全放棄了有監督學習的做法。最近 arXiv 上有一篇文章,探索了大型數據集(3 億圖像)對視覺任務的影響。
另外,另一個發展趨勢是生成模型,它試圖逼近數據的概率分布。雖然判別學習技術等同於「智力」,但生成模型可以被認為與機器的「創造力」相當。所以,我們也看到了深度的網路架構,如GAN、轉化圖像的VAE 等等。
還有一些有趣的話題,比如對單個架構進行訓練來學習多個任務(一個模型解決所有問題)等等。
在計算機視覺領域,未來幾年的主要研究方向是什麼?
我恐怕沒有有這樣的遠見和預感,我正在學習。希望我對未來做出的預測不會完全錯誤。
話雖如此,我可以在作為研究員的非常短暫的時間內,通過會議上觀察和收集到的內容進行一些初步的推論。歷史上,如果你看到,CV 社區越來越關注視覺理解的問題。計算機視覺任務從分類開始(「有狗嗎?」),到定位(「狗在哪裡」)和語義分割(「哪些像素屬於狗?」),直到最近的研究(「什麼品種的狗?」)。CV 的發展直指涉及視覺推理的抽象/主觀形式。例如,預測圖像中的幽默內容或試圖通過理解圖像中人們的社會地位來確定圖片中的哪些人(在許多人中)是重要的。
我認為這樣的研究將在業界得到認可。我個人也比較關注更多非技術性的話題,例如AI 中的倫理學以及社會/文化因素和偏見如何滲透到我們構建的演算法和系統中。例如,最近有研究發現種族偏見在面部識別演算法中的影響。隨著人工智慧成為我們生活中更親密的一部分,我覺得這些問題亟需解決。
計算機視覺領域如今面臨的最大技術挑戰是什麼?
凡是接近通用人工智慧(AGI)的領域,都還有很長的路要走,這也是每個CV / ML / AI 研究員的終極夢想。
比如說,深度學習模型的可解釋性就是一個很大的挑戰。在這個領域中,已經有一些文章試圖闡釋我們訓練的網路,或圖像的哪個區域是網路在做出什麼樣的決定,等等。
在哲學層面上,值得注意的是,幾個世紀前,牛頓和愛因斯坦會將複雜的物理現象的解釋集中在一組緊湊優雅的方程式中。
不幸的是,即使我們今天訓練的最簡單的深度網路也做不到這點了。贏得Kaggle比賽的模型是實際效用非常有限的深度網路。其中一個主要的挑戰是要將這些模型融入到內存中,以便能夠在智能手機上運行。
在什麼情況下,我應該去申讀計算機視覺領域的碩士或者博士?
選擇讀碩士或博士是一個重要的決定。我認為,如果你有信心要將研究作為事業(在學術界或在企業實驗室中),那麼選擇去讀博士學位就是有道理的。
如果你想試探一下這個領域的深淺,或者你正在考慮換個專業,那麼碩士有可能是正確的選擇。但是,請記住,大多數碩士課程負擔很重,所以,您可以投入研究的時間和精力有限。
另外,在實驗室做RA大概一年後,你也可以通過申請技術學士學位來獲得有價值的研究經驗。隨著計算機科學研究生競爭的加劇,這正成為一個很常見的做法。
應該如何準備申讀博士的簡歷?
我唯一可以提供的建議是在您感興趣的領域把項目做好。如果您已經考慮進行研究,那麼行業實習的價值就遠遠低於學術研究項目。
我推薦保持良好的GitHub配置文件,並發布您所做項目的 code。一般來說,與您項目相關的代碼、報告或其他手稿,如果都可以在線訪問,會是一個很好的事情,原因有兩個:(1)它使您的研究可以訪問並因此可重複使用,(2)它迫使你不要做中等和不合標準的工作。
原文地址:https://geekgazette.org/2017/08/samyaks-hangout/
點擊閱讀原文可查看職位詳情,期待你的加入~
※AI 師生圖譜:盤點因師生情誼被谷歌亞馬遜等巨頭招募的大牛
※理解大腦如何控制運動,斯坦福用AI技術開發完美骨骼和神經模型
※令人吃驚的智能助理用戶畫像,典型用戶是52歲女性
※「信息圖」神經網路動物園前序:Cell與層之間如何連接
TAG:新智元 |
※計算機二級如何快速通過,你需要知道這些!
※計算機視覺如何入門?
※一文帶你讀懂計算機視覺
※手機上有計算器的快看看,我也是現在才知道,你也快看看吧
※我們常說的計算機視覺,究竟是什麼?
※深度學習計算機視覺極限將至,我們該如何找到突破口?
※計算機視覺也可以腦補了?
※專訪孫劍:計算機視覺研究,如何改變了我們的生活?
※為什麼計算機的閱讀能力不如人類?
※計算機視覺不是智能,只是記憶!
※雲計算是一把雙刃劍,我們該如何正確利用它?
※光速是如何計算出來的?
※手機上有計算器的都快看看,我也是今天才知道,趕緊告訴身邊朋友
※當不成黑客,你也要懂點計算機技能
※雖然網上計算基礎代謝率很方便,你踩雷了,你還不知道嗎?
※如果將原子彈製成手機大小,威力將會如何?專家早就計算出結果!
※什麼是道歷?如何計算?
※我們都是量子計算機嗎?
※世界上最快「速演算法」,孩子掌握就是「速算神童」,超過計算器!
※什麼?計算機也會算錯數?