致小白的Python人工智能學習路線(長篇干貨)

本文篇幅較長,干貨較多,建議收藏慢慢看。

談到人工智能(AI)算法,常見不外乎有兩方面信息:鋪天蓋地各種媒體提到的高薪就業【販賣課程】、知乎上熱門的算法崗“水深火熱 灰飛煙滅”的梗【販賣焦慮】。

其實,這兩方面都是存在的,但都很片面,這里不加贅述。客觀地說,數字化、智能化是人類社會發展的趨勢,而當下人工智能無疑是一大熱門,那是藍海還是火海?我們回到老道理—水的深度,只有你自己去試試水才知道。

當你對上面情況有了初步的了解并想試試水,需要面對的問題是:AI入門容易嗎?

答案其實是否定的,難!AI領域需要鉆研算法原理、大量復雜的公式及符號、無所適從的項目都是勸退一時熱度初學者的原因。但這些原因對于一個初學者,根本上是面對這樣困難的學科卻缺乏合適方法導致的。反問一個玩笑,程序員怎么會沒有方法呢?隨手就定義一個Python方法(funtion)

def funtion():
       
    return 'haha,往下繼續看'

回到筆者,一名普普通通的程序員,當初也是誤打誤撞學習Python入門到機器學習、深度學習,至今有4個年頭,踩了很多坑,下文說到的學習方法、路徑也就填坑試錯的經驗罷了。

本文面向于AI領域了解不深、有些(高中+)基礎知識且有自學興趣的同學,以下為正文。

一、學習方法

說到學習方法,其實我們談到的人工智能之所以智能,核心在于有學習能力。而人工智能學習過程有兩個要素:

1、學習目標是什么(--什么目標函數)?

2、如何達到目標(--什么算法)?

人工智能領域很多思路和人類學習是很共恰的!可以發現這兩個問題也是我們學習這門學科需要回答的。

  • 學習目標是什么?

我們的學習目標比較清楚,就是入門人工智能領域,能完成一個AI相關的任務,或者找到相關的工作。

  • 如何達到目標?

1、入門人工智能是個寬泛的目標,因此還得 將目標拆分成階段性目標才易于執行,可以對應到下面--學習路線及建議資源的各個節點。

2、學習人工智能這門學科,需要提醒的是這本來就是件難事,所以實在搞不懂的知識可以放在后面補下,不要奢求一步到位(當然天賦了得另說),不要想一下子成為專家,可以從:懂得調用現成的算法模塊(scikit-learn、tensorflow)做項目 -進階-》懂得算法原理進一步精用、調優算法 -進階-》領域專家。保持學習,循序漸進才是啃硬骨頭的姿勢。

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

二、學習路線及建議資源

本學習路線的基本的框架是:
寬泛了解領域,建立一定興趣 --》基礎知識、工具準備 --》機器學習|深度學習的入門課程、書籍及項目實踐 --》(面試準備)--》自行擴展:工作中實戰學習 或 學術界特定領域鉆研,經典算法原理、項目實踐

2.1 了解領域,建立一定興趣

首先對人工智能領域有個寬泛的了解,有自己的全局性的認識,產生一些判斷,才不會人云亦云地因為“薪資高、壓力大等” 去做出選擇或者放棄。你做的準備調研越多,確認方向后越不容易放棄。

人工智能(Artificial Intelligence,AI)之研究目的是通過探索智慧的實質,擴展人類智能——促使智能主體會聽(語音識別、機器翻譯等)、會看(圖像識別、文字識別等)、會說(語音合成、人機對話等)、會思考(人機對弈、專家系統等)、會學習(知識表示,機器學習等)、會行動(機器人、自動駕駛汽車等)。一個經典的AI定義是:“ 智能主體可以理解數據及從中學習,并利用知識實現特定目標和任務的能力。

從技術層面來看(如下圖),現在所說的人工智能技術基本上就是機器學習方面的(其他方面的如專家系統、知識庫等技術較為沒落)。關于人工智能的發展歷程,可以看看我之前一篇文章人工智能簡史

