大家好,我是 Karan,住在新加坡的高中生。去年我花了一年的時間探索人工智慧(AI)和機器學習(ML)領域,我相信這個領域不存在專門為高中生建構的學習路徑。這是我嘗試創建一個。
自從我開始進入這個領域以來,我嘗試每天花幾個小時盡可能多地了解,無論是觀看 YouTube 影片、進行個人專案還是只是閱讀書籍。我受到了比我有更多經驗的老同事的指導,但我知道並不是每個人都能獲得這樣的指導 - 所以這是我嘗試將所有學到的知識轉述到一份具體文件中。
我在本指南中整理的所有資訊都是針對希望在這個新興領域取得優異成績的高中生。它旨在按時間順序進行,與我遇到的大多數指南/學習路徑不同,它不需要理解線性代數、偏導數和其他在高中教學大綱中找不到的複雜數學概念。然而,它確實包括一門涵蓋機器學習基本數學基礎知識的課程——我認為其水平與高中數學相當。如果你經常走這條路,我相信你可以在三個月左右達到相當熟練的水平。然而,這條學習路徑確實提供了可以讓你在高中剩餘時間持續學習的內容。
那麼,讓我們開始吧。
我強烈建議以 Python 作為起點,因為它是一種在 AI/ML 領域中使用時符合大多數條件的語言 - 它不僅非常容易學習,而且為幾乎所有基本演算法提供了庫和框架在該領域眾所周知。雖然 R 很有用,但我發現 Python 由於其可讀性和易學性而更適合高中生。除了基本程式設計之外,特別是對於機器學習,最有用的函式庫是 Numpy、Pandas 和 Matplotlib。
對於那些以前從未編碼過的人,我建議去學習多倫多大學(目前人工智慧/機器學習領域最好的大學之一)提供的課程。這將花費您幾週的時間,但它非常值得您花時間 - 您透過本課程獲得的大部分知識都可以應用於任何其他程式語言,唯一的區別是語法。該課程是免費的,可以在這裡找到。
對於擁有 Python 以外的語言編碼經驗的人,只需瀏覽本教程即可基本了解 Python 語法 - 這不會花費您超過一天的時間。
機器學習和人工智慧建立在微積分、線性代數、機率、統計和優化等數學原理的基礎上——許多充滿希望的人工智慧從業者(比如我自己)發現這令人望而生畏。 Microsoft 的 edX 機器學習基礎數學:Python 版這門課程並不是為了讓您成為數學家而設計的。相反,它的目的是幫助您學習一些重要的基本概念以及用於表達它們的符號。本課程提供了一種處理數據和應用您在現實問題設定中學到的技術的實用方法。有需要的人可以獲得經濟援助。
現在,在學習了 Python 的基礎知識之後,您需要了解該領域使用的兩個基本庫 - Numpy 和 Pandas,它們主要用於資料操作、表示和儲存。 Matplotlib 是該領域的第三個「核心」庫,用於透過圖形和圖表可視化這些數據 - 但我們稍後會介紹。這兩門課程加起來不會超過幾天:Numpy 和 Pandas。
有了這個,現在您應該可以開始學習機器學習和人工智慧所需的核心程式設計了。
如果有一門機器學習的通用課程,那一定是吳恩達的課程。對於高中生來說,這似乎有點具有挑戰性,因為它涉及偏導數等概念
但我堅信,理解這些並不需要從課程中獲得有形的知識。我發現在第 3 到第 5 週重新觀看一些講座特別有益 - 這些主題都是高級的,所以第一次觀看時可能會感覺有點快。如果您無法完全掌握核心數學知識,尤其是微積分方面的知識,請不要太擔心 - 其中一些肯定需要大學程度的數學知識。更重要的是,您能夠遵循吳教授在傳播知識時所使用的思考過程,因為這使您能夠了解機器學習過程的幕後情況。
我鼓勵您在課程期間記筆記,因為寫下您學到的內容有助於確保您真正理解所傳達的訊息。完成程式設計教學和練習並不是必需的,因為這些都是在 Matlab 中完成的 - 根據我的經驗,Matlab 可能很難掌握,因為它是一種基於矩陣的語言。但不用擔心,我們將在很短的時間內在 Python 中實現完全相同(而且更高級)的演算法。
這個免費課程可以在這裡找到。
在沒有大學程度的數學知識來支持這些演算法的具體細節的情況下實施機器學習演算法聽起來像是一項自相矛盾的任務 - 然而,來自澳洲的一個團隊正著手做到這一點。
Kirill Eremenko 和 Hadelin de Ponteves 是「超級資料科學」團隊的兩位研究人員,他們非常擅長尋找在現實生活中應用簡單演算法的相關方法。此外,他們會進行適當的深度理解演算法的功能,但不會涉及高中生無法理解的複雜數學。他們的課程涵蓋了 Python 和 R,不過我現在不擔心 R - 只需瀏覽 Python 教程即可。另外,如果您發現它們的速度有點太慢,請以 1.25 倍速播放本課程(我這樣做了,發現它更適合我的學習)。
他們的課程在 Udemy 上,並且只提供付費版本,儘管 Udemy 的課程經常提供 90% 或更多的折扣。可以在這裡找到,通常價格在 10 美元左右。它涵蓋了從基本迴歸演算法到深度神經網路的所有內容,後者是許多現代應用程式(如 ChatGPT 和 AlphaFold)中使用的核心架構。如果您想探索更高級的領域,他們的深度學習課程在機器學習結束時提供 90% 的折扣。
如果您不願意支付本課程的費用,您可以在此處查看 Google 的免費深度學習課程或在此處查看密西根大學的免費課程。但在我看來,這些課程遠不如 SuperDataScience 團隊的課程那麼全面。
對於這些課程,記筆記並不是必需的——網路上有大量的“演算法備忘單”,可以讓您快速直觀地了解它們的工作原理。這個網站列出了一些。
現在您已經涵蓋了廣泛的機器學習概念,是時候獨立使用這些知識來完成一些專案了。我建議探索 Kaggle 和 UCI 機器學習儲存庫 - 找到您感興趣的資料集,並為與它們相關的問題建模一些解決方案。嘗試不同的演算法並努力優化性能。
確保您使用的資料集本質上簡單且乾淨 - 即它們不需要太多的預處理或特定領域的知識來使用。我腦海中浮現出的一些簡單數據集包括虹膜、葡萄酒、威斯康辛州乳腺癌、自閉症篩檢、國會投票、手寫數位 MNIST 和時尚 MNIST 數據集。
如果您遇到障礙,Stack Overflow 是您最好的朋友 - 他們幾乎可以回答您的任何問題。如果沒有,只需發布一個 - 您應該會在幾個小時內收到回复!這一步沒有什麼更多的了 - 當您發現您已經對從後到前的整個建模過程感到滿意時,請隨意繼續!
現在,您不僅應該對所有基礎知識有深入而廣泛的理解,而且還應該有能力將其應用於一些現實世界的數據問題。然而,重要的是要明白,這些基礎知識並沒有涵蓋ML/AI 的整個世界,相反,其中許多基礎知識多年來一直是解決此類數據問題的已知方法,但不幸的是直到最近,計算機才強大到足以真正利用它們在合理的運行時間內。該領域的大多數現代工作都集中在以各種新穎的方式改進這些演算法,並建立與這些演算法無關的系統,這些系統利用底層演算法,但以各種方式改進、擴展和增強它們。因此,我建議您在更廣泛的機器學習領域中找到一個感興趣的領域,並深入研究它,以便對當今該領域的最新技術更有經驗。你可能沒有時間成為我在高中期間概述的所有領域的專家,但試著並征服一兩個領域。
在進入這些領域之前,我建議您真正了解其相關內容 - 在 Youtube 上簡單搜尋高級解釋即可為您提供所需的一切。那麼就讓我們開始吧。
電腦視覺:該領域涉及使用特殊類型的神經網路使電腦看到和理解事物。史丹佛大學在此線上發布他們的課程,並在線上提供講座、課程筆記和作業。完成這個過程,但不要擔心數學有時太複雜——課程的主要目的是加深你的知識,這是不可避免的。您還可以使用 OpenCV,這是一個電腦視覺庫,它可以為您完成許多複雜的工作。可以在這裡找到很棒的教學。完成這些後,請查看 Kaggle 和 UCI 上更高級的圖像資料集,甚至參加一些 Kaggle 競賽。
自然語言處理:了解電腦如何學習說話也是當今的一個突出話題。史丹佛大學再次提供了很棒的線上課程,可以在這裡找到。如果您不理解某些數學概念,請不要擔心,只需了解該領域的工作原理即可。對於實施,您可以學習此 Udemy 課程。不過,您也可以觀看一些著名機器學習者 Siraj Raval 的影片。如果您已經完成了這些工作,請嘗試執行簡單、眾所周知的項目,例如建立聊天機器人、情緒分析或為歌曲創建歌詞 - 簡單的 Youtube 搜尋應該可以幫助您。 ChatGPT 和 Claude 等更現代的應用程式建構在稱為大型語言模型的基於神經網路的系統上,該系統主要基於 Transformer 架構 - Andrew Ng 的這門課程是一個很好的起點。
強化學習:該領域專注於機器如何學習在特定環境中採取行動,其最受歡迎的應用是電玩領域。 Siraj Raval 在這方面有一個非常好的播放列表,可以在這裡找到。如果您正在尋找專門使用 Tensorflow 等高級套件的基於實現的教程,Denny Britz 有一套可靠的教程,可以在這裡找到。 David Silver 的 UCL 課程也很棒,儘管初學者可能會覺得有點棘手 - 可以在這裡找到。一旦完成這些,就可以開始從網路上下載基礎項目或遊戲,並添加人工智慧元素來控制代理的行為,這是非常合乎邏輯的。簡單的演練可以再次透過簡單的 YouTube 搜尋找到。
數據科學與分析:該領域是一個新興領域,擁有大量令人興奮的工作機會,並且在大多數現代企業中廣泛使用,從收集的大量數據中獲取見解,從而為業務決策提供資訊。我建議參加 SuperDataScience 的付費課程或加州大學聖地牙哥分校基於 Python 的免費課程,儘管您可以透過簡單的 Google 搜尋找到資料科學的特定學習路徑。您也可以使用以下連結來學習 SQL 和 Matplotlib,它們是用於許多現代資料分析的切線語言。在學生層面學習這一點的優勢是就業能力——我有很多高中朋友獲得了數據科學實習機會,因為在該學科中獲得的見解可以立即被公司貨幣化。數據驅動的決策其實是當今企業界唯一的決策形式。
還有玻爾茲曼機(用於推薦系統)、對抗網路(人工智慧改進人工智慧)和遺傳演算法(以類似於自然進化的方式改進問題的解決方案)等領域,但在我看來,它們的利基組合適用性和需要更高級的數學水平使得它們不太適合作為起點。如果您對其中一個領域有特別的熱情,請隨意探索這些領域,儘管它們也沒有像其他領域那樣有詳細的記錄,這可能會使掌握它們稍微困難一些。
如果你想長期在這個領域工作,從更全面的角度理解至關重要——我的意思是了解突破性的發現、關於如何應用它的討論及其對社會的一般影響。一旦您對技術的工作原理有了必要的了解,您就應該開始執行本節中列出的操作 - 我相信從本學習路徑的第 4 節開始是一個很好的起點。這類資訊可能不會特別有助於實現數據問題的演算法,但對於當今世界如此不可或缺的技術來說,它確實有助於形成對其作用、真正潛力和局限性的更強有力的理解。
高中生可以做一些事情來加深他們對該領域的一般理解並讓他們更豐富:
開始閱讀研究論文:我想強調的是,這些論文實際上並不像聽起來那麼具有挑戰性。雖然控制現代技術的數學可能非常先進,但簡單地了解行業前線發生的事情從來都不是一件壞事。如果您遇到不懂的地方,請把它寫下來——有足夠的選擇讓您忙碌起來。該網站提供了大量可供入門的優秀論文,但在您完成這些論文後,它會提供一個更長的列表- 只需閱讀第5 節中您感興趣或與您的“專業知識”領域相關的論文即可。如果您無法真正理解其中許多研究論文,請嘗試閱讀我編寫的本指南,其中提供了一些最新創新的更易於理解的細分。這個 YouTube 頻道也提供了大量論文的介紹解釋,每一篇的解釋時間只有兩分鐘。
追隨先驅者:吳恩達(Andrew Ng)、伊恩·古德費洛(Ian Goodfellow) 和揚·勒昆(Yann LeCunn) 等人定期接受采訪,提供我們今天所知的人工智能和機器學習“創始人」的觀點。這個 YouTube 頻道收集了這些演講中的精華,並將它們彙編成一個中心資源 - 每晚觀看一次,我保證您在幾週內就會感覺自己像個專家。
掌握該領域的最新動態:對於任何對科技感興趣的人來說,《連線》是最好的平台之一。它每天都會發布多個與人工智慧相關的故事(儘管現在不是每個人都這樣嗎?),可以在這裡找到。這是了解當時趨勢的一種快速且引人入勝的方式。或者,訂閱 TechCrunch 的 Facebook Messenger 機器人 - 它經常有感興趣的人工智慧相關文章,並每天提示您資訊。
理解其中的意思:沒有比聽 TED 演講更好的方法了。他們的演講者在該領域知識淵博,並且在演講中越來越強調人工智慧。可以在此處找到影片集。
理念:人工智慧有支持者,也有反對者。然而,背後的哲學卻很有趣。我最喜歡的探索這一領域且適合高中生的書籍包括 Ray Kurzweil 的《How to Create a Mind》和 Max Tegmark 的《Life 3.0》——請嘗試一下。他們著眼於人工智慧更長期的發展軌跡,這可能與日常工作無關,但有助於理解整個技術的更廣泛背景。
貢獻:如果您是那種喜歡從他人經驗中學習的人,請查看諸如此 Facebook 群組之類的討論管道,人們會定期發布與該領域進展相關的富有洞察力的文章和論文。或者,如果想進行更隨意的對話,請查看有關 AI 的 Reddit 子版塊,如下所示。
深入研究數學:是的,您確實需要大學程度的數學基礎知識,但如果您是數學優秀的學生,沒有什麼可以阻止您學習一些線上課程。微軟有一個免費課程,我聽說過它很好,並且只需要高中程度的數學。這個 Quora 主題還有一些很棒的資源,您應該查看一下。 3Blue1Brown 在社群中也是一個著名的名字,因為他的 Youtube 影片非常適合學習一些更複雜概念背後的數學(主要是線性代數和微積分)。
我聽太多人告訴我,學習機器學習和人工智慧對於一個高中生來說太困難了,不能寫這篇文章——只要有一條良好的學習路徑,任何人都可以學習。在此,我祝福每個人在這條學習道路上一切順利。
如果您對本指南有任何補充或可能的改進,請隨時向此儲存庫提出 PR。如需回饋、合作或一般疑問,請隨時寫信給我@[email protected]。