return 'haha,往下繼續(xù)看'

回到筆者,一名普普通通的程序員,當(dāng)初也是誤打誤撞學(xué)習(xí)Python入門到機(jī)器學(xué)習(xí)、深度學(xué)習(xí),至今有4個(gè)年頭,踩了很多坑,下文說到的學(xué)習(xí)方法、路徑也就填坑試錯(cuò)的經(jīng)驗(yàn)罷了。

一、學(xué)習(xí)方法

說到學(xué)習(xí)方法,其實(shí)我們談到的人工智能之所以智能,核心在于有學(xué)習(xí)能力。而人工智能學(xué)習(xí)過程有兩個(gè)要素:

1、學(xué)習(xí)目標(biāo)是什么?(——什么目標(biāo)函數(shù))

2、如何達(dá)到目標(biāo)?(——什么算法)

人工智能領(lǐng)域很多思路和人類學(xué)習(xí)是很共恰的!可以發(fā)現(xiàn)這兩個(gè)問題也是我們學(xué)習(xí)這門學(xué)科需要回答的。

我們的學(xué)習(xí)目標(biāo)比較清楚,就是入門人工智能領(lǐng)域,能完成一個(gè)AI相關(guān)的任務(wù),或者找到相關(guān)的工作。

1、入門人工智能是個(gè)寬泛的目標(biāo),因此還得 將目標(biāo)拆分成階段性目標(biāo)才易于執(zhí)行,可以對(duì)應(yīng)到下面–學(xué)習(xí)路線及建議資源的各個(gè)節(jié)點(diǎn)。

2、學(xué)習(xí)人工智能這門學(xué)科,需要提醒的是這本來就是件難事,所以實(shí)在搞不懂的知識(shí)可以放在后面補(bǔ)下,不要奢求一步到位(當(dāng)然天賦了得另說),不要想一下子成為專家,可以從:懂得調(diào)用現(xiàn)成的算法模塊(scikit-learn、tensorflow)做項(xiàng)目 -進(jìn)階-》懂得算法原理進(jìn)一步精用、調(diào)優(yōu)算法 -進(jìn)階-》領(lǐng)域?qū)<摇?strong>保持學(xué)習(xí),循序漸進(jìn)才是啃硬骨頭的姿勢(shì)。

3、啃硬骨頭過程無疑是艱難的,所以慢慢地培養(yǎng)興趣和及時(shí)的結(jié)果反饋是很重要的。在這方面,邊學(xué)邊敲代碼是必須的,結(jié)合代碼實(shí)踐學(xué)習(xí)效率會(huì)比較高,還可以及時(shí)看到學(xué)習(xí)成果,就算是啃硬骨頭看到牙印越來越深,不也是成果,也比較不容易放棄!

二、學(xué)習(xí)路線及建議資源

本學(xué)習(xí)路線的基本的框架是:寬泛了解領(lǐng)域,建立一定興趣 → 基礎(chǔ)知識(shí)、工具準(zhǔn)備 → 機(jī)器學(xué)習(xí)|深度學(xué)習(xí)的入門課程、書籍及項(xiàng)目實(shí)踐 → (面試準(zhǔn)備)→ 自行擴(kuò)展:工作中實(shí)戰(zhàn)學(xué)習(xí) 或  學(xué)術(shù)界特定領(lǐng)域鉆研,經(jīng)典算法原理、項(xiàng)目實(shí)踐

2.1 了解領(lǐng)域,建立一定興趣

首先對(duì)人工智能領(lǐng)域有個(gè)寬泛的了解,有自己的全局性的認(rèn)識(shí),產(chǎn)生一些判斷,才不會(huì)人云亦云地因?yàn)椤靶劫Y高、壓力大”等去做出選擇或者放棄。你做的準(zhǔn)備調(diào)研越多,確認(rèn)方向后越不容易放棄。