機器學習是指非顯式的計算機程序可以從數據中學習,以此提高處理任務的水平,機器學習常見的任務有分類任務(如通過邏輯回歸模型判斷郵件是否為垃圾郵件類)、回歸預測任務(線性回歸模型預測房價)等等。深度學習是機器學習的一個子方向,是當下的熱門,它通過搭建深層的神經網絡模型以處理任務。


從應用領域上看,人工智能在眾多的應用領域上面都有一定的發展,有語言識別、自然語言處理、圖像識別、數據挖掘、推薦系統、智能風控、機器人等方面。值得注意的的是,不同應用領域上,從技術層面是比較一致,但結合到實際應用場景,所需要的業務知識、算法、工程上面的要求,差別還是相當大的。回到應用領域的選擇,可以結合技術現在的發展情況、自己的興趣領域再做判斷。

2.2 基礎知識、工具準備

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

編程語言方面

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

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


在人工智能領域,Python使用是比較廣泛的,當然其他的語言也是可行的,如Java、C++、R語言等。語言也就工具,選擇個適合的就好。結合自己的歷程及語言的特性,AI小白還是建議可以從Python學起,理由如下:
1、因為其簡單的語法及靈活的使用方法,Python很適合零基礎入門;
2、Python有豐富的機器學習庫,極大方便機器學習的開發;
3、Python在機器學習領域有較高的使用率,意味著社區龐大,應用范圍廣,市場上(具體可到招聘軟件了解下)有較多的工作機會;

  • 學習編程語言的兩點建議:

1、多敲代碼:只看書、視頻而不敲代碼是初學者的一個通病。要記住的是“紙上得來終覺淺”,程序員是一個工匠活,需要動手敲代碼實踐,熟能生巧。

2、 多谷歌: 互聯網的信息無所不包的,學會利用互聯網自己解決問題是一項基本功。不懂可以谷歌,業界一句有趣的話:程序員是面向谷歌/stackoverflow編程的;

  • 建議資源:

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

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

2、【Python入門教程】廖雪峰的Python在線學習教程,一個很大的特色是可以直接在線運行Python代碼。

3、【Python入門視頻】如果看書過于枯燥,可以結合視頻學習,Python入門學習報培訓班學習有點浪費,可以直接網易云課堂、Bilibili搜索相關的Python學習視頻。我之前是看小甲魚零基礎入門學習Python課程,邊看邊敲敲代碼,覺得還不錯。

4、【Python機器學習庫】學習完Python語法,再學習了解下Python上現成的機器學習庫(模塊包),了解基本功能學會調用它們(熟練掌握它們,主要還是要結合后面項目邊學邊實踐才比較有效的。),一個初級的算法工程師(調包俠)基本就練成了。重要的機器學習庫有:

pandas 數據分析、numpy 數值計算庫、matplotlib可視化工具,推薦《利用pandas數據分析》有涵蓋了這幾部分內容。

scikit-learn 包含機器學習建模工具及算法,可以了解下官方文檔https://scikit-learn.org.cn

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

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

數學方面

1、數學無疑是重要的,有良好的數學基礎對于算法原理的理解及進階至關重要。但這一點對于入門的初學者反而影響沒那么大,對于初學者如果數學基礎比較差,有個思路是先補點“數學的最小必要知識”:如線性代數的矩陣運算;高等數學的梯度求導;概率的條件、后驗概率及貝葉斯定理等等。這樣可以應付大部分算法的理解。

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

  • 建議資源

【數學基礎知識】推薦黃博翻譯整理的機器學習相關的數學基礎知識,內容簡要,還是挺不錯的。

高等數學
線性代數
概率與數理統計

工具準備

對于程序員,好的工具就是生產力!
1、 搜索引擎:學習開發的過程,很經常搜索問題、解決bug。搜索引擎的內容質量 首推谷歌,其次bing,再者才是百度、知乎等。谷歌如果使用不了,試試谷歌助手、科學翻墻、谷歌鏡像網站,網上有教程自行了解。

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

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

