第13章 開賽在即
章節報錯
13年的夏天,燕京電力大學本學期已經將近尾聲。
大部分學生的課程都已經結束,除了少數還沒有考完的科目,平時基本上已經無所事事。
就在大部分學生頹廢地在宿舍哀嚎為什麼學校還不裝空調的時候,有兩個人正幹勁十足,在為兩個月後開始的競賽做準備。
兩人已經暢聊了不少,孟繁岐大概為其梳理清楚了基本的概念和認識。
他一直認為,新人接觸AI和人工智慧,切忌執著於某個區域性和概念,容易得不償失,看了半天還沒看懂。
先對整體的原理用淺顯的方式,結合生活中常見的場景和概念去理解為好。
隨後則先接觸一個可以順利執行的程式碼例子,跑起一個測試版來,會大大增強自己的自信心,有很強的成就感。
有了興趣,有了成就感,有了信心,又大概理解了整體的流程和意義。人自然會自發地去探索程式碼,嘗試去理解每個零部件,每個引數的意義和它會產生的影響。
說不定就會有一些奇思妙想。
如此從上而下,方為正道。而不是苦苦啃了幾個月的公式,結果來到電腦前一句程式碼都不會寫,根本無從下手。
前段時間,孟繁岐已經將基於阿里克斯的cuda-convnet框架,實現了一個簡易版三層神經網路做十分類任務的玩具級版本。
唐璜藉此基本熟悉了本次競賽的第一個任務內容。
孟繁岐便指使他去仔細看一看IMAGENET官方給的資料存放方式,開發工具和使用的方法。
自己則嘗試將自己這段時間以來所準備的演算法基於該框架實現,但是不太順利。
其實阿里克斯自己在主頁上也意識到了這個問題,他稱自己主頁對程式碼的描述是非常不充分的。
而此時非常不完善的生態也進一步地加劇了這個問題,英偉達的CUDA起步不算太久,不同版本之間的程式碼又需要改動。
孟繁岐更換了幾個程式碼庫的版本,結果顯示卡GTX-690的驅動似乎有哪裡不相容,部分程式碼的編譯也不順利。他相信這份程式碼本身是阿里克斯釋出出來的比較成熟的版本,不會有什麼問題。只是環境和除錯上確實是一件麻煩事。
此時的AI技術不能說是小眾,但也沒有到這種細節問題都隨處可查的地步。孟繁岐瀏覽了一下相關的技術網站,檢視了一些相關討論。
雖然解決了大部分問題,但終究還是剩下了一些。
“沒辦法了,只能寫郵件給阿里克斯求助一下。”孟繁岐倒不是很擔心阿里克斯願不願意回覆的問題,只要自己表明來意,說清楚自己希望以深度神經網路參賽IMAGENET-2013,阿里克斯是一定願意伸出自己的援手的。
眾所周知,AI三巨頭是辛頓,立昆(Lecun)和本吉奧(Bengio)三人。2018年的圖靈獎由這三人共同獲得,以表彰他們多年來的堅持和貢獻。
新時代的AI起飛靠得核心技術是深度神經網路,但在60和80年代的兩次熱潮之餘,神經網路其實並沒有得到足夠的重視。
阿里克斯是辛頓的學生,2012年兩人和師門其他人一起以AlexNet參賽IMAGENET-2012的時候,是唯一一個使用神經網路的團隊。
孟繁岐很清楚,辛頓和阿里克斯渴望神經網路被髮揚光大,他們也已經在2012年以碾壓的姿態擊敗了其他競爭者。
此時的他們還沒有完全開始日後非常忙碌的事業,正處於“萬國來朝”的喜悅之中。非常樂意為非盈利性質的同好提供技術上的支援。
阿里克斯主頁上開源的這套cuda-convnet其實就是日後TF和Pytorch的縮影。
賈揚清博士後來開發的Caffe是許多AI開發者的初戀,很多內容也是基於cuda-convnet。賈博士本人也與阿里克斯交流甚多,從阿里克斯那裡得到了很多的幫助和支援。
時隔多年,賈博士仍曾感懷阿里克斯和cuda-convnet,說明阿里克斯在AI技術方面,確實是一個熱情好客的人。
雖然決定寫郵件叨擾,但其中內容卻不是那麼容易寫的。程式設計師是一種對提問質量有較高要求的群體,尤其是阿里克斯這樣走在時代前沿的頂級大腦,這樣的人對愚蠢和傲慢的容忍程度是很低的。
因為開源(Open-Source)是這個世界的一大特色,AI的飛速崛起很大程度上依賴這種無私分享的氛圍。去年奪冠擊敗一眾一流大學和科技公司的AlexNet,其所有程式碼很快就已經可以被隨便一個人直接下載到自己的電腦上。
沒有任何的壁壘和門檻,最核心的內容就這麼免費擺放在你的面前。在這樣的情況下,如果再問出愚蠢的問題,是顯得有些侮辱人的。
那些不願思考、或者在發問前不做他們該做的事的人。那些人是時間殺手——他們只想索取,從不付出,消耗我們可用在更有趣的問題,或更值得回答的人身上的時間。
“拿來。”“給我。”他們的問題聽起來就是這個意思。
阿里克斯為許多人提供幫助使用的是自己私人的時間,第一次直接接觸業界的風雲人物,孟繁岐可不想顯得很不禮貌,像個傻子。況且,草率的問題其實也只能得到草率的答案。
如果一個人不能詳盡,清晰而有邏輯地把自己的問題描述清楚,想必他也是沒有什麼可能得到自己想要的回答的。大多數人在求助的時候總是專注於描述自己的感受,但實際上並沒有人在乎。
以求圖求出處舉例。“啊啊啊啊!!!急急急!!我要爆了!!”和“日漫,有彩頁,是個短篇,一共三個角色,畫風有點像XX和XX。”
這兩種描述哪個更有可能得到可靠的回答,想必不需要過多的解釋。
還有一個很經典的起手式,是“在嗎?”。如果看到這樣的問題,快跑,頭也不要回,後面準沒好事。
開啟郵箱,孟繁岐詳盡地描述了自己的相關硬體型號,驅動版本,環境和庫的版本,具體出錯位置,報錯的日誌,自己已經做過的搜尋和嘗試過的辦法以及它們的結果。
點選傳送。
“現在加州時間應該是凌晨吧,天還沒亮。”孟繁岐算了算時差,自己得到回覆最早也是明天了。
此時最要緊的事情是先基於阿里克斯的框架做修改把15年的名震天下的ResNet實現出來,等問題解決後進行除錯。
不僅是程式碼和實驗結果,他還需要儘早基於新的深度神經網路把對抗生成演算法的實驗完成。
孟繁岐很清楚,幾個月後賽事結果公佈的時候,自己基於後世kaiming殘差思想的DreamNet一定會引起很大的轟動,得到相當大的關注度。
而到那時,孟繁岐則要藉助這個難得的機會,將對抗生成演算法一舉推出。
先用基於殘差的DreamNet吊足所有人的胃口,在所有人都渴望知道DreamNet技術細節的時候,公佈基於DreamNet的對抗生成網路的具體技術細節和實驗結果。
得不到的才更想要,不是嗎?