優秀的演算法工程師都是不用深度學習的

我也來一發《優秀的演算法工程師都是不用深度學習的》

向神文致敬

《優秀的女孩是沒有性生活的》

感謝

@Manjusaka

《優秀的演算法科學家是不用獨顯的》靈感。

前幾天面試了一個C9應屆碩士生,模式識別專業,連續問好幾個專業問題都沒能答上來。

尷尬之餘,我問他:「你沒有什麼理想嗎?你現在最渴望的事情是什麼?」

他轉悠著大眼睛,不假思索道:「將kaiming大大的Resnet擴展到10萬層,把kitti,COCO資料庫檢測識別任務提升20個點以上」

真沒想到在面試中居然還有這種操作。

我問為什麼這能成為現階段最渴望的事情,他反問「你難道不為LeCun、Bengio和Hinton的執著精神所感動么?你難道不羨慕ILSVRC2012 AlexNet大放異彩么?你難道不被googlenet,Resnet的深邃思想所折服么?」

好有道理我竟無法反駁。

這麼了解市場的工程師,一定是個不可多得的人才!

於是,我決定:不錄取他。

這幾年,深度學習在CV領域大行其道,不論是detection,segmentation,classification,還是stereo matching,pose estimation,深度學習把之前傳統各種state of the art方法爆出翔。現今,演算法工程師不知道經典網路,流行框架都不好意思和別人打招呼。

此現象僅僅局限於剛入坑的小白。但是對於浸淫5年以上的無論bat演算法經理還是資深人肉特徵設計工程師,這種事情對於他們不過是一種笑談。久而久之,我發現一個殘酷的共同點——

他們只用傳統方法。

工資不高嗎?最低的月薪都有20K+,還有公司期權和股票。

技術不行嗎?Paper 發到手軟,代碼編譯一次就好。

我問過其中一個:我看你整天針對不同任務,手動設計特徵,分類器不累么,不想試試cnn方法么?

他說:廢話,肯定想啊。

我問:那為什麼不試一下LeNet,AlexNet呢,caffe框架下不是都有例子么?

他嘆氣:不,太忙。

他意味深長道:優秀的演算法工程師都是不用深度學習方法的。

跟我聊天的這個人,本身就是個大神,BS CMU,MS Stanford,doctor在MIT,三年完成五年課程,讀博期間發了100多篇sci,h index 40好幾,回國任創業公司首席科學家,閑著沒事發 Paper 玩,引用也很可觀。

追隨興趣投入cv研究10幾年,早在01年Paul Viola提出Haar與級聯adaboost時,小修了特徵與分類器,識別率提升了0.1%,達到當年人臉檢測領域的state of the art。後來受不了國外大學對華裔學術上的歧視,毅然回國,目前早已實現財務自由。

這樣的演算法佬,我想出來,從來不買好的顯卡跑深度學習,買來顯卡應該也是吃雞用的吧。

我還是認識另一個演算法工程師。

最喜歡傳統特徵與分類器,像gabor濾波器,LBP特徵,adaboost演算法,SVM分類,random forest等自然是如數家珍,每每驚嘆於harr特徵在人臉檢測,hog在人體檢測,LBP在人臉識別取得的成功而熱淚盈眶。但也由於過於痴迷,每天神神道道: 秀,天秀,陳獨秀,蒂花之秀。對於深度學習方法不屑一顧,可以搭出比cnn更work傳統特徵+分類器方法。

這個人才是是圈子裡的一股清流。

他最大的愛好是在視頻監控rgb通過高斯背景建模生成的前景圖像上,用米尺丈量顯示器來確定物體的寬高比,剔除樹葉抖動,水波蕩漾,磕頭機等帶來的誤報。此等神級操作在剛入坑的小白看來,是那樣的格格不入。有時也有人勸他,目前cnn通過剪枝,壓縮模型等技術,在1080ti上已經達到實時,你也可以試一下,減少一下工作量。

他卻不會受到任何影響。

我問他:你到底怎麼保持一顆平常心的,別人都用深度學習取得較好的泛化效果,你卻針對一個個場景手工設計特徵和分類器,不累么?

他笑,說:累又怎麼了,不服讓深度學習跑在低端arm平台上試試?

我立刻懂了。

同樣是這個人,利用傳統方法,在特定場景實現比深度學習更好的效果,而且通過5輪演算法優化,硬是把演算法移植到低端平台,每路為公司剩下2K的成本,這是一種工匠精神。

上周跟一個 CEO 朋友出去吃飯,他說他招來的一些菜雞演算法工程師,總想買多個1080ti顯卡,用深度學習方法提升研發效率。

他跟我說,「可你不一樣,你會一直提醒我,要我遠離舒適區,要我不能安於現狀,要我有危機意識,你好像特別看重用傳統方法解決問題。」

人都是需要獨立的。

仍是要永遠年輕,永遠熱淚盈眶。

仍是要時時刻刻對美好滿懷期待,對未來充滿渴望,對經典心懷敬畏。

要記住啊,知世故而不世故,處江湖而遠江湖,才是最善良的成熟。

推薦閱讀:

一年半時間如何拿到演算法offer?
學習演算法時,思考和看答案的界限在哪裡,我很想知道!是要一直思考出問題的答案還是看答案學習方法和思想?
演算法工程師大致是做什麼的?
ACM/TOPCODER類程序設計能力對於想成為機器學習、數據挖掘類演算法工程師的學生來說的意義是什麼?
演算法工程師有哪些發展前景?

TAG:深度学习DeepLearning | 算法工程师 | 图像处理 |