2.3 機器學習\深度學習入門

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

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

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

以下相關資源推薦,同樣找一兩種合適的資源學習即可。

  • 建議資源

1、【機器學習視頻】《吳恩達的機器學習課程》github.com/aialgorithm/AiPy/,很經典的入門課程,附筆記解析及代碼。

2、【機器學習書】[《machine learning yearning_吳恩達》 ] (https://github.com/aialgorithm/AiPy/tree/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0) 是吳恩達歷時兩年,根據自己多年實踐經驗整理出來的一本機器學習、深度學習實踐經驗寶典。

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

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

5、【深度學習視頻】《吳恩達的深度學習課程》github.com/aialgorithm/AiPy/應該是國內大多數人的入門課程,附筆記解析及代碼。

6、【深度學習書】《深度學習(花書)》 AI大佬Ian Goodfellow的深度學習領域經典著作,知識點很系統全面,但還是需要一定基礎才好看懂,初學者可以結合視頻、花書筆記輔助理解。

7、【深度學習書】《python深度學習》keras之父的經典著作,通俗易懂適合入門。

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

9、【深度學習書】《動手學深度學習》 李沐大佬合著的深度學習入門教程及代碼實踐。

10、【深度學習論文】深度學習綜述 :2015年Nature上的論文,由深度學習界的三巨頭所寫,讀這一篇論文就可以概覽深度學習了。這篇論文有同名的中文翻譯
注:要全面了解一個技術領域,找找這個領域的綜述論文是一個超實用的技巧。

11、【實戰項目】 推薦實戰下國外的Kaggle、國內天池等競賽項目。從頭到尾地參加一兩個機器學習項目,并取得不錯的分數,基本上就差不多了。安利個Datawhale小隊整理的國內外經典競賽的項目方案及代碼實現 https://github.com/datawhalechina/competition-baseline

2.4 工作面試準備

對于大部分入門的初學者,要真正算入門人工智能領域,找一份相關的工作是必不可少的,當你有(哪怕一點點)相關的工作經驗后,這個領域工作面試就比較好混得開了。

很多初學者可能有個困惑,學習到什么樣程度、多久才能找到相關的工作機會呢?這個不好回答,和學習準備的程度、市場招聘情況、運氣等有關,只能說覺得學得差不多了就可以找面試機會試下水(以個人學習為例,學習了Python+吳恩達機器學習\深度學習視頻+幾個書本\數據競賽項目+刷面試題,前前后后差不多用了半年。)

準備面試找工作,首先要了解下市場情況及招聘要求,通常無非要求有相關的論文著作、工作經歷、項目經驗、對算法的理解。撇開第一、二項的論文、工作經歷不談。對于初學者,面試的主要比重是項目經驗及算法的理解。

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

  • 推薦些經典的面試題庫

1、 基礎數據結構與算法,LeetCode算法題庫:https://github.com/apachecn/Interview/tree/master/docs/Algorithm

2、Python基礎算法實現: https://github.com/TheAlgorithms/Python

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

4、Datawhale小隊整理的面試寶典,內容包括基礎算法數據結構、機器學習,CV,NLP,推薦,開發等。https://github.com/datawhalechina/daily-interview

5、機器學習面試題,這倉庫后面就沒有更新了,有些內容可能有點過時https://github.com/DarLiner/Algorithm_Interview_Notes-Chinese

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

總結

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

最后,希望這篇文章可以幫助到大家,共同學習進步吧。


碼字不易,如覺得本文有幫助,您的關注點贊是最大的支持!
文章首發于算法進階,公眾號閱讀原文可訪問--學習資源推薦--

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,488評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,034評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,327評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,554評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,337評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,883評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,975評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,114評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,625評論 1 332
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,555評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,737評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,244評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,973評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,615評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,343評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,699評論 2 370

推薦閱讀更多精彩內容