眼下,人工智能已經(jīng)成為越來越火的一個方向。普通程序員,如何轉(zhuǎn)向人工智能方向,是知乎上的一個問題。本文是我對此問題的一個回答的歸檔版。相比原回答有所內(nèi)容增加。
一. 目的
本文的目的是給出一個簡單的,平滑的,易于實現(xiàn)的學習方法,幫助 “普通” 程序員踏入AI領(lǐng)域這個門。這里,我對普通程序員的定義是:擁有大學本科知識;平時工作較忙;自己能獲取的數(shù)據(jù)有限。因此,本文更像是一篇 “from the scratch” 的AI入門教程。
二. AI領(lǐng)域簡介
AI,也就是人工智能,并不僅僅包括機器學習。曾經(jīng),符號與邏輯被認為是人工智能實現(xiàn)的關(guān)鍵,而如今則是基于統(tǒng)計的機器學習占據(jù)了主導地位。最近火熱的深度學習正是機器學習中的一個子項。目前可以說,學習AI主要的是學習機器學習。但是,人工智能并不等同于機器學習,這點在進入這個領(lǐng)域時一定要認識清楚。關(guān)于AI領(lǐng)域的發(fā)展歷史介紹推薦看周老師寫的《機器學習簡介》。下面一個問題是:AI的門好跨么?其實很不好跨。我們以機器學習為例。在學習過程中,你會面對大量復雜的公式,在實際項目中會面對數(shù)據(jù)的缺乏,以及艱辛的調(diào)參等。如果僅僅是因為覺得這個方向未來會“火”的話,那么這些困難會容易讓人放棄。考慮到普通程序員的特點,而要學習如此困難的學科,是否就是沒有門路的?答案是否定的。只要制定合適的學習方法即可。
三. 學習方法
學習方法的設(shè)定簡單說就是回答以下幾個問題:我要學的是什么?我怎樣學習?我如何去學習?這三個問題概括說就是:學習目標,學習方針與學習計劃。學習目標比較清楚,就是踏入AI領(lǐng)域這個門。這個目標不大,因此實現(xiàn)起來也較為容易?!斑^大的目標時就是為了你日后放棄它時找到了足夠的理由”。學習方針可以總結(jié)為 “興趣為先,踐學結(jié)合”。簡單說就是先培養(yǎng)興趣,然后學習中把實踐穿插進來,螺旋式提高。這種方式學習效果好,而且不容易讓人放棄。有了學習方針以后,就可以制定學習計劃,也稱為學習路線。下面就是學習路線的介紹。
四. 學習路線
我推薦的學習路線是這樣的,如下圖:
圖1 AI領(lǐng)域?qū)W習路線圖
這個學習路線是這樣設(shè)計的:首先了解這個領(lǐng)域,建立起全面的視野,培養(yǎng)起充足的興趣,然后開始學習機器學習的基礎(chǔ),這里選擇一門由淺入深的課程來學習,課程