斯坦福大學 | 人工智能本科4年課程清單
- 2020 年 8 月 17 日
- AI
字幕組雙語原文:人工智能本科學位完整四年課程規劃(斯坦福)
英語原文:A Complete 4-Year Course Plan for an Artificial Intelligence Undergraduate Degree
翻譯:雷鋒字幕組(明明知道、jiazhenbin、婁門人家)
離開學校已經有一段時間了,我現在有許多時間可以去反思下某些課程對我在人工智能和機器學習領域的發展有多大益處。我決定將我的想法在這篇文章中發表,為四年制人工智能本科學位的學習給出一個完整的課程規劃。
這些課程旨在為人工智能和計算機科學領域的新人們提供廣度與深度並重的知識。這個課程體系的構建深受我所學過課程的啟發,並且反映了那些我認為在人工智能生涯中必備的技能。
你也許通過Coursera在線課程就能獲得某些人工智能領域的知識,但我的側重點是在實際應用中培養對這些概念的深層理解。徹底理解某個領域確實花費時間,但我認為所謂的「捷徑」並不可行,因此,這個課程規劃是為那些想從基礎理論開始系統學習的人們配備的。
介紹結束了,就讓我們開始吧。
第1學年:構建你的學業基礎?
在人工智能學位學習的第1年,你應該聚焦於學習那些構成計算機科學和現代機器學習基礎的核心概念。此處,我假設你完全沒有計算機科學先修經歷,所以,這一年的主要精力應該花在學習軟件和算法基礎上,在你的整個學位學習階段和職業生涯中都將會需要這些基礎知識。你應該聚焦的課程包括:
-
程序設計基礎(Programming Fundamentals):介紹面向對象程序設計及數據結構(集合、圖等)。人工智能從業者需要有紮實的軟件工程技能。相關課程代碼:CS 106B。
-
計算機系統導論(Introduction to Computer Systems):講授從低層來角度來看計算機科學系統是如何設計和構成的。其中,重點在於學習軟件編譯過程,當你運行程序時會發生什麼,在內存中程序是如何組織的等。相關課程代碼:CS 107。
-
算法(Algorithms):涵蓋廣泛使用的計算機科學算法後面的數學和理論,比如廣度優先遍歷、動態規劃,以及如何分析那些算法的內存和運行時特點。相關課程代碼:CS 161。
-
概率論(Probability Theory):概率統計是許多機器學習算法的核心, 學習如何解釋和分析數據對於任何機器學習或大數據科學的領域來說 ,都是至關重要的。相關課程代碼:CS 109。
-
線性代數(Linear Algebra):涵蓋如何運用矩陣和向量,解線性方程,應用最小二乘法。這些數學基礎知識在機器學習領域都被廣泛使用。相關課程代碼:EE 103。
-
多維微積分(Multi-dimensional Calculus):你應該能輕鬆地解得函數梯度,因為這是諸如反向傳播算法之類的現代深度學習主力算法的核心技術。相關課程代碼:工程向量微積分。
第二年:探索領域,開發系統知識 ?
人工智能本科二年級學生的重點應該是讓自己了解人工智能的一般原理,已經解決的問題是什麼以及是如何解決的。此外,你應該繼續理解與模型構建相關的計算機系統,並實踐軟件工程和設計原則。為此,建議學習以下課程:
-
人工智能導論(Introduction to Artificial Intelligence):涵蓋了不同的人工智能領域的廣泛概述,如搜索、遊戲、邏輯、圖形模型、機器學習和這些算法的應用。這樣的課程應該為從符號邏輯到統計技術等方法的思想演變提供歷史背景。相關課程:CS 221。
-
編譯器(Compilers):涵蓋編譯器背後的設計和理論,理想情況下強調從頭構建一個完整的編譯器。編譯器是你編寫的每一個程序的核心,即使對人工智能從業者來說,理解它們的工作原理也是很重要的,這樣你才能成為有能力的工程師。這樣的課程將讓你很好地接觸到如何構建一個複雜的軟件系統,着重於模塊化的、經過文檔化和測試的、架構良好的組件。除此之外,如果你對追求應用於語言理解的人工智能感興趣,編譯器的設計和傳統自然語言處理堆棧之間的相似之處是不可思議的。相關課程:CS 143。
-
數據庫導論(Introduction to Databases):涵蓋數據庫管理系統背後的原理,重點諸如關係數據模型、索引、模式和事務等部分。任何現代數據科學家或機器學習工程師都必須在某種程度上與數據庫交互,因此了解它們的組織架構方式至關重要。相關課程:CS 145。
-
並行計算(Parallel Computing):並行計算平台構成了當今許多平台和技術的核心,從 Apache Spark 到 GPU 等硬件。有關並行計算的課程應該介紹這些系統背後的思想,以便你更熟練地有效地使用它們。相關課程:CS 149。
-
操作系統(Operating Systems):如果你想真正擅長系統編程,成為一個更熟練的工程師,那就去上一門操作系統課程,在這門課程中,你必須從頭開始構建一個操作系統。您不僅將學習如何設計操作系統,還將學習如何成為一名精通Debug代碼的程序員。在未來的人工智能職業中,這些基本技能將是無價的。相關課程:CS 140。
第三年:進階課程深度挖掘?
在第三年,你應該專註於深入學習機器學習以及統計原理的特定領域應用,包括自然語言處理、大數據分析和計算機視覺。以下是一些推薦的課程:
-
機器學習(Machine Learning):涵蓋機器學習的原則,包括監督和非監督學習和模型訓練概念,如偏方差權衡、正則化和模型選擇。一定要學習這些理論並把它們學好,因為人工智能從業者每天都在使用它們。相關課程:CS 229。
-
凸優化(Convex Optimization):涵蓋解決凸優化問題背後的思想與應用到統計、機器學習、信號處理和其他領域。雖然現在許多模型使用非凸目標,但這有助於理解可處理優化問題背後的形式。相關課程:EE 364A。
-
概率圖形模型(Probabilistic Graphical Models):涵蓋圖形模型範式,它允許對隨機變量的大量集合進行概率建模。計算機視覺和自然語言處理等各種應用中的許多問題都可以用圖形模型來表達,因此了解這些思想是有幫助的。相關課程:CS 228。
-
數據挖掘(Data Mining):涵蓋如何處理大數據集的技術和方法,尤其側重於推薦系統、聚類和大規模監督機器學習等應用領域。鑒於每天都會產生大量新數據,人工智能從業者必須適應大規模操作和分析數據,特別是通過使用 Spark 這樣的現代工具包。相關課程:CS 246。
-
自然語言處理(Natural Language Processing):介紹讓機器理解文本數據背後的理論和實踐。這樣的課程應該概述諸如解析和命名實體識別之類的傳統自然語言處理中的任務,並講授如何使用諸如深度學習之類的技術來解決這些任務。相關課程:CS 224N。
-
用於計算機視覺的卷積神經網絡(Convolutional Neural Networks for Computer Vision):涵蓋了現代深度學習體系結構背後的理論,尤其是與構建計算機視覺模型有關的理論。在當今的人工智能領域中,想要獲得成功,擁有紮實的神經網絡基礎至關重要。相關課程:CS 231N。
第四年:實踐經驗至關重要?
第四年的課程名稱應該是實踐、實踐、再實踐!在你完成你的頭三年課程的時候,你對低級計算機科學和軟件工程原理以及人工智能概念及其應用背後的理論已經有了深入的了解。在這一點上,你需要多花時間動動手。
找到您感興趣的研究領域,獲取現有數據集(或開發自己的數據集),然後開始構建模型。學習數據處理、假設檢驗和錯誤分析的細微差別。學習如何對模型進行故障排除。
想要成為一名人工智能領域的專家,那需要將你所學到的所有原則付諸實踐。下面是一些如何儘可能多實踐的方法:
-
參加項目課程:一些大學會開設一些課程,在這些課程中,你可以在整個課程期間嚴格地處理一類問題中的單個項目。這些類很好,因為您有時間真正深入研究項目的所有複雜性。我想到的一個例子是 CS 341。
-
參與研究:參與研究是獲得人工智能工作中所有錯綜複雜的實踐經驗的一種十分有效的方式。主動幫助研究生完成你感興趣的課題,或者請求老師資助你自己的課題!通過這樣做,你會很好地了解從事人工智能課題時的日常工作情況。
-
進行行業實習:如果你的時間安排允許,可以考慮從學校請假到一家人工智能公司實習。許多公司都提供 3-6 個月的實習機會,讓你接觸到所學原理的實際應用。如果你打算畢業後馬上就進入工業界,那麼沒有更好的方式來體驗數據科學家或機器學習工程師的工作。
至此,你已經完成了一個完整的四年課程規劃,為你未來成功的機器學習或數據科學的職業生涯准做好了準備!值得一提的是,並非必須參加上述所有課程。
另一種方法是瀏覽上述列表,並選修有關課程來填補自己的概念或技能空白。雖然有很多東西要學習,但但現在正是參與人工智能的激動人心的時刻,機遇無窮,研究領域廣闊,未來大有可為。好運!
雷鋒字幕組是由AI愛好者組成的志願者翻譯團隊;團隊成員有大數據專家、算法工程師、圖像處理工程師、產品經理、產品運營、IT諮詢人、在校師生;志願者們來自IBM、AVL、Adobe、阿里、百度等知名企業,北大、清華、港大、中科院、南卡羅萊納大學、早稻田大學等海內外高校研究所。
了解字幕組請聯繫微信:tlacttlact
轉載請聯繫字幕組微信並註明出處:雷鋒字幕組
雷鋒網雷鋒網