人工智能(Artificial Intelligence,AI)之研究目的是通過探索智慧的實(shí)質(zhì),擴(kuò)展人類智能——促使智能主體會(huì)聽(語音識(shí)別、機(jī)器翻譯等)、會(huì)看(圖像識(shí)別、文字識(shí)別等)、會(huì)說(語音合成、人機(jī)對(duì)話等)、會(huì)思考(人機(jī)對(duì)弈、專家系統(tǒng)等)、會(huì)學(xué)習(xí)(知識(shí)表示,機(jī)器學(xué)習(xí)等)、會(huì)行動(dòng)(機(jī)器人、自動(dòng)駕駛汽車等)。一個(gè)經(jīng)典的AI定義是:“ 智能主體可以理解數(shù)據(jù)及從中學(xué)習(xí),并利用知識(shí)實(shí)現(xiàn)特定目標(biāo)和任務(wù)的能力。”

從技術(shù)層面來看(如下圖),現(xiàn)在所說的人工智能技術(shù)基本上就是機(jī)器學(xué)習(xí)方面的(其他方面的如專家系統(tǒng)、知識(shí)庫等技術(shù)較為沒落)。關(guān)于人工智能的發(fā)展歷程,可以看看我之前一篇文章人工智能簡史。

機(jī)器學(xué)習(xí)是指非顯式的計(jì)算機(jī)程序可以從數(shù)據(jù)中學(xué)習(xí),以此提高處理任務(wù)的水平,機(jī)器學(xué)習(xí)常見的任務(wù)有分類任務(wù)(如通過邏輯回歸模型判斷郵件是否為垃圾郵件類)、回歸預(yù)測(cè)任務(wù)(線性回歸模型預(yù)測(cè)房價(jià))等等。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子方向,是當(dāng)下的熱門,它通過搭建深層的神經(jīng)網(wǎng)絡(luò)模型以處理任務(wù)。

從應(yīng)用領(lǐng)域上看,人工智能在眾多的應(yīng)用領(lǐng)域上面都有一定的發(fā)展,有語言識(shí)別、自然語言處理、圖像識(shí)別、數(shù)據(jù)挖掘、推薦系統(tǒng)、智能風(fēng)控、機(jī)器人等方面。值得注意的的是,不同應(yīng)用領(lǐng)域上,從技術(shù)層面是比較一致,但結(jié)合到實(shí)際應(yīng)用場(chǎng)景,所需要的業(yè)務(wù)知識(shí)、算法、工程上面的要求,差別還是相當(dāng)大的。回到應(yīng)用領(lǐng)域的選擇,可以結(jié)合技術(shù)現(xiàn)在的發(fā)展情況、自己的興趣領(lǐng)域再做判斷。

2.2 基礎(chǔ)知識(shí)、工具準(zhǔn)備

學(xué)習(xí)人工智能需要先掌握編程、數(shù)學(xué)方面的基本知識(shí):AI算法工程師首先是一名程序員,掌握編程實(shí)現(xiàn)方法才不將容易論知識(shí)束之高閣。而數(shù)學(xué)是人工智能理論的奠基,是必不可少的。

編程語言方面

編程語言之于程序員,如寶劍之于俠士。編程語言就是程序員改變、創(chuàng)造數(shù)字虛擬世界的交互工具。

先簡單介紹信息技術(shù)(IT)行業(yè)的情況,IT領(lǐng)域廣泛按職能可以分為前端、后端、人工智能、嵌入式開發(fā)、游戲開發(fā)、運(yùn)維、測(cè)試、網(wǎng)絡(luò)安全等方面。前端常用技術(shù)棧為js\css\html,后端常用技術(shù)棧有Java\go\C++\php\Python等。

在人工智能領(lǐng)域,Python使用是比較廣泛的,當(dāng)然其他的語言也是可行的,如Java、C++、R語言等。語言也就工具,選擇個(gè)適合的就好。結(jié)合自己的歷程及語言的特性,AI小白還是建議可以從Python學(xué)起,理由如下:

1、因?yàn)槠浜唵蔚恼Z法及靈活的使用方法,Python很適合零基礎(chǔ)入門;

