每一波浪潮的到來(lái),都意味一片無(wú)人占領(lǐng)的藍(lán)海,也意味著眾多新成長(zhǎng)起來(lái)的巨頭,還意味著什么?大量的技術(shù)人員需求,供不應(yīng)求的開(kāi)發(fā)市場(chǎng),以及從業(yè)者的高薪與眾多的機(jī)會(huì)。
我們最常做的事情是目送著上一次浪潮的余波遠(yuǎn)去,感嘆自己生不逢時(shí),卻沒(méi)有意識(shí)到,下一波浪潮已經(jīng)到了我們腳下。
沒(méi)錯(cuò),我們說(shuō)的就是AI。
身在IT圈中的人,應(yīng)該都有著直觀(guān)的認(rèn)識(shí)。目前國(guó)內(nèi)知名的互聯(lián)網(wǎng)企業(yè)無(wú)一不在建立自己的人工智能技術(shù)團(tuán)隊(duì),以期用AI技術(shù),提升產(chǎn)品的體驗(yàn)和智能化程度。
但與此同時(shí),各種不明覺(jué)厲的名詞也嚇退了很多非科班出身的開(kāi)發(fā)者。什么叫卷積神經(jīng)網(wǎng)絡(luò)?什么叫凸優(yōu)化?是不是還要回去重讀高數(shù),線(xiàn)代,概率?那么一大堆公式,感覺(jué)完全看不懂啊?聽(tīng)說(shuō)沒(méi)個(gè)名校博士出身都搞不了這個(gè)?
在很久以前的一篇知乎回答中提過(guò),作為開(kāi)發(fā)人員,AI領(lǐng)域界在我看來(lái)會(huì)分成這么幾個(gè)層次
學(xué)術(shù)研究者
他們的工作是從理論上詮釋機(jī)器學(xué)習(xí)的各個(gè)方面,試圖找出“這樣設(shè)計(jì)模型/參數(shù)為什么效果更好”,并且為其他從業(yè)者提供更優(yōu)秀的模型,甚至將理論研究向前推進(jìn)一步。 能夠做到這一步的人,可以說(shuō)鳳毛麟角,天賦是繞不過(guò)去的大山,機(jī)遇和努力也缺一不可。
算法改進(jìn)者
他們也許無(wú)法回答出“我的方法為什么work”,也許沒(méi)有Hinton,LeCun那樣足以載入史冊(cè)的重大成果,但是卻能根據(jù)經(jīng)驗(yàn)和一些奇思妙想,將現(xiàn)有的模型玩出更好的效果,或者提出一些改進(jìn)的模型。這些人通常都是各個(gè)機(jī)器學(xué)習(xí)巨頭公司的中堅(jiān)力量或者成長(zhǎng)中的獨(dú)角獸,使用什么模型對(duì)他們來(lái)講也不是問(wèn)題,根據(jù)所處的環(huán)境,通常都有固定的幾個(gè)選擇。在這個(gè)層面,insight和idea才是重要的東西,各種工具的區(qū)別,影響真的沒(méi)那么大??赡軙?huì)讓一個(gè)結(jié)果早得到或者晚得到幾天或者幾周,卻不可能影響“有沒(méi)有成果”。
工業(yè)實(shí)現(xiàn)者
這些人基本上不會(huì)在算法領(lǐng)域涉入太深,也就是了解一下各個(gè)算法的實(shí)現(xiàn),各個(gè)模型的結(jié)構(gòu)。他們更多地是根據(jù)論文去復(fù)現(xiàn)優(yōu)秀的成果,或者使用其他人復(fù)現(xiàn)出來(lái)的成果,并且試圖去在工業(yè)上應(yīng)用它。
對(duì)于大部分IT人來(lái)說(shuō),做到第三類(lèi),也就是工業(yè)實(shí)現(xiàn)這個(gè)層面,已經(jīng)足夠好了,至少,我們已經(jīng)有了親身參與這個(gè)大時(shí)代的機(jī)會(huì),僅就這一點(diǎn)來(lái)說(shuō),便已經(jīng)擊敗了全國(guó)99%的人(斜眼笑的表情)。
不光是普通程序猿這么說(shuō),文藝的程序猿和……額,高大上的程序猿也都這么說(shuō)。
我說(shuō),呵呵。
答案只有一個(gè):Just Do IT(去搞IT吧,少年)
成為人工智能工程師,在我看來(lái),要把機(jī)器學(xué)習(xí)、深度學(xué)習(xí)掌握好,就可以入行拼搏了!另外,理論必須要結(jié)合項(xiàng)目實(shí)戰(zhàn):因?yàn)樽鳛?a target="_blank">程序員,讀十遍書(shū)不如跑一遍程序,與其花費(fèi)大量的時(shí)間去啃書(shū)本,不如親手完成自己的程序并運(yùn)行它。我們?cè)趯?xiě)出代碼的同時(shí),就會(huì)了解到自己還有哪些地方不夠清楚,從而針對(duì)性地學(xué)習(xí)。
02 機(jī)器學(xué)習(xí)入門(mén)
我們先來(lái)說(shuō)說(shuō),機(jī)器學(xué)習(xí)應(yīng)該學(xué)習(xí)哪些。
學(xué)習(xí)任何東西,勿在浮沙筑高臺(tái)(對(duì)這句話(huà)眼熟的請(qǐng)舉手),有一些基礎(chǔ)的知識(shí)還是需要掌握的。例如在計(jì)算機(jī)視覺(jué)領(lǐng)域,根據(jù)我們團(tuán)隊(duì)內(nèi)部培訓(xùn)的經(jīng)驗(yàn),為了能夠獨(dú)立進(jìn)行機(jī)器學(xué)習(xí)的開(kāi)發(fā)工作,最好首先完成這么幾項(xiàng)課程:
入門(mén)機(jī)器學(xué)習(xí)
熟悉機(jī)器學(xué)習(xí)領(lǐng)域的經(jīng)典算法、模型及實(shí)現(xiàn)的任務(wù)等,同時(shí)學(xué)習(xí)搭建和配置機(jī)器學(xué)習(xí)環(huán)境,并學(xué)會(huì)用線(xiàn)性回歸解決一個(gè)實(shí)際問(wèn)題。
Logistic回歸分析、神經(jīng)網(wǎng)絡(luò)、SVM
掌握數(shù)據(jù)集探索;理解分類(lèi)任務(wù)算法(Logistic回歸、神經(jīng)網(wǎng)絡(luò)、SVM)原理;學(xué)會(huì)在scikit-learn框架下采用各分類(lèi)算法分類(lèi)具體任務(wù)。
決策樹(shù)模型與集成學(xué)習(xí)算法
損失函數(shù):信息增益、Gini系數(shù)
劃分:窮舉搜索、近似搜索
正則:L2/L1
預(yù)防過(guò)擬合:預(yù)剪枝及后剪枝;Bagging原理;Boosting原理;
流行的GBDT工具:XGBoost和LightGBM
聚類(lèi)、降維、矩陣分解
主成分分析(PCA);獨(dú)立成分分析(ICA);非負(fù)矩陣分解(NFM);隱因子模型(LFM);KMeans聚類(lèi)和混合高斯模型GMM(EM算法);吸引子傳播聚類(lèi)算法(Affinity Propagation聚類(lèi)算法)
特征工程、模型融合& 推薦系統(tǒng)實(shí)現(xiàn)
學(xué)會(huì)常用數(shù)據(jù)預(yù)處理方法及特征編碼方法;學(xué)習(xí)特征工程的一般處理原則;組合各種特征工程技術(shù)和機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)推薦系統(tǒng)。
上面的課程大概會(huì)消耗你1個(gè)月多的所有業(yè)余時(shí)間。但是相信我,這是值得的。
如果實(shí)在連一兩個(gè)月的業(yè)余時(shí)間都拿不出來(lái),好吧,我來(lái)偷偷告訴你最最最基本的一個(gè)要求,滿(mǎn)足了這個(gè)要求,你就能夠算是機(jī)器學(xué)習(xí)入門(mén)了: 會(huì)算矩陣乘法
矩陣乘法
別笑,說(shuō)正經(jīng)的,在這個(gè)框架高度封裝的年代,梯度不需要自己算,損失不需要自己求,反向傳導(dǎo)更是被處理得妥妥的,在不求甚解的情況下,你甚至只需要知道這么幾個(gè)概念就可以開(kāi)始著手寫(xiě)第一個(gè)程序了:
它就是通過(guò)一系列矩陣運(yùn)算(或者類(lèi)似的一些其他運(yùn)算)將輸入空間映射到輸出空間而已。參與運(yùn)算的矩陣的值稱(chēng)為權(quán)重,是需要通過(guò)不斷迭代來(lái)尋找到最優(yōu)值。
當(dāng)前的權(quán)重值離最優(yōu)值還差多遠(yuǎn),用一個(gè)數(shù)值來(lái)表示,這個(gè)值就叫損失,計(jì)算這個(gè)值的函數(shù)叫損失函數(shù)。
當(dāng)前的權(quán)重值應(yīng)該調(diào)大還是調(diào)小,這個(gè)值通過(guò)對(duì)損失函數(shù)求導(dǎo)來(lái)判斷,這個(gè)求導(dǎo)得到的函數(shù)叫做梯度。
通過(guò)損失和梯度來(lái)更新權(quán)重的方法叫做反向傳導(dǎo)。
迭代的方法稱(chēng)為梯度下降。
雖然這么寫(xiě)出來(lái)的程序一定是不知其所以然,但是其實(shí)20年前我第一次用C++寫(xiě)Hello world的時(shí)候也是一臉懵逼的,我相信,每個(gè)能夠投身機(jī)器學(xué)習(xí)開(kāi)發(fā)工作的程序猿,都是有大毅力大勇氣的,自然不會(huì)欠缺繼續(xù)學(xué)習(xí)的動(dòng)力和決心。
03 深度學(xué)習(xí)入門(mén)
我們?cè)賮?lái)說(shuō)說(shuō),深度學(xué)習(xí)應(yīng)該學(xué)習(xí)哪些。
深度學(xué)習(xí)著重掌握卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),使用大量真實(shí)的數(shù)據(jù)集,結(jié)合實(shí)際場(chǎng)景和案例介紹深度學(xué)習(xí)技術(shù)的應(yīng)用范圍與效果。
神經(jīng)網(wǎng)絡(luò)入門(mén)及深度學(xué)習(xí)環(huán)境配置
熟悉神經(jīng)網(wǎng)絡(luò)領(lǐng)域的常用術(shù)語(yǔ)、安裝并配置深度學(xué)習(xí)框架Tensorflow,學(xué)會(huì)用Tensorflow解決一個(gè)實(shí)際問(wèn)題。
神經(jīng)網(wǎng)絡(luò)基礎(chǔ)及卷積神經(jīng)網(wǎng)絡(luò)原理
使用不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)驗(yàn)證網(wǎng)絡(luò)結(jié)構(gòu)對(duì)效果的影響;了解卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)概念和基礎(chǔ)知識(shí),并通過(guò)實(shí)戰(zhàn)案例理解CNN局部相關(guān)性與權(quán)值共享等特性。
卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)
圖像分類(lèi)及檢測(cè)任務(wù):學(xué)習(xí)圖像分類(lèi)任務(wù)及檢測(cè)任務(wù)目前主要模型算法,并通過(guò)兩個(gè)實(shí)戰(zhàn)案例學(xué)習(xí)在Tensorflow框架下訓(xùn)練CNN模型。
卷積神經(jīng)網(wǎng)絡(luò)之圖像分割實(shí)例
掌握分割任務(wù)簡(jiǎn)介、反卷積(deconv/transpose-conv)、FCN
循環(huán)神經(jīng)網(wǎng)絡(luò)原理
RNN基本原理
門(mén)限循環(huán)單元(GRU)
長(zhǎng)短期記憶單元(LSTM)
詞向量提?。篧ord2Vec
編碼器—解碼器結(jié)構(gòu)
注意力機(jī)制模型:Attention Model
圖片標(biāo)注(Image Captioning)
圖片問(wèn)答(Visual Question Answering)
如何系統(tǒng)學(xué)習(xí)深度學(xué)習(xí) ?90萬(wàn)程序員都在這么做!點(diǎn)我查看
04 進(jìn)階
恭喜,你成為人工智能工程師群中的一員了。
接下來(lái)就可以收集一些自己的數(shù)據(jù),并且訓(xùn)練一些自己的識(shí)別引擎;或者嘗試著優(yōu)化這個(gè)模型,感受一下所謂調(diào)參黨的痛苦;又或者直接嘗試實(shí)現(xiàn)ResNet、Inception這些更為先進(jìn)的網(wǎng)絡(luò)來(lái)刷刷Cifar;再不然可以嘗試著向NLP或者強(qiáng)化學(xué)習(xí)方向去學(xué)習(xí)一下??傊?,這些事情遠(yuǎn)沒(méi)有看起來(lái)那么難。
當(dāng)然,不論那條路,學(xué)習(xí),進(jìn)步和自我鞭策都是逃避不掉的必修課。一個(gè)新生的領(lǐng)域,勃勃的生機(jī)必然也意味著新成果的層出不窮。完成我上面提到的三門(mén)課程只能讓一個(gè)人從門(mén)外漢變成圈里人,有了進(jìn)入這個(gè)領(lǐng)域,趕上這波浪潮的基本資格,至于到底是成為弄潮兒還是直接被大浪吞沒(méi),還是那句話(huà),不勞苦必然無(wú)所得。努力學(xué)習(xí)不一定能修成正果,而不去努力學(xué)習(xí),則注定是一無(wú)所獲。
最后,祝福,祝福各位能在A(yíng)I領(lǐng)域里大放異彩。
-
工程師
+關(guān)注
關(guān)注
59文章
1565瀏覽量
68411 -
AI
+關(guān)注
關(guān)注
87文章
29861瀏覽量
268152
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論