571
機器人
人工智能工程師的三個層次
點擊播放
GIF/184K
導
讀
Google Tensorflow框架的Contributor。在計算機視覺領域有深厚的工業經驗,帶領團隊開發的“花伴侶”植物識別App,上線數月即在0推廣的情況下達到百萬用戶,並獲得阿裏巴巴2017雲棲大會API Solution大賽一等獎,團隊受邀成為騰訊微信公開課北京站九位演講嘉賓之一。
1
每一波浪潮的到來,都意味一片無人占領的藍海,也意味著眾多新成長起來的巨頭,還意味著什麼?大量的技術人員需求,供不應求的開發市場,以及從業者的高薪與眾多的機會。
我們最常做的事情是目送著上一次浪潮的餘波遠去,感歎自己生不逢時,卻沒有意識到,下一波浪潮已經到了我們腳下。
沒錯,我們說的就是AI。
身在IT圈中的人,應該都有著直觀的認識。目前國內知名的互聯網企業無一不在建立自己的人工智能技術團隊,以期用AI技術,提升產品的體驗和智能化程度。
但與此同時,各種不明覺厲的名詞也嚇退了很多非科班出身的開發者。什麼叫卷積神經網絡?什麼叫凸優化?是不是還要回去重讀高數,線代,概率?那麼一大堆公式,感覺完全看不懂啊?聽說沒個名校博士出身都搞不了這個?
在很久以前的一篇知乎回答中提過,作為開發人員,AI領域界在我看來會分成這麼幾個層次
1. 學術研究者
他們的工作是從理論上詮釋機器學習的各個方麵,試圖找出“這樣設計模型/參數為什麼效果更好”,並且為其他從業者提供更優秀的模型,甚至將理論研究向前推進一步。 能夠做到這一步的人,可以說鳳毛麟角,天賦是繞不過去的大山,機遇和努力也缺一不可。
2. 算法改進者
他們也許無法回答出“我的方法為什麼work”,也許沒有Hinton,LeCun那樣足以載入史冊的重大成果,但是卻能根據經驗和一些奇思妙想,將現有的模型玩出更好的效果,或者提出一些改進的模型。這些人通常都是各個機器學習巨頭公司的中堅力量或者成長中的獨角獸,使用什麼模型對他們來講也不是問題,根據所處的環境,通常都有固定的幾個選擇。在這個層麵,insight和idea才是重要的東西,各種工具的區別,影響真的沒那麼大。可能會讓一個結果早得到或者晚得到幾天或者幾周,卻不可能影響“有沒有成果”。
3. 工業實現者
這些人基本上不會在算法領域涉入太深,也就是了解一下各個算法的實現,各個模型的結構。他們更多地是根據論文去複現優秀的成果,或者使用其他人複現出來的成果,並且試圖去在工業上應用它。
對於大部分IT人來說,做到第三類,也就是工業實現這個層麵,已經足夠好了,至少,我們已經有了親身參與這個大時代的機會,僅就這一點來說,便已經擊敗了全國99%的人(斜眼笑的表情)。
不光是普通程序猿這麼說,文藝的程序猿和……額,高大上的程序猿也都這麼說。
我說,嗬嗬。
答案隻有一個:Just Do IT(去搞IT吧,少年)
成為人工智能工程師,在我看來,要把機器學習、深度學習掌握好,就可以入行拚搏了!另外,理論必須要結合項目實戰:因為作為程序員,讀十遍書不如跑一遍程序,與其花費大量的時間去啃書本,不如親手完成自己的程序並運行它。我們在寫出代碼的同時,就會了解到自己還有哪些地方不夠清楚,從而針對性地學習。
2
我們先來說說,機器學習應該學習哪些。
學習任何東西,勿在浮沙築高台(對這句話眼熟的請舉手),有一些基礎的知識還是需要掌握的。例如在計算機視覺領域,根據我們團隊內部培訓的經驗,為了能夠獨立進行機器學習的開發工作,最好首先完成這麼幾項課程:
1. 入門機器學習:
熟悉機器學習領域的經典算法、模型及實現的任務等,同時學習搭建和配置機器學習環境,並學會用 線性回歸 解決一個實際問題。
2. Logistic回歸分析、神經網絡、SVM:
掌握數據集探索;理解分類任務算法(Logistic回歸、神經網絡、SVM)原理;學會在scikit-learn框架下采用各分類算法分類具體任務。
3. 決策樹模型與集成學習算法:
損失函數:信息增益、Gini係數;劃分:窮舉搜索、近似搜索;正則:L2/L1;預防過擬合:預剪枝及後剪枝;Bagging原理;Boosting原理;流行的GBDT工具:XGBoost和LightGBM
4. 聚類、降維、矩陣分解:
主成分分析(PCA);獨立成分分析(ICA);非負矩陣分解(NFM);隱因子模型(LFM);KMeans聚類和混合高斯模型GMM(EM算法);吸引子傳播聚類算法(Affinity Propagation聚類算法)
5. 特征工程、模型融合& 推薦係統實現:
學會常用數據預處理方法及特征編碼方法;學習特征工程的一般處理原則;組合各種特征工程技術和機器學習算法實現推薦係統。
上麵的課程大概會消耗你1個月多的所有業餘時間。但是相信我,這是值得的。
如果實在連一兩個月的業餘時間都拿不出來,好吧,我來偷偷告訴你最最最基本的一個要求,滿足了這個要求,你就能夠算是機器學習入門了: 會算矩陣乘法
別笑,說正經的,在這個框架高度封裝的年代,梯度不需要自己算,損失不需要自己求,反向傳導更是被處理得妥妥的,在不求甚解的情況下,你甚至隻需要知道這麼幾個概念就可以開始著手寫第一個程序了:
它就是通過一係列矩陣運算(或者類似的一些其他運算)將輸入空間映射到輸出空間而已。參與運算的矩陣的值稱為權重,是需要通過不斷迭代來尋找到最優值。
當前的權重值離最優值還差多遠,用一個數值來表示,這個值就叫損失,計算這個值的函數叫損失函數。
當前的權重值應該調大還是調小,這個值通過對損失函數求導來判斷,這個求導得到的函數叫做梯度。
通過損失和梯度來更新權重的方法叫做反向傳導。
迭代的方法稱為梯度下降。
雖然這麼寫出來的程序一定是不知其所以然,但是其實20年前我第一次用C++寫Hello world的時候也是一臉懵逼的,我相信,每個能夠投身機器學習開發工作的程序猿,都是有大毅力大勇氣的,自然不會欠缺繼續學習的動力和決心。
3
我們再來說說,深度學習應該學習哪些。
深度學習著重掌握卷積神經網絡和循環神經網絡,使用大量真實的數據集,結合實際場景和案例介紹深度學習技術的應用範圍與效果。
1. 神經網絡入門及深度學習環境配置:
熟悉神經網絡領域的常用術語、安裝並配置深度學習框架Tensorflow,學會用Tensorflow解決一個實際問題。
2. 神經網絡基礎及卷積神經網絡原理:
使用不同結構的神經網絡結構驗證網絡結構對效果的影響;了解卷積神經網絡的相關概念和基礎知識,並通過實戰案例理解CNN局部相關性與權值共享等特性。
3. 卷積神經網絡實戰:
圖像分類及檢測任務:學習圖像分類任務及檢測任務目前主要模型算法,並通過兩個實戰案例學習在Tensorflow框架下訓練CNN模型。
4. 卷積神經網絡之圖像分割實例:
掌握分割任務簡介、反卷積(deconv/transpose-conv)、FCN
5. 循環神經網絡原理:
RNN基本原理
門限循環單元(GRU)
長短期記憶單元(LSTM)
詞向量提取:Word2Vec
編碼器—解碼器結構
注意力機製模型:Attention Model
圖片標注(Image Captioning)
圖片問答(Visual Question Answering)
4
恭喜你,成為人工智能工程師群中的一員了
接下來就可以收集一些自己的數據,並且訓練一些自己的識別引擎;或者嚐試著優化這個模型,感受一下所謂調參黨的痛苦;又或者直接嚐試實現ResNet、Inception這些更為先進的網絡來刷刷Cifar;再不然可以嚐試著向NLP或者強化學習方向去學習一下。總之,這些事情遠沒有看起來那麼難。
當然,不論那條路,學習,進步和自我鞭策都是逃避不掉的必修課。一個新生的領域,勃勃的生機必然也意味著新成果的層出不窮。完成我上麵提到的三門課程隻能讓一個人從門外漢變成圈裏人,有了進入這個領域,趕上這波浪潮的基本資格,至於到底是成為弄潮兒還是直接被大浪吞沒,還是那句話,不勞苦必然無所得。努力學習不一定能修成正果,而不去努力學習,則注定是一無所獲。
最後,祝福,祝福各位能在AI領域裏大放異彩。
文章作者:智亮
文章編輯:秦革
【燈塔大數據】微信公眾號介紹:中國電信北京研究院通過整合電信自有數據、互聯網數據和線下數據,創建了業內領先的“燈塔”大數據行業應用平台,致力於與行業合作夥伴共同打造大數據行業應用生態圈。
微信公眾號【燈塔大數據】關鍵字信息:
【人工智能】獲取人工智能時代的發展思考 ppt
【半月刊】下載大數據瞭望半月刊
【網絡安全】獲取國民網絡安全報告全文
【23個理由】下載《大數據讓你興奮的23個理由》電子書
【思維導圖】下載12種工具的獲取方式
【 燈塔 】 查看更多關鍵字回複
最後更新:2017-10-24 08:20:58