2、Python有豐富的機(jī)器學(xué)習(xí)庫,極大方便機(jī)器學(xué)習(xí)的開發(fā);

3、Python在機(jī)器學(xué)習(xí)領(lǐng)域有較高的使用率,意味著社區(qū)龐大,應(yīng)用范圍廣,市場(chǎng)上(具體可到招聘軟件了解下)有較多的工作機(jī)會(huì);

1、多敲代碼:只看書、視頻而不敲代碼是初學(xué)者的一個(gè)通病。要記住的是“紙上得來終覺淺”,程序員是一個(gè)工匠活,需要?jiǎng)邮智么a實(shí)踐,熟能生巧。

2、 多谷歌:互聯(lián)網(wǎng)的信息無所不包的,學(xué)會(huì)利用互聯(lián)網(wǎng)自己解決問題是一項(xiàng)基本功。不懂可以谷歌,業(yè)界一句有趣的話:程序員是面向谷歌/stackoverflow編程的。

以下資源只是一些個(gè)人的偏好推薦,挑一兩種適合自己的資源學(xué)習(xí)就可以,不用全部都學(xué)浪費(fèi)精力。如果都覺得不合適,按照自己的學(xué)習(xí)方式即可。

1、【Python入門書】首推Python經(jīng)典書《Python編程從入門到實(shí)踐.pdf(https://github.com/aialgorithm/AiPy/》,知識(shí)點(diǎn)通俗易懂,而且結(jié)合了項(xiàng)目實(shí)踐,很適合初學(xué)者。注:Python在爬蟲、web開發(fā)、游戲開發(fā)等方向也有應(yīng)用,推薦本書主要學(xué)習(xí)下Python語法,而書后面的項(xiàng)目實(shí)戰(zhàn)像有游戲開發(fā)\web開發(fā),和機(jī)器學(xué)習(xí)關(guān)系不大,可以略過\自行了解下就好。

2、【Python入門教程】廖雪峰的Python在線學(xué)習(xí)教程,一個(gè)很大的特色是可以直接在線運(yùn)行Python代碼。

3、【Python入門視頻】如果看書過于枯燥,可以結(jié)合視頻學(xué)習(xí),Python入門學(xué)習(xí)報(bào)培訓(xùn)班學(xué)習(xí)有點(diǎn)浪費(fèi),可以直接網(wǎng)易云課堂、Bilibili搜索相關(guān)的Python學(xué)習(xí)視頻。我之前是看小甲魚零基礎(chǔ)入門學(xué)習(xí)Python課程,邊看邊敲敲代碼,覺得還不錯(cuò)。

4、【Python機(jī)器學(xué)習(xí)庫】學(xué)習(xí)完P(guān)ython語法,再學(xué)習(xí)了解下Python上現(xiàn)成的機(jī)器學(xué)習(xí)庫(模塊包),了解基本功能學(xué)會(huì)調(diào)用它們(熟練掌握它們,主要還是要結(jié)合后面項(xiàng)目邊學(xué)邊實(shí)踐才比較有效的。),一個(gè)初級(jí)的算法工程師(調(diào)包俠)基本就練成了。

重要的機(jī)器學(xué)習(xí)庫有:pandas 數(shù)據(jù)分析、numpy 數(shù)值計(jì)算庫、matplotlib可視化工具,推薦《利用pandas進(jìn)行數(shù)據(jù)分析》有涵蓋了這幾部分內(nèi)容。

scikit-learn 包含機(jī)器學(xué)習(xí)建模工具及算法,可以了解下官方文檔https://scikit-learn.org.cn。

用于搭建深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型的庫有:keras、tensorflow、Pytorch等,其中keras更為簡單易用,可以參考Keras官方文檔https://keras.io/zh,以及Keras之父寫的《Python深度學(xué)習(xí)》

5、【Python進(jìn)階書】《Python Cookbook》、《流暢的Python》 這兩本內(nèi)容難度有提升,適合Python語法的進(jìn)階。

數(shù)學(xué)方面

1、數(shù)學(xué)無疑是重要的,有良好的數(shù)學(xué)基礎(chǔ)對(duì)于算法原理的理解及進(jìn)階至關(guān)重要。但這一點(diǎn)對(duì)于入門的初學(xué)者反而影響沒那么大,對(duì)于初學(xué)者如果數(shù)學(xué)基礎(chǔ)比較差,有個(gè)思路是先補(bǔ)點(diǎn)“數(shù)學(xué)的最小必要知識(shí)”:如線性代數(shù)的矩陣運(yùn)算;高等數(shù)學(xué)的梯度求導(dǎo);概率的條件、后驗(yàn)概率及貝葉斯定理等等。這樣可以應(yīng)付大部分算法的理解。

2、如果覺得數(shù)學(xué)有難度,數(shù)學(xué)公式、知識(shí)的理解建議不用硬啃,不懂時(shí)再反查,遇到再回來補(bǔ)效果會(huì)好很多。(如果你的數(shù)學(xué)沒有問題,忽略這些,直接復(fù)習(xí)大學(xué)教材補(bǔ)下基礎(chǔ))

【數(shù)學(xué)基礎(chǔ)知識(shí)】推薦黃博翻譯整理的機(jī)器學(xué)習(xí)相關(guān)的數(shù)學(xué)基礎(chǔ)知識(shí),內(nèi)容簡要,還是挺不錯(cuò)的。

高等數(shù)學(xué)

線性代數(shù)

概率與數(shù)理統(tǒng)計(jì)

工具準(zhǔn)備

對(duì)于程序員,好的工具就是生產(chǎn)力!

1、 搜索引擎:學(xué)習(xí)開發(fā)的過程,很經(jīng)常搜索問題、解決bug。搜索引擎的內(nèi)容質(zhì)量 首推谷歌,其次bing,再者才是百度、知乎等。谷歌如果使用不了,試試谷歌助手、科學(xué)翻墻、谷歌鏡像網(wǎng)站,網(wǎng)上有教程自行了解。

2、翻譯:AI領(lǐng)域最新的研究成果、論文基本都是英文的,而如果英文閱讀比較一般,可以備個(gè)有道詞典、wps文檔翻譯。

3、Python編輯器:首推JupyterLab,JupyterLab很方便數(shù)據(jù)分析操作,可以單元格中逐步運(yùn)行代碼驗(yàn)證結(jié)果。建議直接下載安裝個(gè)anaconda,里面都有。

2.3 機(jī)器學(xué)習(xí)\深度學(xué)習(xí)入門

深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的子分支,與傳統(tǒng)機(jī)器學(xué)習(xí)有些差異的地方(如特征生成、模型定義方面), 因此兩者可以分開學(xué)習(xí)。都學(xué)習(xí)的話,建議可以先學(xué)機(jī)器學(xué)習(xí)再學(xué)深度學(xué)習(xí)。

機(jī)器學(xué)習(xí)\深度學(xué)習(xí)的內(nèi)容可以分為兩部分,一部分是算法原理的理解,如神經(jīng)網(wǎng)絡(luò)模型正向反向傳播原理、SVM原理、GBDT原理等等,這部分內(nèi)容的理解相對(duì)較難,學(xué)習(xí)周期較長。另一部分是算法工程實(shí)現(xiàn)的知識(shí),如現(xiàn)實(shí)問題的理解、如何清洗數(shù)據(jù)、生成特征、選擇模型及評(píng)估,具體可以看我之前的文章《一文全覽機(jī)器學(xué)習(xí)建模流程(Python代碼)》,這部分是比較通用的一套操作流程,學(xué)習(xí)周期比較短且容易看到實(shí)際成果。

對(duì)于初學(xué)者的建議,可以“先知其然,再知其所以然”,跟著課程\書學(xué)習(xí),明白大致的算法原理及工程上是如何做的。再用簡單的算法整個(gè)流程走一遍,結(jié)合實(shí)踐過程中不斷的比較和嘗試各種算法,更容易搞透算法原理,而且這樣可以避免云里霧里地學(xué)習(xí)各種算法原理。

以下相關(guān)資源推薦,同樣找一兩種合適的資源學(xué)習(xí)即可。

1、【機(jī)器學(xué)習(xí)視頻】《吳恩達(dá)的機(jī)器學(xué)習(xí)課程》github.com/aialgorithm/AiPy/,很經(jīng)典的入門課程,附筆記解析及代碼。

2、【機(jī)器學(xué)習(xí)書】《machine learning yearning_吳恩達(dá)》是吳恩達(dá)歷時(shí)兩年,根據(jù)自己多年實(shí)踐經(jīng)驗(yàn)整理出來的一本機(jī)器學(xué)習(xí)、深度學(xué)習(xí)實(shí)踐經(jīng)驗(yàn)寶典。

3、【機(jī)器學(xué)習(xí)書】《統(tǒng)計(jì)學(xué)習(xí)方法》 李航老師經(jīng)典的機(jī)器學(xué)習(xí)書,書中的算法原理講解還是比較細(xì)的。鏈接的資源有附上書中算法的代碼實(shí)現(xiàn)、課件及第一版的書。(現(xiàn)在已經(jīng)有第二版的書,可以買一本慢慢看)

4、【機(jī)器學(xué)習(xí)書】《機(jī)器學(xué)習(xí)(西瓜書)_周志華》  機(jī)器學(xué)習(xí)經(jīng)典教材,難度適合進(jìn)階,里面的一些概念公式還是要有一定基礎(chǔ)的,不太適合入門自學(xué)。(可搭配datawhale的南瓜書本理解難點(diǎn)公式)

5、【深度學(xué)習(xí)視頻】《吳恩達(dá)的深度學(xué)習(xí)課程》github.com/aialgorithm/AiPy/應(yīng)該是國內(nèi)大多數(shù)人的入門課程,附筆記解析及代碼。

6、【深度學(xué)習(xí)書】《深度學(xué)習(xí)(花書)》 AI大佬Ian Goodfellow的深度學(xué)習(xí)領(lǐng)域經(jīng)典著作,知識(shí)點(diǎn)很系統(tǒng)全面,但還是需要一定基礎(chǔ)才好看懂,初學(xué)者可以結(jié)合視頻、花書筆記輔助理解。

7、【深度學(xué)習(xí)書】《python深度學(xué)習(xí)》keras之父的經(jīng)典著作,通俗易懂適合入門。

8、【深度學(xué)習(xí)書】《深度學(xué)習(xí)實(shí)戰(zhàn)》 這本書的結(jié)果和《花書》有些相似之處,原理講解比較通俗,還有詳細(xì)的代碼實(shí)踐。不足的地方是代碼是用Python2寫的有些過時(shí)。

9、【深度學(xué)習(xí)書】《動(dòng)手學(xué)深度學(xué)習(xí)》  李沐大佬合著的深度學(xué)習(xí)入門教程及代碼實(shí)踐。

10、【深度學(xué)習(xí)論文】深度學(xué)習(xí)綜述 :2015年Nature上的論文,由深度學(xué)習(xí)界的三巨頭所寫,讀這一篇論文就可以概覽深度學(xué)習(xí)了。這篇論文有同名的中文翻譯。

注:要全面了解一個(gè)技術(shù)領(lǐng)域,找找這個(gè)領(lǐng)域的綜述論文是一個(gè)超實(shí)用的技巧。

11、【實(shí)戰(zhàn)項(xiàng)目】 推薦實(shí)戰(zhàn)下國外的Kaggle、國內(nèi)天池等競(jìng)賽項(xiàng)目。從頭到尾地參加一兩個(gè)機(jī)器學(xué)習(xí)項(xiàng)目,并取得不錯(cuò)的分?jǐn)?shù),基本上就差不多了。

