1. 程式人生 > 其它 >斯坦福的人工智慧4年路線!

斯坦福的人工智慧4年路線!

今天和大家分享一份Stanford學長的人工智慧本科 4 年學習路線和課程清單。
相信每個入行人工智慧的老手,對自己過往的幾年學習生涯都或多或少會有一些遺憾:如果我當年先從基本概念入手就好了,如果我當年把核心演算法吃的更透一點就好了…
最近,一位在行業內工作了幾年的斯坦福人工智慧”師兄“就根據自己的工作和學習經驗,為入學的師弟師妹們送出了一份大禮:人工智慧的本科4年課程清單,希望想要了解人工智慧的新生能夠靠著這份指路圖,少走彎路。
這位大方的學長名叫Mihail Eric,本人也是一位妥妥的“學霸”。在斯坦福大學的NLP研究組裡,與Christopher Manning, Percy Liang, Christopher Potts(三位巨佬)一起做研究,度過了3年非常充實的研究時光,收穫頗多。同時Eric向ACL\EMNLP\NLP for AI work投稿論文,均已發表,目前正在擔任ACL的審稿人,也是業內人工智慧公司Alexa AI的工程師。
作為已經畢業的學長,Eric離開學校已經有一段時間了,總結了一下自己的學習和工作經歷,Eric為自己的人工智慧和機器學習的職業生涯,設計一個完整的4年制人工智慧本科學位基礎課程。

這些課程是為AI和CS領域的萌新提供的,雖然是萌新定位,但Eric覺得這些課程直到今天都還在用,是基礎必會的技能。

第1年,打基礎

假設你沒有CS的經驗,這一年的大部分時間應該用在CS和機器學習的核心概念和演算法上,推薦的課程有:


1.程式設計基礎,這是AI從業人員必需具備的軟體工程學的基本技能。課程為CS106B:http://web.stanford.edu/class/cs106b/
2.計算機系統,這門課的重點在於計算機的基礎設計和構建,尤其是學習軟體編譯的時候,執行一個程式會發生什麼,以及程式是如何在記憶體中執行的。課程為CS107:http://web.stanford.edu/class/cs107/
3.演算法概論

,這門課包含了計算機演算法背後的數學和理論基礎,比如最優搜尋演算法和動態程式設計,以及如何分析這些演算法的記憶體和優缺點。課程為CS161:http://web.stanford.edu/class/cs161/
4.概率論,概率論和統計學是機器學習演算法中的核心,尤其是分析資料在實戰裡很重要。課程為CS109:http://web.stanford.edu/class/cs109/
5.線性代數,如何計算矩陣和向量,線性方程組,最小二乘法,這些都是機器學習需要用到的數學基礎。課程為EE103:http://web.stanford.edu/class/ee103/
6.多維微積分,除錯函式的梯度,反向傳播以及機器學習,這些都是經常用到的。課程為向量微積分(工程師):https://www.coursera.org/learn/vector-calculus-engineers

第2年,從系統的基礎知識中開始慢慢探索

AI本科的第二年,至少要明白人工智慧的一些原理,應該用什麼樣的理論去解決問題,還需要加強對計算機系統執行的理解。


