人工智能學(xué)習(xí)路線

????????學(xué)好人工智能并非易事,需要循序漸進(jìn),階段性的學(xué)習(xí),先入門后進(jìn)階,一步一腳印,那么怎樣的 學(xué)習(xí)路線適合初級(jí)者,下面簡(jiǎn)單分享:

????????分為五個(gè)階段:

第一階段:數(shù)學(xué)包括三科,也都是考研的三科:高等數(shù)學(xué)/線性代數(shù)/概率論;

第二階段:編程python工具庫(kù)實(shí)戰(zhàn)/python網(wǎng)絡(luò)爬蟲;

第三階段:機(jī)器學(xué)習(xí)也就是基礎(chǔ)知識(shí),機(jī)器學(xué)習(xí)導(dǎo)論,機(jī)器學(xué)習(xí)入門/機(jī)器學(xué)習(xí)提升;

第四階段:數(shù)據(jù)挖掘?qū)崙?zhàn),只有掌握了數(shù)據(jù)挖掘處理,才能知道機(jī)器如何處理大數(shù)據(jù)的數(shù)據(jù)挖掘入門/數(shù)據(jù)分析實(shí)戰(zhàn);

第五階段:深度學(xué)習(xí),深度學(xué)習(xí)神經(jīng)算法、深度學(xué)習(xí)網(wǎng)絡(luò)與框架/深度學(xué)習(xí)項(xiàng)目實(shí)戰(zhàn)。

具體的學(xué)習(xí),可以按照以下7方面:

1.學(xué)習(xí)或者回憶一些數(shù)學(xué)知識(shí)

因?yàn)橛?jì)算機(jī)能做的就只是計(jì)算,所以人工智能更多地來說還是數(shù)學(xué)問題[1]。我們的目標(biāo)是訓(xùn)練出一個(gè)模型,用這個(gè)模型去進(jìn)行一系列的預(yù)測(cè)。于是,我們將訓(xùn)練過程涉及的過程抽象成數(shù)學(xué)函數(shù):首先,需要定義一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),相當(dāng)于定義一種線性非線性函數(shù);接著,設(shè)定一個(gè)優(yōu)化目標(biāo),也就是定義一種損失函數(shù)(loss function)。

而訓(xùn)練的過程,就是求解最優(yōu)解及次優(yōu)解的過程。在這個(gè)過程中,我們需要掌握基本的概率統(tǒng)計(jì)、高等數(shù)學(xué)、線性代數(shù)等知識(shí),如果學(xué)過就最好,沒學(xué)過也沒關(guān)系,僅僅知道原理和過程即可,有興趣的讀者可以涉獵一些推導(dǎo)證明。

2.掌握經(jīng)典機(jī)器學(xué)習(xí)理論與基本算法

這些基本算法包括支持向量機(jī)、邏輯回歸、決策樹、樸素貝葉斯分類器、隨機(jī)森林、聚類算法、協(xié)同過濾、關(guān)聯(lián)性分析、人工神經(jīng)網(wǎng)絡(luò)和BP算法、PCA、過擬合與正則化等。[2]

在本書“實(shí)戰(zhàn)篇”的第8章到第13章的例子中也有貫穿這些算法知識(shí),保證讀者可以用它寫出一個(gè)小的TensorFlow程序。

3.掌握一種編程工具(語(yǔ)言)

Python語(yǔ)言是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語(yǔ)言。Python是很多新入門的程序員的入門編程語(yǔ)言,也是很多老程序員后來必須掌握的編程語(yǔ)言。我們需要重點(diǎn)掌握使用線性代數(shù)庫(kù)和矩陣的操作,尤其是Numpy、Pandas第三方庫(kù),也要多試試機(jī)器學(xué)習(xí)的庫(kù),如sklearn,做一些SVM及邏輯回歸的練習(xí)。這對(duì)直接上手寫TensorFlow程序大有裨益。