安利個(gè)Datawhale小隊(duì)整理的國內(nèi)外經(jīng)典競(jìng)賽的項(xiàng)目方案及代碼實(shí)現(xiàn) https://github.com/datawhalechina/competition-baseline

2.4 工作面試準(zhǔn)備

對(duì)于大部分入門的初學(xué)者,要真正算入門人工智能領(lǐng)域,找一份相關(guān)的工作是必不可少的,當(dāng)你有(哪怕一點(diǎn)點(diǎn))相關(guān)的工作經(jīng)驗(yàn)后,這個(gè)領(lǐng)域工作面試就比較好混得開了。

很多初學(xué)者可能有個(gè)困惑,學(xué)習(xí)到什么樣程度、多久才能找到相關(guān)的工作機(jī)會(huì)呢?這個(gè)不好回答,和學(xué)習(xí)準(zhǔn)備的程度、市場(chǎng)招聘情況、運(yùn)氣等有關(guān),只能說覺得學(xué)得差不多了就可以找面試機(jī)會(huì)試下水(以個(gè)人學(xué)習(xí)為例,學(xué)習(xí)了Python+吳恩達(dá)機(jī)器學(xué)習(xí)\深度學(xué)習(xí)視頻+幾個(gè)書本\數(shù)據(jù)競(jìng)賽項(xiàng)目+刷面試題,前前后后差不多用了半年。)

