這是一個轉型AI的勵志故事,從非科班到拿下競賽一等獎
作者:智亮,魯朗軟體聯合創始人
責編:胡永波
本文為《程式設計師》原創文章,未經允許不得轉載,更多精彩文章請訂閱《程式設計師》
在計算機行業,關於從業人員的素質,一直都有一個樸素的認識——科班出身好過非科班,學歷高的好過學歷低的。大部分時候,這個看法是對的。在學校學習,有老師指點,有同學討論,有考試壓迫,有專案練手。即便不大用心的學生,幾年耳濡目染下來,畢業後作為半個專業人士,還是沒什麼問題的。
不過,量子物理告訴我們,這個世界的本質要看概率。所以,科班出身的同學,在技術上好過非科班出身的同學,這是大概率事件;相反,非機器學習專業,甚至非計算機專業的同學,在這個領域做的比本專業同學更好,則就是小概率事件了。但小概率事件並非“不可能事件”,國內很多做機器學習公司的CTO,都不是機器學習專業的科班出身,卻能夠抓住這裡的“小概率”,讓自己華麗地轉身並實現彎道超車。
他們是怎麼做到的?
如果在上學的時候,我們沒能嗅到機器學習領域的機會,而是選擇其他領域來學習和工作……如今卻打算半路出家、改行機器學習,應該怎麼做,才能做到跟這些人一樣好?或者,至少是足夠好?
我自己痛苦轉型的經歷,說出來可以供大家參考一下。
我也是非科班出身,但因為工作,一直需要接觸計算機視覺的一些傳統演算法。後來,看到ImageNet競賽的結果,我意識到了深度學習在視覺領域的巨大優勢,遂決定開始轉型深度學習和神經網路,走上了這條學習的不歸路(笑)。
想要轉型,跟上學的時候不同,因為手頭正在做的工作意味著,自己需要從沒有時間的情況下擠出時間,需要把別人睡覺、打遊戲的時間用來學習,而所學的又是一種頗為艱深晦澀的學問。
轉型,其實很容易,需要做到的只有一件事:學習。
轉型,其實很困難,因為必須做到一件事:堅持學習。
最難的不是下定決心,而是貫徹到底。所以,在開始之前,不妨先問問自己這樣幾個問題:
“我真的已經想清楚,要踏足這個行業嗎?”
“我能夠付出比其他人更多的辛苦汗水,在這條路上堅定地走下去嗎?”
“在遭受了痛苦甚至打擊之後,我對機器學習的熱愛,仍然能夠維持我繼續前進嗎?”
根據我掌握的資料,100個程式設計師裡大概有30個考慮過轉型,而真正付諸行動的不過10個。一個月以後仍然在堅持的僅有5個,最終能完成第一個階段學習的,最多兩三個而已。
真的這麼困難嗎?是的。特別是你要白天上班,晚上才能學習,獨學而無友,有問題又只能自己查。而要系統地入門,又不是咬牙一天兩天就能學出來,恐怕得堅持幾個月才能get到點。
我個人的經歷是這樣:一開始接觸時,每週一、三、五固定3天時間,每晚花兩個小時去學習、看視訊、翻書,週六週日則用來完成課程附帶的程式設計作業,大概也是每天兩小時左右。在這種強度下堅持了三個月,我才算是完成了入門的第一步。
也許有的人效率更高一些,也許有的人步子更慢一些,但快和慢不是關鍵,即使學習最慢的人,也要比一開始放棄學習的人走得更遠。
所以,其實真正重要的,不是“我該學什麼”,或者“我該怎麼學”;而是“我是不是真的有足夠的決心”,以及“我是不是能堅持到底”。
上手的課程
定好決心後,我們就能看看:在學機器學習的時候,我們到底在學什麼?
幾乎所有人都知道人工智慧這個概念;有一部分人知道“機器學習”這個概念;其中一小部分人能清楚描述“深度學習”、“機器學習”和“神經網路”的關係; 很少一部分人能夠正確說明“卷積”、“池化”、“CTC”這些名詞的正確含義與計算/實現的方法;非常少的人能清楚地理解損失函式和反向傳播的數學表達;極少極少的人能夠闡述網路的一個修改(比如把卷積核改小)對precision/recall會產生什麼影響;幾乎沒有人能描述上述影響到底是什麼原理。
這就是目前“程式設計師”這個群體,對於機器學習的瞭解程度。
我個人的經驗,適用於“很少一部分人”之外的那“很大一部分人”,也就是說,他們最多知道深度學習是什麼意思,神經網路又是什麼概念,卻並未真正系統地學習接觸過這個領域。
在這之前,你所要用到的數學知識,只有以下這三點:
- 懂得矩陣運算的基本計算方法,能夠手動計算[3×4]×[4×3]的矩陣,並明白為什麼會得到一個[3×3]的矩陣。
- 懂得導數的基本含義,明白為什麼可以利用導數來計算梯度,並實現迭代優化。
- 能夠計算基本的先驗及後驗概率。
程式語言與深度學習框架的選擇
當然,作為開發者,想要去實現一個模型,繞不開的問題便是:
應該選擇什麼語言?應該選擇什麼框架?
對於開發人員而言,語言的選擇其實不是問題。但作為入門,最為理所當然的建議則是Python,原因也非常簡單:Python最好學。
對於機器學習的學習,使用Python就意味著你不必分心去學習那些複雜的資料型別約束以及轉化、指標、記憶體管理或垃圾收集之類的“高階”(一般同時也代表著複雜)的特性,將精力集中在自己的目標上。當然,一些Python特有的方法(如lambda、yield或reduce)以及工具(如NumPy、pandas),還是需要多多使用,儘快熟練。
而框架方面,從使用者的維度去劃分,當前數量非常之多的機器學習框架,則可大體上分為兩大陣營。
學術友好型: Theano、Torch與Caffe
Caffe已算是最簡單的了,但仍要經歷漫長而痛苦的摸索歷程。
工業友好型: Tensorflow、MXNet與Caffe
對於大多數有志於投身於機器學習開發(而非研究)的同學們來說,我推薦首選Tensorflow作為你的第一個開發框架。除了上述的優點之外,最主要的因素是它人氣高。遇到任何問題,你都可以找到一群志同道合的夥伴們去諮詢,或是一起研究。對於初學者而言,其重要程度不言而喻。
實戰階段的學習用機配置
接下來,我們就需要一臺機器來把框架搭建起來,以編寫和執行我們的helloAI。然而,我在很多地方都看到小夥伴們在問:
我需要什麼樣的配置能學機器學習?
我需要買塊GTX1080/TITAN/Tesla嗎?
我應該裝幾塊顯示卡?一塊?兩塊?還是四塊?
而答案也往往傾向於:
“必須得有GPU啊,至少1080,沒有四路Titan你都不好意思跟人打招呼!”
其實,並不完全是這樣。
如果僅僅是入門和學習,CPU或GPU完全不影響你對程式碼和框架的學習。執行MNIST或CIFAR之類的玩具資料集,它們的差距並不大。以我的機器為例,執行自帶的CIFAR demo,i7 CPU和GTX 1080 Ti的速度分別是770 pics/s和2200 pics/s。GPU大概有不到三倍的效能優勢。所以,差距其實也沒多大。
打好基礎之後,跟蹤論文並復現、學習和思考,這樣的任務將成為你現階段的一項日常作業,如果你已經進入或是決定進入這個行業的話。因為稍有懈怠,便要面臨著被時代拋棄、跟不上節奏的情況。所以,到這一步,對於有些人來說是一個結束,而對另一些人來說,則才剛剛是開始。
這個時候,我們可以回過頭來重新問問自己前面那幾個問題:
“我真的已經想清楚,要踏足這個行業嗎?”
“我能夠付出比其他人更多的辛苦汗水,在這條路上堅定地走下去嗎?”
“在遭受了痛苦甚至打擊之後,我對機器學習的熱愛,仍然能夠維持我繼續前進嗎?”
這條路,我在走,很多人在走,那麼,你來嗎?
最後,再說一點題外話。
看到這裡的各位,一定很希望自己的深度學習路上,能有這樣一位具備成功轉型經驗的先行者來幫助自己趟坑。
智亮老師的想法也是一樣的,為了讓自身的實踐經驗能夠轉化成對大家真正有幫助的東西,他特地在CSDN學院開設了《人工智慧工程師》實訓班課程。
這是一項為期個月的趟坑實踐,目的是通過全程的實戰案例學習,能直接讓你從AI小白晉級為具備一年實踐經驗的人工智慧工程師。
僅需30秒,測試自己是否適合學習AI + 智亮老師的AI實訓營地址:
https://edu.csdn.net/topic/ai20?utm_source=blog08
- 課程內容包括機器學習和深度學習需要掌握的知識和系統圖譜,每節課都配有實戰案例,並提供GPU雲實驗平臺進行案例實操,將理論知識與實際案例應用相結合,反覆鞏固,力助你成為一名合格的AI工程師。
- 在這三個階段的學習中,你將掌握機器學習原理和推薦系統的實現、深度學習入門與影像語義分割及寫詩機器人的部署,還有專屬GPU雲平臺上的四大工業級實戰專案,全程實操大量工業級真實資料。
- 同時,會有專人來跟蹤你的學習進度,並根據你的數學和程式設計基礎來制定專屬學習計劃,保證不掉隊。兩位大咖講師在計算機視覺的產業界和學術界分別都有著深厚的經驗,產、學、研結合緊密。
學成之日,還會有來自AI產業界的專業講師來做就業指導,就業推薦。
歡迎踏上這趟人工智慧工程師的直通車,成功轉型的經驗正在向你招手。
人工智慧實訓營地址
:https://edu.csdn.net/topic/ai20?utm_source=blog08
相關文章
- 拿下阿里一等獎,轉型 AI,這位技術老炮兒要說這些!阿里AI
- 非科班雙非本科投的337家Java後臺(勵志)Java
- 勵志故事:從為Flash做遊戲到登上任天堂、蘋果舞臺遊戲蘋果
- 程式設計師勵志小故事程式設計師
- 寫了很久,這是一份最適合/貼切普通大眾/科班/非科班的『學習路線』
- 程式設計師的勵志故事:Stay Hungry, Stay Foolish程式設計師
- 非科班出身的Web前端程式設計師,從這三個方面來提升自己Web前端程式設計師
- 專訪 | GBase技術徵文大賽 優選一等獎是如何練成的
- 20 萬大獎,這是這個夏天開發者最值得參與的大賽
- 遊戲策劃---實現一個非線性的故事(轉)遊戲
- Java成長之路--一個非科班生的進階之路Java
- 「救救AI領域,救救孩子!」這是一個AI從業者的倡議AI
- 從美術生到程式設計師轉型之路【我的故事】程式設計師
- 勵志故事:比Elasticsearch更快的即時開源搜尋引擎typesenseElasticsearch
- 一個爬蟲的故事:這是人乾的事兒?爬蟲
- 可以獎勵幾個糖果
- 磕磕絆絆到再見曙光,這是一個普通遊戲公司創業的故事遊戲創業
- AI之道|諾獎對AI的偏愛是真魔幻【悟空非空也】AI
- 從創業到開發處子作《堡壘》,這是Supergiant的故事創業
- 【2020Java最新學習路線】寫了很久,這是一份最適合普通大眾、科班、非科班的路線Java
- 獎勵一定是正向的嗎? 談談遊戲中的“壓力”與“獎勵”遊戲
- 一針見血的工作勵志語錄
- 硬核!奇點雲一舉斬獲人工智慧程式設計大賽一等獎、三等獎人工智慧程式設計
- 從軟體工程師轉型到資料科學家 我是這樣走的軟體工程工程師資料科學
- 集3學員AI面經:如何成功轉型一週連續拿下3個30萬offerAI
- LOL2015德瑪西亞杯總決賽競猜獎勵領取地址
- AI 大戰 AI,一個深度強化學習多智慧體競賽系統AI強化學習智慧體
- 工作勵志名言短句
- 獎勵關
- 富士通加入AI競賽AI
- Google調整漏洞獎勵計劃,單個漏洞最高獎勵7,500美元Go
- 陶哲軒支援!AI數學奧林匹克競賽進步獎公佈,獎金100多萬美元AI
- 這款萌出天際的遊戲,憑什麼拿下2019騰訊遊戲創意大賽手遊賽區金獎?遊戲
- 勵志故事:小小程式猿五年在北京買500萬房子
- [開發筆記]-分享一些勵志的話筆記
- 一個由tf1.6.0引發的故事|從CUDA到gcc配置,非root使用者重灌舊版本TF環境GC
- Kiip:一個23歲年輕人建立的移動獎勵企業
- 畢業兩年,我是如何從技術「轉型」到管理的?