深度學習是一門看重數據的科學。
本文由金沙江創投(微信ID:GSR-Ventures)授權i黑馬發布。
機器學習熱到不行,甚至有很多人認為它就是人工智能的全部。深度學習更是如此。你的創業公司或許剛剛融資成功,你的團隊或許剛批了一筆預算。那麽,恭喜你!你現在也要來做深度學習了。
到了現在這時候,你應該已經從Keras、Imagenet等技術中找到了樂趣,這確實很令人振奮!但要把技術變成一盤生意,讓你的創業公司真正起步,你還需要考慮一些實際的問題。而我,應該可以算是半個過來人了。我會結合自己在comma.ai與喬治•霍茲(George Hotz)一起合作開發無人駕駛汽車的經歷,來試圖為你提供一些建議。
1 別因為加載數據讓工程師幹瞪眼
深度學習是一門看重數據的科學。你的團隊或創業公司存在的意義就是為這些數據賦予意義。想想看,只有首先為文本賦予意義,才能開發真正有用的人工智能比特幣聊天機器人。只有首先理解圖片、視頻等元素,才能在模仿Snapchat Stories時實現自動化多媒體拼貼。
不能輕視數據處理,一定要在該領域表現優異。例如,如果你只需要花15分鐘來準備和加載數據集,那麽每當你找到更好的模型決策,或者在Tensorflow代碼中找到漏洞,都應該稍等片刻。
原則其實很簡單。確定好數據庫,然後一次性預處理所有內容,之後反複使用。Celery和Luigi這樣的工具會是你的朋友。如果你在一個大團隊里工作,所有的任務都要提交到一個群集里,那就考慮開發一套數據解決方案,向負責模型訓練的員工分批提供數據。千萬不要讓團隊成員非要等到整個數據集下載完畢後,才有可能發現他們的模型里面存在漏洞。
我踩過的坑:
comma.ai或許擁有當今第二或第三大的駕駛數據庫。在comma.ai的每一天,為了訓練駕駛模型,都要向一臺擁有700多Gb內存的大機器里加載好幾個小時的視頻。每當需要更多訓練數據時,喬治都會立刻增加100Gb內存。我加入進來的任務是為這個模型開發更好的版本,但我不想等待15分鐘來加載數據。因此,我從開源項目里吸收了一些內容,開發了簡單的ZMQ服務器。這樣我們就不必因為數據而幹等著了,我們可以開展更大規模的訓練,還可以使用更便宜的機器。唯一能束縛模型訓練的只有GPU和他的研究人員。
2 從你能形象化的東西開始
幸運的是,對深度學習而言,可以使用Tensorboard、最近推出的Visdom以及其他工具幫助我們對結果進行形象化。我相信,DataScience整體而言可以很好地服務於形象化驅動的開發流程。應該考慮在每個階段都與你的問題相一致。你不必非要學習d3.js,也可以獲得有用的形象化效果,除非你過分迷信javascript。
我踩過的坑:
我在離職談話中向喬治征求意見,希望了解如何才能成為更有效率的工程師。(相信我,他是我見過的最有效率的人,我總會抓住每個機會向他學習。)他建議先開發一些東西,把我正在做的事情形象化。喬治本人之前就一直踐行這條建議。另外,喬治所有的IPython Notebook都有一些滑動小工具,可以在開發原型時快速將各個參數對最終結果產生的影響進行形象化。
3 早點確定你的範例數據集
如果你對數據準備感到崩潰,最好先休息一下,其次才是使用有趣的視覺化內容。但如果你不想變成打印機上的猴子,只是盲目地在神經網絡上隨機增加更多層次,就必須確定如何衡量進步。應該探討哪些指標與更好的交付效果關聯性更強,以及你應該追蹤哪些數據。這或許不僅局限於簡單的“隨機拿出10%的數據用於驗證”。驗證數據集最好能與最終的產品擁有相同的統計特征。同樣的產品也可以用於追蹤範例和失敗案例,從而制作未來的驗證集。因此,你的驗證集或許可以不斷進化,並像訓練集一樣調整。
我踩過的坑:
我發現,對於無人駕駛汽車範例和驗證集而言,可以考慮那些你必須奪回控制權的時刻。但最好的驗證集是讓一名經驗豐富的控制工程師在路上詳細判斷無人駕駛系統的質量。如果你在這個行業,最好從特斯拉挖人。
4 過早規模化是早期創業公司完蛋的主要原因
你可能會說:“別跟我說教,我看的創業專欄比你還多!”沒錯,但新常態在於,你應該把GPU和訓練硬件當做與員工相同的因素來看待。一旦你聘用/購買了超出需求的東西,就需要花費很多精力為你的過剩資源尋找用途。管理群集會很困難,而大規模的深度學習HPC本身是一個科研話題。我的建議是確保你所有的GPU都能始終得到利用,然後再考慮新買一個。等到你的效率和盈利能力一樣的時候,才可以像谷歌那樣。
如果你的團隊和公司已經很大,那就在招聘基礎設施相關工作時認真對待。如果你招聘了10倍的研究人員,但卻讓他們無事可做,最好的情況是他們開發對自己足夠好的基礎設施,最差的情況則是他們直接退出。但這肯定不是你想要的。
我踩過的坑:
每當我離開辦公室但卻沒有讓所有的GPU忙碌起來時,尼爾(comma.ai的手機應用副總裁)就對我很失望,我甚至因此變得有點神經質,總是擔心有GPU空閑下來。這如今已經成為一個普遍問題。
人工智能是一個既富有挑戰,又趣味十足的領域。一定要在處理資源和形象化時深思熟慮,這樣就不會有大問題。