###1.前言 — 程序員是一個(gè)知識更新較為迅速的一個(gè)職業(yè)唱蒸,這個(gè)行業(yè)的知識的更新速度,有的時(shí)候會(huì)超過你的學(xué)習(xí)速度。大部分的人都在不斷的更新自己的知識體系旗闽,這里筆者要向讀者安利一下機(jī)器學(xué)習(xí)(包含深度學(xué)習(xí))的重要性,以及常見的知識蜜另。作為個(gè)人能力的提升适室,筆者覺得這一點(diǎn)是程序猿/媛,需要掌握的一想技能举瑰。 其實(shí)在互聯(lián)網(wǎng)公司工作過的同學(xué)都應(yīng)該有這樣的感觸捣辆,我們正在從IT到DT的轉(zhuǎn)型,算法在應(yīng)用中變得越來越重要了此迅。
處在向DT轉(zhuǎn)型中的我們也就理所當(dāng)然的需要掌握DT的核心——算法汽畴。外界將大數(shù)據(jù)吵得如火如荼,但對于業(yè)內(nèi)人來說耸序,這些東西只是吵概念而已忍些,簡單的大數(shù)據(jù)是沒有太大意義的,數(shù)據(jù)就好比是發(fā)動(dòng)機(jī)運(yùn)轉(zhuǎn)需要的燃料佑吝,而算法則是發(fā)動(dòng)機(jī)坐昙。只有有了發(fā)動(dòng)機(jī)數(shù)據(jù)才能發(fā)揮它的價(jià)值。就像石油已經(jīng)在地下沉睡千萬年芋忿,在發(fā)動(dòng)機(jī)產(chǎn)生前并沒有人認(rèn)識到它的價(jià)值炸客,但發(fā)動(dòng)機(jī)產(chǎn)生后疾棵,石油才成為像黃金一樣珍貴的東西。所以我們必須掌握算法知識才能更好的駕馭DT這輛戰(zhàn)車痹仙。
然而在實(shí)際的工作中所謂的算法工程師是尔,實(shí)際上大部分應(yīng)該叫做“算法應(yīng)用工程師”,很少有算法工程師能夠產(chǎn)生自己的算法开仰。我這么說肯定有人要拍磚拟枚,但實(shí)際上確實(shí)是這樣的。比如做一些分類問題用邏輯回歸众弓、SVM等常用算法恩溅,對于一些復(fù)雜問題,如圖像分類用CNN處理谓娃,稍微復(fù)雜一點(diǎn)的NLP問題用RNN處理脚乡。很多算法工程師日常工作大部分用在數(shù)據(jù)處理、訓(xùn)練數(shù)據(jù)集選擇滨达、校驗(yàn)數(shù)據(jù)集選擇等奶稠,不斷的調(diào)節(jié)參數(shù)從而獲得較好的效果。這里不是詆毀那些努力工作的算法同學(xué)捡遍,我在研究生的時(shí)候也是搞機(jī)器學(xué)習(xí)的锌订,工作后,先搞工程画株、又混合著搞算法辆飘,如分類問題,類目映射(將A網(wǎng)站的商品映射到B網(wǎng)站的類目下)谓传、接著搞NLP(基于RNN和CRF做slotfilling)…劈猪,接著又搞工程…。我想說的是算法沒我們認(rèn)為的那么復(fù)雜良拼,但實(shí)際上又遠(yuǎn)比我們認(rèn)識的復(fù)雜。
為什么說算法不復(fù)雜卻又很復(fù)雜充边?其實(shí)這并不矛盾庸推。說其不復(fù)雜是因?yàn)槲覀儾槐赝耆莆毡澈髲?fù)雜的公式推導(dǎo),只需要知道背后的物理意義浇冰、知道響應(yīng)的算法或模型適合處理的問題贬媒、知道如何調(diào)節(jié)相關(guān)的參數(shù)等即可。說其復(fù)雜是因?yàn)楸澈蟮耐茖?dǎo)確實(shí)很麻煩肘习,就拿常用的SVM算法來說际乘,讀書的時(shí)候硬生生的是照著PPT推導(dǎo)了一周才推導(dǎo)成功(也反映出自己數(shù)學(xué)基礎(chǔ)有點(diǎn)渣)…。繼續(xù)說復(fù)雜性漂佩,要非常純熟的掌握相應(yīng)算法的核心脖含,需要對線性代數(shù)罪塔、概率、微積分等重要的數(shù)學(xué)知識掌握和理解的較為透徹养葵。這里不得不說我們的大學(xué)里相關(guān)的數(shù)學(xué)教育征堪,感覺線性代數(shù)、概率关拒、微積分講得不徹底佃蚜,只是學(xué)了知識點(diǎn)但背后的物理意義卻沒能講清楚,比如矩陣相關(guān)運(yùn)算的物理意義就是在實(shí)際的算法中才體會(huì)到的着绊,數(shù)學(xué)真應(yīng)該讓計(jì)算機(jī)老師來講谐算。話說的有點(diǎn)多,但對于程序員來說我覺得數(shù)學(xué)知識必須要學(xué)的扎實(shí)归露,特別對于學(xué)校中的學(xué)生來說洲脂,其他課程可以不太用心,但數(shù)學(xué)相關(guān)必須牢牢地掌握靶擦,要用心腮考,特別要掌握其背后的物理意義。
為什么我們要掌握算法呢玄捕?首先感覺是因?yàn)榄h(huán)境的變化踩蔚,因?yàn)樗惴ㄗ兊迷絹碓街匾缰暗男侣劊?a target="_blank" rel="nofollow">谷歌轉(zhuǎn)型:把2.5萬工程師變成機(jī)器學(xué)習(xí)專家枚粘,google都已經(jīng)走在前列了馅闽,也足見機(jī)器學(xué)習(xí)越來越重要了。現(xiàn)在很多產(chǎn)品馍迄,工程只是對算法進(jìn)行包裝福也,很多產(chǎn)品的核心是算法,如滴滴攀圈、Uber暴凑。
其次,工程師懂算法赘来,真的有點(diǎn)像流氓會(huì)武術(shù)现喳,誰也攔不住了。一方面增加自己的核心競爭力犬辰,另一方面在團(tuán)隊(duì)溝通的時(shí)候也更加方便嗦篱。很多算法工程師的架構(gòu)、系統(tǒng)能力不足幌缝,如果工程師懂得算法灸促,那么可以和算法同學(xué)順暢溝通,有助于產(chǎn)品或項(xiàng)目的實(shí)現(xiàn)。
最后浴栽,對于在校生荒叼、再找工作、畢業(yè)生或者剛工作的同學(xué)吃度,能夠掌握機(jī)器學(xué)習(xí)的基本知識能夠增加你的核心競爭力甩挫,在競爭面前更容易脫穎而出(特別是在面試的時(shí)候,不一定要有實(shí)戰(zhàn)經(jīng)驗(yàn)椿每,你能講的清楚也是很不錯(cuò)的)伊者。
總之,個(gè)人覺得间护,對于工程師而言亦渗,學(xué)習(xí)機(jī)器學(xué)習(xí)相關(guān)算法是提升個(gè)人核心競爭力的重要一步。那么接下來筆者就在這里進(jìn)一步闡述作為工程師應(yīng)該掌握哪些相關(guān)算法汁尺、如何去學(xué)習(xí)相關(guān)算法现拒。
###2.基礎(chǔ)知識 — #####2.1 線性代數(shù)基礎(chǔ)知識 個(gè)人覺得線性代數(shù)知識是在工作中用的最廣的大學(xué)知識往枣,特別是矩陣相關(guān)知識在實(shí)際應(yīng)用中使用最為廣泛刑巧。但從個(gè)人經(jīng)驗(yàn)看顽照,很多畢業(yè)生對于線性代數(shù)特別是矩陣相關(guān)知識掌握的很膚淺,對矩陣的理解很不到位辽装,曾經(jīng)問過一些畢業(yè)生帮碰,對于矩陣的SVD很多人會(huì)解,但背后的物理意義卻模糊不清拾积。 講義鏈接:[Linear Algebra Review and Reference](http://ai-coder.com/batbus/pdf/cs229-linalg.pdf) #####2.2 概率基礎(chǔ)知識 概率知識是也是實(shí)際工作中使用較為廣泛的知識殉挽,從BAT的筆試題中可以看出,概率計(jì)算基本是逢考比用的拓巧。其中較為常用的就是貝葉斯定理了斯碌,在復(fù)習(xí)這部分的知識的時(shí)候,一定要弄清楚相關(guān)定理的前置條件肛度。 講義鏈接:[Review of Probability Theory](http://ai-coder.com/batbus/pdf/cs229-prob.pdf) #####2.3 凸優(yōu)化 在許多機(jī)器學(xué)習(xí)算法中傻唾,我們最終是求一個(gè)目標(biāo)函數(shù)的最大值或最小值,很多時(shí)候這種問題最終歸咎為目標(biāo)函數(shù)的優(yōu)化問題承耿,實(shí)質(zhì)是一種凸優(yōu)化問題策吠,所以讀者需要掌握一些凸優(yōu)化問題的基礎(chǔ)知識。 講義鏈接:[Convex Optimization Overview](http://ai-coder.com/batbus/pdf/cs229-cvxopt.pdf) ######注:講義來源于Stanford深度學(xué)習(xí)與NLP課程前置基礎(chǔ)知識 — ###3.應(yīng)該了解哪些算法 這里不會(huì)對相關(guān)的算法做展開瘩绒,只想從個(gè)人轉(zhuǎn)型的經(jīng)歷向讀者闡述,應(yīng)該掌握哪些常見的機(jī)器學(xué)習(xí)算法带族,以及學(xué)習(xí)中應(yīng)該注意的事項(xiàng)锁荔。相關(guān)的算法以及有很多博客可以參考,但個(gè)人覺得還是要先讀一遍原論文,讀不懂沒關(guān)系阳堕,能理解多少理解多少跋理,再參考別人寫的解釋理解一遍。如果直接讀別人的博客恬总,有可能被誤導(dǎo)前普,之后再反過頭來再讀一讀原論文,這樣感覺理解的能好一些壹堰。當(dāng)然也推薦大家直接學(xué)習(xí)Andrew Ng的公開課拭卿,講的比較容易懂。而且已經(jīng)好幾年了贱纠,相關(guān)的討論峻厚、講義標(biāo)注都很全面了,對于初學(xué)者來說是一個(gè)好的學(xué)習(xí)資源谆焊。 — ####3.1 常見的特征提取方法 其實(shí)特征選擇(提取)是作為監(jiān)督學(xué)習(xí)中特別重要的一個(gè)環(huán)節(jié)惠桃。往往我們要處理的問題可能供處理的特征特別多,我們減少特征的數(shù)量辖试,比如圖像處理辜王,如果完全用像素,對于一張1000*1000的圖片罐孝,那么特征就是一個(gè)1000*1000這種高維的特征呐馆,我們需要降低這個(gè)特征的維度,這個(gè)過程就叫做特征提取(選擇)肾档。對于圖像我們常用sift特征摹恰。常用的降維方法包括(個(gè)人常用): ######1.PCA(主成分分析) 這是一種無監(jiān)督的降維方法,準(zhǔn)確的說應(yīng)該是一種空間映射方法怒见,PCA一次尋找一組正交的映射空間俗慈,并且使得能夠在這個(gè)映射空間上方差最大。這個(gè)方法使用的頻率較高遣耍,也比較典型闺阱,比較容易掌握。一般的教材書中都有相關(guān)的介紹舵变,在Andrew Ng的課程中有相關(guān)介紹酣溃,可以直接學(xué)習(xí)。 ######2.基于樹的方法 這里嗎需要讀者理解一些常用的概念如”熵”纪隙,”信息增益”等赊豌,基于樹的方法,可以通過剪枝的方式來去掉那些對于結(jié)果沒什么大的影響的特征绵咱。這里面對于”熵”的理解碘饼,要強(qiáng)調(diào)一下,”熵”可以理解為不確定性,你可以認(rèn)為是”商量”,熵越大艾恼,不確定性越高住涉,就越需要”商量”,越小,代表確定性越高钠绍。關(guān)于樹的相關(guān)方法舆声,在國內(nèi)的機(jī)器學(xué)習(xí)教材中都有明確的闡釋。
######3.SVD(矩陣分解) 矩陣分解這是機(jī)器學(xué)習(xí)里面非常重要的一個(gè)線性代數(shù)知識柳爽,能夠很好的起到降維的效果媳握。在自然語言處理中較為常用。比如X是word->document的矩陣泻拦,關(guān)于SVD雖然在公開課中有講解毙芜,但感覺還是語言的理解有問題,理解的不是很透徹争拐,發(fā)現(xiàn)這個(gè)哥們寫的相關(guān)機(jī)器學(xué)習(xí)的博客講的還都比較通透腋粥,所以讀者可以參考他的這篇博文理解一下。
相關(guān)博文:強(qiáng)大的矩陣奇異值分解
####3.2 常用機(jī)器學(xué)習(xí)算法 這里面會(huì)向讀者介紹一下工作中常用的相關(guān)機(jī)器學(xué)習(xí)算法架曹,當(dāng)然這里也不會(huì)詳細(xì)解釋隘冲,這里只是告訴讀者存在并且常用這些算法,筆試和面試中往往會(huì)考察面試者對于這些知識的掌握绑雄。對于如何學(xué)習(xí)展辞,筆者覺得最好優(yōu)先讀paper,再看看公開課和相關(guān)博客万牺。 ##### 3.2.1 常見聚類算法 聚類算法是我們常用的算法其思想比較容易理解罗珍,符合大腦處理問題的思維邏輯。我們常見的聚類算法包括Kmeans脚粟、EM算法等覆旱,下面簡單羅列一下: SimpleKmeans算法:接受輸入?yún)?shù)K,然后將數(shù)據(jù)集劃分為K歌聚簇核无,同一個(gè)聚簇中的相似度較高扣唱,不同聚簇的相似度較小。 Xmeans算法:Kmeans的改進(jìn)团南,在總體中通過Kmeans產(chǎn)生聚類噪沙,再分別對每個(gè)聚類進(jìn)行Kmeas的迭代,將某些子類進(jìn)行聚類吐根,直到達(dá)到用戶設(shè)定的次數(shù)為止正歼。 EM算法:期望最大化算法(Expectation Maximization Algorithm),是一種迭代算法拷橘,用于含有隱變量(hidden variable)的概率參數(shù)模型的最大似然估計(jì)或極大后驗(yàn)概率估計(jì)朋腋。這里需要說下齐疙,EM算法背后的理論、推導(dǎo)最好好好掌握旭咽,這個(gè)掌握了,大部分的推導(dǎo)和理論基本都cover了赌厅。 相關(guān)博文:[常用聚類算法介紹之聚類種類和算法列表](http://ai-coder.com/batbus/html/blog_detail.php?blog_id=250) ##### 3.2.2 常見分類穷绵、回歸算法 分類和回歸問題,其實(shí)可以拿到一起來講特愿。如果我的問題最終是要將待處理的數(shù)據(jù)明確分為若干類別(常用的有二元分類仲墨、多元分類),那么就是分類問題揍障,如果最終需要映射到一個(gè)數(shù)值區(qū)間目养,那么就是回歸問題,比如預(yù)測一個(gè)人犯罪的概率毒嫡,如果需要判斷是否犯罪癌蚁,那么就是一個(gè)分類問題(是和否),如果要給個(gè)概率那么就是一個(gè)回歸問題。 這里面我們常用的算法有SVM兜畸、LR努释、隨機(jī)森林、樸素貝葉斯咬摇。 線性回歸(Linear Regression):結(jié)果易于理解伐蒂,計(jì)算上不復(fù)雜,但對非線性數(shù)據(jù)擬合不好肛鹏。應(yīng)該是線上應(yīng)用最為廣泛的模型逸邦,簡約而不簡單,更重要的是快在扰!LR的推導(dǎo)是必須要掌握的缕减! SVM:通俗的講,SVM是一種二類分類模型健田,其模型的定義為特征空間上的間隔最大的線性分類器烛卧。其學(xué)習(xí)策略是使得間隔最大化,最終可以轉(zhuǎn)化為凸優(yōu)化問題妓局。簡單的理解就是总放,在低維空間中難以劃分的問題,將其映射到一個(gè)高維空間好爬,在高維空間使得數(shù)據(jù)可以線性劃分局雄。 樸素貝葉斯:樸素貝葉斯是貝葉斯理論的一部分,是一種概率模型存炮,即選擇較高概率的決策炬搭。其前置條件是: (1)每個(gè)特征之間相互獨(dú)立蜈漓。 (2)每個(gè)特征同等重要。 在數(shù)據(jù)較少的情況下仍然有效宫盔,可以處理多類別問題融虽。但對于輸入數(shù)據(jù)較為敏感。 隨機(jī)森林(Random Forest):隨機(jī)森林比較適合做多分類問題灼芭,其優(yōu)點(diǎn)是: 訓(xùn)練和預(yù)測速度快有额; 對訓(xùn)練數(shù)據(jù)的容錯(cuò)能力好; 實(shí)現(xiàn)簡單且易并行 當(dāng)數(shù)據(jù)集中有大比例的數(shù)據(jù)缺失時(shí)仍然可以保持精度不變和能夠有效地處理大的數(shù)據(jù)集彼绷;可以處理沒有刪減的成千上萬的變量巍佑;能夠在分類的過程中可以生成一個(gè)泛化誤差的內(nèi)部無偏估計(jì);能夠檢測到特征之間的相互影響以及重要性程度寄悯。但容易出現(xiàn)過度擬合萤衰。 實(shí)際上該算法實(shí)際上可以理解為專投票算法,一個(gè)森林可以拆解成很多樹猜旬,每個(gè)樹都是一個(gè)決策算法脆栋,可以理解成一個(gè)領(lǐng)域?qū)<遥姸鄬<医M合成一個(gè)森林昔馋,對于待處理的問題筹吐,專家組進(jìn)行投票,最終少數(shù)服從多數(shù)秘遏,由票數(shù)決定結(jié)果丘薛。 ####3.3 深度學(xué)習(xí)相關(guān)算法 深度學(xué)習(xí)是近幾年較為火的一種學(xué)習(xí)方式,目前在實(shí)際工作中使用的越來越廣邦危,往往不需要較為復(fù)雜的調(diào)優(yōu)就能達(dá)到其他常用的調(diào)優(yōu)過后的機(jī)器學(xué)習(xí)算法達(dá)到的水平洋侨,也就是說,他的baseline很高倦蚪,隨著向caffee希坚、tensorflow等框架使用的推廣,這些深度模型實(shí)現(xiàn)起來越來越簡單陵且,所以工程師就越來越有必要掌握這些深度學(xué)習(xí)算法裁僧。你可以在機(jī)器上安裝tensorflow就能夠嘗試在本機(jī)上進(jìn)行手寫體識別、word2Vector訓(xùn)練等慕购,趕緊動(dòng)起來吧聊疲。 關(guān)于學(xué)習(xí),可以參考Stanford深度學(xué)習(xí)和NLP的公開課沪悲,講的還比較透徹获洲,但需要讀者掌握在文章第二部分提到的一些數(shù)學(xué)知識。 ##### 3.3.1 RNN(Recursive Neural Network) RNN是較為常用的深度模型殿如,常用的有兩種變體贡珊,一種是時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent neural network)最爬,另一種是結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò)(Recursive neural network)。時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)的神經(jīng)元間連接構(gòu)成有向圖门岔,而結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò)利用相似的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)遞歸構(gòu)造更為復(fù)雜的深度網(wǎng)絡(luò)爱致。兩者訓(xùn)練的算法不同,但屬于同一算法變體寒随。 Recurrent是在時(shí)間維度的展開蒜鸡,能夠有效的表示信息在時(shí)間維度上從前往后的的傳遞和積累,你可以和馬爾科夫鏈做類比牢裳。 Recursive是在空間維度的展開,你可以認(rèn)為他是一種結(jié)構(gòu)上遞歸的結(jié)構(gòu)叶沛,對應(yīng)為棵樹蒲讯。在NLP領(lǐng)域用的較為廣泛,能夠很好的提取出結(jié)構(gòu)信息灰署,其示意圖如下
二相比之下時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)如下:
##### 3.3.2 RNN(Recurrent Neural Network) 常見的示意圖如下所示判帮,其核心就是每輪的運(yùn)算都充分結(jié)合上一輪的迭代結(jié)果。
目前最為常見的時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)就是LSTM(Long-Short-Term-Memories)溉箕。按照時(shí)間序列進(jìn)行展開如下圖
由上圖可見一般包括書入門晦墙、忘記門、輸出門肴茄,能夠很好的學(xué)習(xí)當(dāng)前特征同時(shí)兼顧上下文信息晌畅。目前較多的用于NLP范疇,其能夠較好的保留上下文信息寡痰,這樣在語義理解抗楔、摘要生成、情感分析等問題處理上都能得到一個(gè)較好的結(jié)果拦坠。
讀者可以不去掌握其復(fù)雜的推導(dǎo)连躏,但其背后的物理意義、這種思想是必須掌握的贞滨,應(yīng)用的時(shí)候入热,大部分都是利用現(xiàn)有框架去處理。所以這里再強(qiáng)調(diào)一遍晓铆,如果精力有限那么就要重其意勺良。
3.3.3 RNN模型比較
其實(shí)兩種模型的區(qū)別在3.3.1中已經(jīng)做了區(qū)分,這里按照Stanford深度學(xué)習(xí)和NLP課程中所述進(jìn)行一下模型對比尤蒿。
Recursive Neural Network:在語言層解釋性較好郑气,能夠保留骨干信息,可應(yīng)用在句法分析腰池、短語識別尾组。
Recurrent Neural Network: 在語意上解釋性較好忙芒,很多人利用其做了很多好玩的,如自動(dòng)寫詩之類的讳侨,訓(xùn)練是一個(gè)個(gè)字符的讀取后訓(xùn)練呵萨。通常情況下雖然不是最好的結(jié)果,但是結(jié)果也不差跨跨,特別是在引入了”門”之后潮峦,提示較為明顯。
3.3.4 CNN(Convolutional Neural network)
卷積神經(jīng)網(wǎng)絡(luò)由于避免了對圖像的復(fù)雜前期預(yù)處理勇婴,可以直接輸入原始圖像(需要尺寸format處理)忱嘹,因而得到了更為廣泛的應(yīng)用。
一般地耕渴,CNN的基本結(jié)構(gòu)包括兩層拘悦,其一為特征提取層,每個(gè)神經(jīng)元的輸入與前一層的局部接受域相連橱脸,并提取該局部的特征础米。一旦該局部特征被提取后,它與其它特征間的位置關(guān)系也隨之確定下來添诉;其二是特征映射層屁桑,網(wǎng)絡(luò)的每個(gè)計(jì)算層由多個(gè)特征映射組成,每個(gè)特征映射是一個(gè)平面栏赴,平面上所有神經(jīng)元的權(quán)值相等蘑斧。
CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形艾帐。由于CNN的特征檢測層通過訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí)乌叶,所以在使用CNN時(shí),避免了顯示的特征抽取柒爸,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí)准浴。
這里讀者需要掌握卷積的物理意義、全鏈接和局部鏈接捎稚、知道為什么要池化乐横、常見的池化方法等,這樣對CNN就基本掌握了今野,剩下的就是應(yīng)用了葡公。
4.總結(jié)
無論是學(xué)士還是已經(jīng)工作的工程師,掌握一些機(jī)器學(xué)習(xí)算法条霜,對于自己都是增加了自己的核心競爭力催什,在DT轉(zhuǎn)型的過程中,會(huì)讓自己走的更遠(yuǎn)宰睡。如今無論是Google蒲凶、微軟還是Amazon都在開放自己的機(jī)器學(xué)習(xí)平臺气筋,阿里云上的機(jī)器學(xué)習(xí)平臺也可以直接使用,這些平臺的開放大大降低了我們對于算法的使用難度旋圆,我們無需向那些真正的算法專家一樣去發(fā)明算法宠默,只要我們知其然、也知其所以然灵巧,就能夠利用這些知識去解決實(shí)際問題搀矫。
對于還在學(xué)校里學(xué)習(xí)的同學(xué)要充分利用自己的時(shí)間,在數(shù)學(xué)基礎(chǔ)上打撈刻肄,對常用的機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)算法都有所掌握瓤球。對于開源的tensorflow、caffee等代表性平臺和框架敏弃,要勇于嘗試冰垄,在未來的筆試和面試中一定會(huì)脫穎而出的。