有些工業(yè)及學(xué)術(shù)領(lǐng)域的讀者還可能擅長(zhǎng)MATLAB或R,其實(shí)現(xiàn)算法的思想和Python也很類似。

同時(shí)考慮到許多讀者是使用C++、Java、Go語(yǔ)言的,TensorFlow還提供了和Python“平行語(yǔ)料庫(kù)”的接口。雖然本書是主要是基于Python講解的,對(duì)于其他語(yǔ)言的原理和應(yīng)用API也都非常類似,讀者把基礎(chǔ)掌握后,只需要花很短的時(shí)間就能使用自己擅長(zhǎng)的語(yǔ)言開發(fā)。另外對(duì)于Java語(yǔ)言的同學(xué),本書第18章會(huì)講解TensorFlowOnSpark,第19章會(huì)講到TensorFlow的移動(dòng)端開發(fā)。

4.研讀經(jīng)典論文,關(guān)注最新動(dòng)態(tài)和研究成果

一些經(jīng)典論文是必讀的。例如,要做手寫數(shù)字識(shí)別,若采用LeNet,要先閱讀一下LeNet的學(xué)術(shù)論文;要做物體目標(biāo)檢測(cè)的訓(xùn)練,若選定MSCNN框架,可以先讀MSCNN相關(guān)的論文。那么,論文從哪里找呢?那么多論文應(yīng)該讀哪篇呢?

下面以GoogleNet的TensorFlow實(shí)現(xiàn)為例。在GitHub[3]上,一般在開頭的描述中就會(huì)說明這個(gè)模型所依據(jù)的論文,如圖所示。

順著這篇論文閱讀,可以大致了解這個(gè)網(wǎng)絡(luò)的實(shí)現(xiàn)原理,對(duì)迅速上手應(yīng)用有很大的作用。同時(shí),我在第6章也會(huì)對(duì)LeNet、AlexNet、ResNet這幾個(gè)常見的網(wǎng)絡(luò)進(jìn)行講解,幫助讀者舉一反三。

很多做模式識(shí)別的工作者之所以厲害,是因?yàn)樗麄冇羞^很多、很深的論文積累,對(duì)模型的設(shè)計(jì)有很獨(dú)到的見解,而他們可能甚至一行代碼也不會(huì)寫,而工程(寫代碼)能力在工作中很容易訓(xùn)練。許多工程方向的軟件工程師,工作模式常常在實(shí)現(xiàn)業(yè)務(wù)邏輯和設(shè)計(jì)架構(gòu)系統(tǒng)上,編碼能力很強(qiáng),但卻缺少論文積累。同時(shí)具有這兩種能力的人,正是硅谷一些企業(yè)目前青睞的人才。

讀者平時(shí)還可以閱讀一些博客、筆記,以及微信公眾號(hào)、微博新媒體資訊等,往往一些很流行的新訓(xùn)練方法和模型會(huì)很快在這些媒體上發(fā)酵,其訓(xùn)練神經(jīng)網(wǎng)絡(luò)采用的一些方法可能有很大的啟發(fā)性。

5.自己動(dòng)手訓(xùn)練神經(jīng)網(wǎng)絡(luò)

接著,就是要選擇一個(gè)開源的深度學(xué)習(xí)框架。選擇框架時(shí)主要考慮哪種框架用的人多。人氣旺后,遇到問題很容易找到答案;GitHub上關(guān)于這個(gè)框架的項(xiàng)目和演示會(huì)非常多;相關(guān)的論文也會(huì)層出不窮;在各個(gè)QQ群和微信群的活躍度會(huì)高;雜志、公眾號(hào)、微博關(guān)注的人也會(huì)很多;行業(yè)交流和技術(shù)峰會(huì)討論的話題也多;也能享受到國(guó)內(nèi)外研究信息成果的同步。