準(zhǔn)備面試找工作,首先要了解下市場(chǎng)情況及招聘要求,通常無非要求有相關(guān)的論文著作、工作經(jīng)歷、項(xiàng)目經(jīng)驗(yàn)、對(duì)算法的理解。撇開第一、二項(xiàng)的論文、工作經(jīng)歷不談。對(duì)于初學(xué)者,面試的主要比重是項(xiàng)目經(jīng)驗(yàn)及算法的理解。

項(xiàng)目經(jīng)驗(yàn)就結(jié)合項(xiàng)目實(shí)戰(zhàn)的做法和理解(這些最好有博客記錄)。而算法原理除了平時(shí)的積累,刷下面試題是很關(guān)鍵的,畢竟面試內(nèi)容與實(shí)際工作內(nèi)容很多時(shí)候像是“造火箭與擰螺絲的關(guān)系”。

1、 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)與算法,LeetCode算法題庫:https://github.com/apachecn/Interview/tree/master/docs/Algorithm;

2、Python基礎(chǔ)算法實(shí)現(xiàn):https://github.com/TheAlgorithms/Python;

3、Python面試題 https://github.com/taizilongxu/interview_python

4、Datawhale小隊(duì)整理的面試寶典,內(nèi)容包括基礎(chǔ)算法數(shù)據(jù)結(jié)構(gòu)、機(jī)器學(xué)習(xí),CV,NLP,推薦,開發(fā)等。https://github.com/datawhalechina/daily-interview

5、機(jī)器學(xué)習(xí)面試題,這倉庫后面就沒有更新了,有些內(nèi)容可能有點(diǎn)過時(shí)https://github.com/DarLiner/Algorithm_Interview_Notes-Chinese

6、面試技巧:推薦閱讀程序員面試完全指南

總結(jié)

學(xué)習(xí)到這里,可以說是踏入AI領(lǐng)域的門了。俗話說“師傅領(lǐng)進(jìn)門,修行在個(gè)人”,本文僅能幫助有興趣的同學(xué)簡單入門這個(gè)領(lǐng)域,而要在這領(lǐng)域成為專家是很困難的,是需要長期的努力積累的。再者,IT行業(yè)技術(shù)更新迭代快,保持學(xué)習(xí)才是王道。

最后,希望這篇文章可以幫助到大家,共同學(xué)習(xí)進(jìn)步。

文章轉(zhuǎn)自微信公眾號(hào)@算法進(jìn)階

上一篇:

22條API設(shè)計(jì)的最佳實(shí)踐

下一篇:

成為一名優(yōu)秀 API 產(chǎn)品經(jīng)理的良好特質(zhì)有哪些
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)