1.人工智慧概論,這門課包括了人工智慧領域所運用的研究,比如搜尋,遊戲,邏輯以及影象還有機器學習演算法的應用。課程CS221:https://stanford-cs221.github.io/spring2020/
2.編譯器,主要是講編譯器背後的設計和理論,你學了之後,至少應該瞭解一個編譯器是如何構建的,還有編譯器的模組化元件,也需要了解。如果你對語義識別感興趣,可以好好琢磨一下編譯器的設計和傳統的自然語言處理堆疊之間的相似之處,非常有趣。課程CS143:http://web.stanford.edu/class/cs143/
3.資料庫原理,主要講資料庫管理系統背後的原則,比如關係資料模型、索引、模式等主題,但凡你想成為資料專家或者機器學習工程師,就必須要懂得資料庫的原理。課程CS145:https://cs145-fa19.github.io/
4.平行計算,平行計算這門課會講Apache Spark到GPU這些系統背後的原理,課程CS149:http://cs149.stanford.edu/fall19/
5.作業系統,你如果想要擅長系統程式設計,就一定要上這門課,這門課是講如何從頭開始搭建一個作業系統,不僅需要設計系統,還需要明白如何除錯和程式碼管理。如果你不明白,你手下的人敲完:sudo rm -rf /*就撤了,你該如何拯救你的程式碼?課程CS140:http://web.stanford.edu/~ouster/cgi-bin/cs140

第3年,開啟提升課程

這個時候應該開始學高階課程,開始NLP,BA,CV這些方向的研究,
1.機器學習,監督學習和模型訓練的概念,比如偏差、方差,正則化以及模型選擇,這些內容看上去簡單,實際上每個AI從業者天天都在用的。課程CS229:http://cs229.stanford.edu/
2.凸優化,這門課運用很廣,比如統計學,機器學習,訊號處理和其它使用凸優化的領域,雖然現在有不少問題都是非凸化的,但是你最好還是要懂背後的邏輯。課程EE364A:http://web.stanford.edu/class/ee364a/
3.概率圖模型,像CV和NLP就會經常用到,所以還是需要了解。課程CS228:https://cs.stanford.edu/~ermon/cs228/index.html
4.資料探勘,大資料與資料探勘,這門課涵蓋了處理大型資料集的技術方法,會運用到推薦演算法、聚類以及大規模的資料集計算與分析,要知道每天產生的數量還是比較大的。課程CS246:http://web.stanford.edu/class/cs246/
5.NLP,自然語言處理,讓機器懂得文字資料的理論和時間,而且還會在這門課裡學到傳統自然語言處理,老師會教如何用深度學習技術來處理這些。課程CS224N:http://web.stanford.edu/class/cs224n/
6.基於CV的卷積神經網路,基本包含了深度學習背後的理論,比如CV模型就經常運用,只要學過人工智慧課程的人,沒錯,是來自李飛飛教授的CS231N吧。課程CS231N:http://cs231n.stanford.edu/

第4年,同學你該開始打比賽了

經過前面3年課程的訓練,你應該對計算機系統和人工智慧概念、應用有了清楚的理解,找到你比較感興趣的方向,拿起資料集,就要開始自己跑模型,做資料分析,調參還有解決Bug。想要成為一個真正的人工智慧專家,不僅得學,還得上手練。
1.做研究專案,有的學校會提供這類課程,在這門課裡,你需要深入研究整個專案的情況。課程CS341:http://web.stanford.edu/class/cs341/
2.參加課題研究,主動去找研究生學長學姐,做他們的助理,將基礎知識再過一遍,也可以選擇自己開一個課題專案,進行研究,主要是讓你有一個專案經驗。
3.大廠實習,如果你要是時間管理的好,可以考慮在課餘時間去AI公司實習,一般大廠都有這種3-6個月的實習機會,在實習裡,不僅讓你瞭解書本上的基礎知識,還能使用基礎知識進行落地的運用,這種應該算比較好的實戰機會了。

4.競賽實踐:根據目前正在進行的資料競賽,做了整理和分類,適合有一些理論基礎後實踐,增加專案經驗,完善履歷。

1.資料探勘賽:

https://tianchi.aliyun.com/competition/entrance/531858/introduction

2.天池CV賽:

https://tianchi.aliyun.com/competition/entrance/531860/introduction

3.天池NLP賽:

https://tianchi.aliyun.com/competition/entrance/531865/information

4.天池工業賽:

https://tianchi.aliyun.com/competition/entrance/531864/introduction

5.時間序列賽:

https://tianchi.aliyun.com/competition/entrance/531871/introduction


以上就是作為一個人工智慧從業者的斯坦福畢業生Eric,送給AI萌新的4年規劃安排,如果覺得上面的課程比較難,可以適當調整,相信對你入門和學習AI的路上會有所幫助。參考素材:https://www.mihaileric.com/posts/complete-artificial-intelligence-undergraduate-course-plan/

本文來自部落格園,作者:Slashout,轉載請註明原文連結:https://www.cnblogs.com/SlashOut/p/15349746.html 關注公眾號:數字化轉型