孙剑亲自撰文:我在 Face++ 的这半年
孫劍親自撰文:我在 Face++ 的這半年
2016年,就我個人來講,所做出的最重大抉擇,就是在已經工作了十三年的微軟研究院(以下簡稱MSR),和一個成立不過幾年的創業公司——Face++曠視科技(以下簡稱Face++)之間,選擇了后者,并且以首席科學家身份加入。 雷鋒網
當時我還住在西雅圖,當真是“身未動,消息已遠”,各種報道從國內外朋友圈向我強勢襲來,讓我體會到了媒體的力量。時至今日,我已搬回北京,在Face++上班近半年了,依然時常被問及:
“過的怎么樣?”、“Face++和MSR的研究部門一嗎?”、“Face++是如何開展研究工作的?……”等等。
問題或大或小,但大多諸如此類。值此新年之際,我想把自己這半年來的觀察與思考與大家分享一下,權且當作對各位關心的答謝。
接下來,我將圍繞大家關注的一些典型問題,逐一說明:
Face++與MSR的研發部門有什么異同?
就我的觀察與體驗,兩家公司研發部門的本質是幾乎沒有差別的。什么叫一個公司的研發部門本質呢?我認為有三個要素極其關鍵:使命定位、人員組成和研發方式。坦白來講,從這三點審視,我在兩邊看到了驚人的一致性,也就是說:
1)他們都同樣有著既基于產品,又探索前沿技術的使命定位;
2)他們都同樣聚集著一群追求極致,有Geek精神,且高自我驅動的精英;
3)他們都用同樣的套路推進研究工作:確定問題-->實現、研究和理解既有方法-->進行持續改進或創新。
在這其中,最令人有現場觸動感的還是“人”。舉個最近讓我感動的例子: 下面這張我在2016年最后一天發的朋友圈最好的詮釋了Face++的核心價值觀“追求、極致、簡單、可靠”中的前兩點。雷鋒網(公眾號:雷鋒網)
當然,即便兩邊研究部門的本質相同,也必然會存在著不同之處,畢竟每個公司都有其特定的文化與管理模式。當我身邊的戰友們從平均年齡三十多歲直降十歲的那一天突然來臨時,我一方面感覺自己好像在瞬間邁入中老年的行列中(講個梗:今天一名同事問我為什么把手機字體調的那么大),另一方面覺得自己充滿了干勁,同時還有一份沉甸甸的責任感。
Face++的研究部門在研究什么?
在眾多場合下問,這個問題是被提及次數最多的。為什么會有這樣的疑問呢,我想不外乎兩方面的思考,一是想知道公司具體研究哪些領域,長期課題與目標是什么,二是想了解一家創業公司里的研發部門,到底能不能推進真正意義上的研究工作,還是打著研究的旗號做著產品開發。
這里還隱含著一個認識上的誤區,就是在我們公司被廣泛稱為Face++之后,越來越多的人誤以為Face++嘛,只是在做人臉技術。人臉,目前確實是一個商業前景廣闊,玩法花樣不斷翻新的應用。但是,Face++從創立第一天就聚焦在人工智能的三大應用領域之——計算機視覺,是以一系列視覺識別(人臉、人、物體、文字、場景、行為等)問題為中心,研發核心算法,打造能落地的產品。 消除了這樣一個誤區,你會比較好理解,為什么Face++要用“Power Human with AI”作為使命,用“人工智能技術造福大眾”,來發愿。畢竟公司的全名是叫曠視(英文叫megvii, 取自mega vision),也就是大的視覺。
回到問題本身,目前我們主要在集中研究四個視覺理解核心問題(見下圖):圖像分類、物體檢測、語義分割、和序列學習。研究的技術路線是徹徹底底的深度學習:1)使用深度神經網絡;2)盡最大可能使用端到端(end-to-end)學習。Face++應該說是這波兒人工智能創業公司當中最早研究并應用深度學習的。雷鋒網
圖像分類是最基礎的問題。這個問題自身就有廣泛的應用(例如人臉識別和場景分類),也是研究其他問題的根基。深度學習的出現使得我們從以往的特征設計走向了網絡結構設計,這里包含很多對問題的深刻理解、實踐中總結的經驗和原理、優化算法的探索、和對下一步技術發展的判斷。
我們的研發部門里有一個專門的小組負責研究如何訓練最好的基礎神經網絡,并沿著以下三個子問題深入:
1)針對不同計算復雜度下設計最優的神經網絡;
2)針對不同計算平臺的實際要求,來設計最高效的網絡;
3)針對不同問題設計最合適的網絡。
另外對神經網絡模型的壓縮和低比特化表示也是我們研究的重點之一。
物體識別是解決感知圖像中哪里有什么物體的問題。
典型的應用包括手機上的人臉檢測, 無人車中的車輛/行人/交通標志的檢測,視頻分析中的各類物體檢測。這個問題是圖像理解中研究內容最豐富的核心問題,也是一個非常復雜的感知智能問題。
我們關心的若干子問題是:
1)如何有效地解決遮擋問題。這個問題對人來說好像是很容易的,但其實涉及到了人腦中對不可見部分自動做聯想和補充的能力,已經部分屬于人類的認知智能能力范疇;
2)如何有效的利用圖像或視頻的上下文(context)信息或我們的常識(common sense)。上下文和常識對我們避免一些明顯錯誤和小物體檢測十分重要。目前的物體對小物體檢測的性能非常不理想,和人眼的能力差距還是非常大的。如果我們單獨把小物體從圖像中裁剪出來,人也很難識別。但是當小物體放回整副圖像中,人卻做得非常出色。我個人認為對這個兩個子問題的深入研究真的可以對理解認知智能提供有意義指導,甚至是突破。
語義分割就是對每個像素分類,這是一個更為精細的分類任務。
比如說把識別出來的人體分割成具體部位,把人臉分割成五官,把場景分成藍天、建筑、道路和物體等。目前在這個問題上統治性的方法是Berkeley在2014年提出的全卷積網絡(FCN)。這個方法使得神經網絡具有了有強大的結構化輸出能力,進而將深度學習有效地推進到很多中期和初期視覺理解(例如立體匹配和光流計算)問題上。我當年博士論文就是在研究初期視覺中的立體匹配問題,十幾年后的方法發生了根本性的變化,當年是想也不敢想的。我們研發部門的一名實習生在最近的CVPR投稿中設計了一個簡單有效的FCN模型,在公開評測集上取得了非常好的效果。
序列學習是最有趣的問題,它的形式多樣,可以輸入一個序列(視頻或音頻)進行分類,也可以針對一副圖像輸出一個描述性的文字序列,或輸入輸出都是序列(例如識別圖像中的多行文字)。
解決這三類問題的算法在Face++的產品中都有應用。目前解決這個問題的主流方法是遞歸神經網絡(RNN),也是現在在語音識別和自然語言處理中的大殺器。由于人的智能本質是在實時的“處理”連續不斷感知到的信號流,這使得序列學習成為當下的最熱的研究方向之一。尤其是最近引入外部記憶讀寫機制和執行單元的RNN,讓我看到了解決人工智能不少難題的一絲曙光。Face++的研究員們也正在這方面積極思考,積極實踐。
在Face++曠視科技如何開展研究?
推進研究部門的工作,核心是培養人做事的能力,并給予最好的研發環境。
培養什么人才?人才是研發的生命線。創造一個良好的環境吸引人才,培養人才,留住人才是我們的第一優先級。信息學競賽(NOI/IOI)和大學生程序設計競賽(ACM/ICPC)的選手們構成了研究部門的第一批戰士。我們后續更多的戰士來自五湖四海,擁有相當不同的背景:既有以前做視覺的,也有以前做機器學習的,既有研究基本問題的,也有專注特定應用的。
一個多樣性的環境也使得我們看問題的角度更全面。在這樣的基因下,我們大致將人才向兩個方向培養:研究科學家,和全棧人工智能工程師。研究科學家主要聚焦在算法上,尋求對問題的本質解,我們的培養目標是成為能獨擋一面領域專家;全棧人工智能工程師是我們內部的叫法,目的是培養即能上九天攬月(算法設計和訓練),又能下五洋捉鱉(算法的工程化,研究問題和方式系統化)的全能戰士,他們既能做research,又懂system,能建系統、造輪子。針對目前AI發展的趨勢,我們需要大量的全能人才來將AI “+” 到不同的行業上,解決實際問題。這就對人才提出了更高的要求。我們相信即便沒有AI背景的工程師,在這里工作1-2年后就能成為獨當一面的人才。
怎么做事?有了一幫志同道合的小伙伴們,就要圍繞這上面介紹的四個視覺理解核心問題開展研究、并將研究成果應用在具體的視覺識別場景中。Face++的研發團隊扁平化,每個研究小組由2-4人組成,聚焦一個課題。課題可以是短期的,例如對已經應用的某個產品線上的算法的改進;課題也可以是長期的,例如持續提升識別的精度和性能。 我們的每個研究員都可以在不同的課題之間自由切換,這樣能最大程度發揮個人的長處和積極性,同時也讓大家有機會短時間了解更多的問題,有更豐富的經歷,能更快的成長。套用現在深度學習的精髓,每個人的學習也需要輸入大數據。
研發環境:做深度學習研究需要一個非常高效的訓練引擎/平臺和充沛的計算資源,Face++內部使用了近兩年的“MegBrain”是一個全自主研發的訓練引擎,它與目前流行的TensorFlow(Google一年前發布)設計相似,同屬基于Computing Graph的新一代訓練引擎。為什么非要自研系統呢?公司研究深度學習開展得非常早,當時還沒有很好用的系統,并且MegBrain在同時滿足靈活性及精簡性的基礎上,能最大限度提升工作效率。目前在AI創業公司中完全使用自研深度學習訓練引擎的,可能只有Face++。
除了核心引擎,我們的體系結構組還搭建了一個強大的深度學習平臺Brain++來管理我們龐大的GPU集群,來完成從數據標注和管理、模型訓練、GPU集群中心化管理、到產品化發布的“一條龍”自動化流程,從而使得我們的研發人員將寶貴的精力集中在問題上。這也使得來Face++的實習生非常容易上手,即便對深度學習系統零基礎,一套簡單的教程讀過后2-3個星期就可以開始思考問題了。這些系統能夠建立得益于我們團隊內部的有不少“全棧人工智能工程師”,他們不僅是深度學習方面的專家,更是系統和分布式計算方面的專家。
最后針對深度學習很大程度上得益于大規模訓練數據,我們還設有專門的團隊負責標注工具開發和完成大量數據標注任務。以前讀書時開玩笑的一個講法是“沒有不好的算法,只有不好的數據”,Datais King。
過得怎么樣?
對于Face++,我分享幾個數字:我們的人工智能云開放平臺的API已經服務了近7萬開發者,已被調用 62 億次;身份認證平臺目前已為1.2億人(注意不是1.2億次)提供了刷臉服務,覆蓋了85%的金融市場智能化應用;智慧安防和智能商業產品也覆蓋到25個省。服務客戶、追求極致,不斷驅動著我們的前行。對于我自己,現在有著無比的自信能夠和Face++的研發團隊一起,在這個最好的時代,做出更好的成績,追求研究之美!
| 本文作者:亞峰 | 2017-01-10 16:27 |
總結
以上是生活随笔為你收集整理的孙剑亲自撰文:我在 Face++ 的这半年的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据 *_train_test.prot
- 下一篇: 互联网金融下半场 BAT谁是老大?