目前這個(gè)階段,TensorFlow因?yàn)楸晨抗雀韫具@座靠山,再加上擁有龐大的開發(fā)者群體,而且采用了稱為“可執(zhí)行的偽代碼”的Python語(yǔ)言,更新和發(fā)版速度著實(shí)非???。目前TensorFlow已經(jīng)升級(jí)到1.0版,在性能方面也有大幅度提高,而且新出現(xiàn)的Debugger、Serving、XLA特性也是其他框架所不及的。此外,一些外圍的第三方庫(kù)(如Keras、TFLearn)也基于它實(shí)現(xiàn)了很多成果,并且Keras還得到TensorFlow官方的支持。TensorFlow支持的上層語(yǔ)言也在逐漸擴(kuò)大,對(duì)于不同工程背景的人轉(zhuǎn)入的門檻正在降低。

在GitHub[4]上有一個(gè)關(guān)于各種框架的比較,從建模能力、接口、模型部署、性能、架構(gòu)、生態(tài)系統(tǒng)、跨平臺(tái)等7個(gè)方面進(jìn)行比較,TensorFlow也很占綜合優(yōu)勢(shì)。截至2017年1月,TensorFlow的star數(shù)已經(jīng)超過了其他所有框架的總和,如圖1-8所示。

因此,從目前來看,投身TensorFlow是一個(gè)非常好的選擇,掌握TensorFlow在找工作時(shí)是一個(gè)非常大的加分項(xiàng)。

接下來就是找一個(gè)深度神經(jīng)網(wǎng)絡(luò),目前的研究方向主要集中在視覺和語(yǔ)音兩個(gè)領(lǐng)域。初學(xué)者最好從計(jì)算機(jī)視覺入手,因?yàn)樗幌裾Z(yǔ)音等領(lǐng)域需要那么多的基礎(chǔ)知識(shí),結(jié)果也比較直觀。例如,用各種網(wǎng)絡(luò)模型來訓(xùn)練手寫數(shù)字(MNIST)及圖像分類(CIFAR)的數(shù)據(jù)集。

6.深入感興趣或者工作相關(guān)領(lǐng)域

人工智能目前的應(yīng)用領(lǐng)域很多,主要是計(jì)算機(jī)視覺和自然語(yǔ)言處理,以及各種預(yù)測(cè)等。對(duì)于計(jì)算機(jī)視覺,可以做圖像分類、目標(biāo)檢測(cè)、視頻中的目標(biāo)檢測(cè)等;對(duì)于自然語(yǔ)言處理,可以做語(yǔ)音識(shí)別、語(yǔ)音合成、對(duì)話系統(tǒng)、機(jī)器翻譯、文章摘要、情感分析等,還可以結(jié)合圖像、視頻和語(yǔ)音,一起發(fā)揮價(jià)值。

更可以深入某一個(gè)行業(yè)領(lǐng)域。例如,深入醫(yī)學(xué)行業(yè)領(lǐng)域,做醫(yī)學(xué)影像的識(shí)別;深入淘寶的穿衣領(lǐng)域,做衣服搭配或衣服款型的識(shí)別;深入保險(xiǎn)業(yè)、通信業(yè)的客服領(lǐng)域,做對(duì)話機(jī)器人的智能問答系統(tǒng);深入智能家居領(lǐng)域,做人機(jī)的自然語(yǔ)言交互;等等。

7.在工作中遇到問題,重復(fù)前六步

在訓(xùn)練中,準(zhǔn)確率、壞案例(bad case)、識(shí)別速度等都是可能遇到的瓶頸。訓(xùn)練好的模型也不是一成不變的,需要不斷優(yōu)化,也需要結(jié)合具體行業(yè)領(lǐng)域和業(yè)務(wù)進(jìn)行創(chuàng)新,這時(shí)候就要結(jié)合最新的科研成果,調(diào)整模型,更改模型參數(shù),一步步更好地貼近業(yè)務(wù)需求。

以上學(xué)習(xí)路線雖然有點(diǎn)復(fù)雜,但堅(jiān)信世上無難事,只怕有心人。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容