【學習干貨】斯坦福大學——人工智能本科4年課程清單
正文共:3163字-2圖
預計閱讀時間:8分鐘
雖然這個說的是本科課程清單,但對于一些跨行或者初學者都有一些借鑒意義。祝大家學習愉快。
相信每個入行人工智能的老手,對自己過往的幾年學習生涯都或多或少會有一些遺憾:如果我當年先從基本概念入手就好了,如果我當年把核心算法吃的更透一點就好了……
最近,一位在行業(yè)內工作了幾年的斯坦福人工智能”師兄“就根據自己的工作和學習經驗,為入學的師弟師妹們送出了一份大禮:人工智能的本科4年課程清單,希望想要了解人工智能的新生能夠靠著這份指路圖,少走彎路。
這位學長名叫Mihail Eric,本人也是一位妥妥的“學霸”。在斯坦福大學的NLP研究組里,與Christopher Manning, Percy Liang, Christopher Potts(三位巨佬)一起做研究,度過了3年非常充實的研究時光,收獲頗多。同時Eric向ACL\EMNLP\NLP for AI work投稿論文,均已發(fā)表,目前正在擔任ACL的審稿人,也是業(yè)內人工智能公司Alexa AI的工程師。
作為已經畢業(yè)的學長,Eric離開學校已經有一段時間了,總結了一下自己的學習和工作經歷,Eric為自己的人工智能和機器學習的職業(yè)生涯,設計一個完整的4年制人工智能本科學位基礎課程。這些課程是為AI和CS領域的萌新提供的,雖然是萌新定位,但Eric覺得這些課程直到今天都還在用,是基礎必會的技能。
第一年,打基礎
假設你沒有CS的經驗,這一年的大部分時間應該用在CS和機器學習的核心概念和算法上,推薦的課程有:
1.編程基礎
這是AI從業(yè)人員必需具備的軟件工程學的基本技能。
課程為CS106B:http://web.stanford.edu/class/cs106b/
2.計算機系統(tǒng)
這門課的重點在于計算機的基礎設計和構建,尤其是學習軟件編譯的時候,運行一個程序會發(fā)生什么,以及程序是如何在內存中運行的。
課程為CS107:http://web.stanford.edu/class/cs107/
3.算法概論
這門課包含了計算機算法背后的數學和理論基礎,比如最優(yōu)搜索算法和動態(tài)編程,以及如何分析這些算法的內存和優(yōu)缺點。
課程為CS161:http://web.stanford.edu/class/cs161/
4.概率論
概率論和統(tǒng)計學是機器學習算法中的核心,尤其是分析數據在實戰(zhàn)里很重要。
課程為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本科的第二年,至少要明白人工智能的一些原理,應該用什么樣的理論去解決問題,還需要加強對計算機系統(tǒng)運行的理解。
1.人工智能概論
這門課包括了人工智能領域所運用的研究,比如搜索,游戲,邏輯以及圖像還有機器學習算法的應用。
課程CS221:https://stanford-cs221.github.io/spring2020/
2.編譯原理
主要是講編譯器背后的設計和理論,你學了之后,至少應該了解一個編譯器是如何構建的,還有編譯器的模塊化組件,也需要了解。如果你對語義識別感興趣,可以好好琢磨一下編譯器的設計和傳統(tǒng)的自然語言處理堆棧之間的相似之處,非常有趣。
課程CS143:http://web.stanford.edu/class/cs143/
3.數據庫原理
主要講數據庫管理系統(tǒng)背后的原則,比如關系數據模型、索引、模式等主題,但凡你想成為數據專家或者機器學習工程師,就必須要懂得數據庫的原理。
課程CS145:https://cs145-fa19.github.io/
4.并行計算
并行計算這門課會講Apache Spark到GPU這些系統(tǒng)背后的原理,
課程CS149:http://cs149.stanford.edu/fall19/
5.操作系統(tǒng)
你如果想要擅長系統(tǒng)編程,就一定要上這門課,這門課是講如何從頭開始搭建一個操作系統(tǒng),不僅需要設計系統(tǒng),還需要明白如何調試和代碼管理。如果你不明白,你手下的人敲完:sudo rm -rf /*就撤了,你該如何拯救你的代碼?
課程CS140:http://web.stanford.edu/~ouster/cgi-bin/cs140
第3年,開啟提升課程
這個時候應該開始學高級課程,開始NLP,BA,CV這些方向的研究
1.機器學習
監(jiān)督學習和模型訓練的概念,比如偏差、方差,正則化以及模型選擇,這些內容看上去簡單,實際上每個AI從業(yè)者天天都在用的。
課程CS229:http://cs229.stanford.edu/
2.凸優(yōu)化
這門課運用很廣,比如統(tǒng)計學,機器學習,信號處理和其它使用凸優(yōu)化的領域,雖然現在有不少問題都是非凸化的,但是你最好還是要懂背后的邏輯。
課程EE364A:http://web.stanford.edu/class/ee364a/
3.概率圖模型
像CV和NLP就會經常用到,所以還是需要了解。
課程CS228:https://cs.stanford.edu/~ermon/cs228/index.html
4.數據挖掘
大數據與數據挖掘,這門課涵蓋了處理大型數據集的技術方法,會運用到推薦算法、聚類以及大規(guī)模的數據集計算與分析,要知道每天產生的數量還是比較大的。
課程CS246:http://web.stanford.edu/class/cs246/
5.NLP
自然語言處理,讓機器懂得文本數據的理論和時間,而且還會在這門課里學到傳統(tǒng)自然語言處理,老師會教如何用深度學習技術來處理這些。
課程CS224N:http://web.stanford.edu/class/cs224n/
6.基于CV的卷積神經網絡
基本包含了深度學習背后的理論,比如CV模型就經常運用,只要學過人工智能課程的人,沒錯,是來自李飛飛教授的CS231N吧。
課程CS231N:http://cs231n.stanford.edu/
第4年,開始打比賽
經過前面3年課程的訓練,你應該對計算機系統(tǒng)和人工智能概念、應用有了清楚的理解,找到你比較感興趣的方向,拿起數據集,就要開始自己跑模型,做數據分析,調參還有解決Bug。想要成為一個真正的人工智能專家,不僅得學,還得上手練。
1.做研究項目
有的學校會提供這類課程,在這門課里,你需要深入研究整個項目的情況。
課程CS341:http://web.stanford.edu/class/cs341/
2.參加課題研究
主動去找研究生學長學姐,做他們的助理,將基礎知識再過一遍,也可以選擇自己開一個課題項目,進行研究,主要是讓你有一個項目經驗。
3.大廠實習
如果你要是時間管理的好,可以考慮在課余時間去AI公司實習,一般大廠都有這種3-6個月的實習機會,在實習里,不僅讓你了解書本上的基礎知識,還能使用基礎知識進行落地的運用,這種應該算比較好的實戰(zhàn)機會了。
尾巴
以上就是作為一個人工智能從業(yè)者的斯坦福畢業(yè)生Eric,送給AI萌新的4年規(guī)劃安排,如果你覺得上面的課程比較難,可以適當調整,當然也歡迎你與大家分享你的學習之路。
就像歌詞所說“一代人終將老去,但總有人正年輕?!癆I之路任重且道遠,不管是不是萌新,只要你還愿意學習,就一直在路上,加油?。?!
來源?|?AINLP
版權聲明:本號內容部分來自互聯網,轉載請注明原文鏈接和作者,如有侵權或出處有誤請和我們聯系。
