都說做一件事情最好的時機就是「現在」,但是從何開始往往會難倒一大批人,更不用說是想要入門數據科學和機器學習的朋友了。本文是一篇科普掃盲文章,作者以初學者的視角,為同樣想「入坑」的讀者們提供了一些建議,還有一些可以獲得的學習資源。
「我想學習機器學習和人工智能,該從哪開始呢?」
從這里開始。
兩年前,我開始在網上自學機器學習,并且通過 YouTube 和博客分享了我的學習過程。我并不知道我在做什么,在決定開始學習機器學習之前我從沒寫過代碼。
當人們發現我的作品,他們通常會私信并提問。我不一定知道所有的答案,但我會盡量回復。人們最常問的問題是:「該從哪開始?」,其次是:「我需要多少數學基礎?」
今天早上我就回答了一堆這樣的問題。
有人告訴我他已經開始學習 Python 并打算學習機器學習了,但不知道下一步該做什么。
「我已經學習了 Python,下一步該做什么?」
我回復了一系列學習的步驟,并且復制到了這里。如果你想成為一個機器學習從業者,卻不知道怎么寫代碼的話,可以把本文當作一個大綱。我的學習風格是代碼優先:先把代碼運行起來,再根據需要學習理論、數學、統計以及概率等方面的東西,而不是一開始就學理論。
記住,開始學習機器學習你會面臨很多阻礙。別急,慢慢來。把這篇文章添加到收藏夾,以便隨時參考。
我傾向于使用 Python,因為我是從 Python 開始的,并且一直在持續使用它。你也可以用其他語言,但本文的所有步驟都是基于 Python 的。
學習 Python、數據科學工具和機器學習概念
問我問題的那些郵件作者們說他們已經學了一些 Python。但這一步也同樣適用于新手。花幾個月的時間學習 Python 編程和不同的機器學習概念。這兩部分知識你都會需要。
在學習 Python 編程的同時,練習使用 Jupyter 和 Anaconda 等數據科學工具。花幾個小時來研究一下,它們是用來做什么的以及為什么要使用它們。
學習資源
人工智能要素 (https://www.elementsofai.com/)—人工智能和機器學習主要概念概述。Coursera 上的 Python 教程—(https://bit.ly/pythoneverybodycoursera) 從頭學習 Python。通過 freeCodeCamp 學習 Python (https://youtu.be/rfscVS0vtbw)—一個視頻涵蓋了 Python 所有主要概念。Corey Schafer 的 Anaconda 教程 (https://youtu.be/YJC6ldI3hWk)—一個視頻學會 Anaconda(數據科學和機器學習需要的配置環境)。Dataquest 的新手 Jupyter Notebook 教程 (https://www.dataquest.io/blog/jupyter-notebook-tutorial/)—一篇文章學會啟動和運行 Jupyter Notebook。Corey Schafer 的 Jupyter Note 教程 (https://www.youtube.com/watch?v=HW29067qVWk)—一個視頻學會使用 Jupyter Notebook。
學習通過 Pandas、Numpy 和 Matplotlib 進行數據分析、操作和可視化
一旦你已經掌握了一些 Python 技巧,就會開始想要學習如何處理和操作數據,為了實現這一目的,你需要熟悉 Pandas、Numpy 和 Matplotlib。
Pandas 可以幫助你處理二維數據,類似 Excel 文件里的信息表,包含行和列。這類數據被稱為結構化數據。Numpy 可以幫助你進行數值計算。機器學習把你能想到的所有東西都轉化成數字,進而在這些數字中尋找模式。Matplotlib 可以幫助你繪制圖形和可視化數據。理解表格中的一堆數字對人類來說可能很困難。我們更喜歡看到有一條線穿過的圖。可視化可以更好得傳達你的發現。
學習資源
Cousera 上的 Python 應用數據科學 (http://bit.ly/courseraDS)—開始打磨數據科學方向的 Python 技能。10 分鐘入門 pandas (https://pandas.pydata.org/pandas-docs/stable/gettingstarted/10min.html)—快速概覽 pandas 庫及其部分最有用的函數。Codebasics 的 Python pandas 教程 (https://youtu.be/CmorAWRsCAw)—該 YouTube 系列介紹了 pandas 的所有主要功能。freeCodeCamp 的 NumPy 教程 (https://youtu.be/QUT1VHiLmmI)—一個 YouTube 視頻學會 NumPy。Sentdex 的 Matplotlib 教程 (https://www.youtube.com/watch?v=q7Bo_J8x_dw&list=PLQVvvaa0QuDfefDfXb9Yf0la1fPDKluPF)—YouTube 系列助你學會 Matplotlib 所有最有用的功能。
借助 scikit-learn 學習機器學習
現在你已經掌握了操作和可視化數據的技能,是時候學習在數據中尋找模式了。scikit-learn 是一個 Python 庫,它內置了許多有用的機器學習算法供你使用,它還提供了許多其他有用的函數來探究學習算法的學習效果。
重點在于學習都有什么樣的機器學習問題,比如分類和回歸,什么樣的算法最適合解決這些問題。現在還不需要從頭開始理解每個算法,先學習如何應用它們。
學習資源
Data School 的基于 scikit-learn 的 Python 機器學習 (https://www.youtube.com/watch?v=elojMnjn4kk&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A)—一個 YouTube 播放列表教你 scikit-learn 的所有主要函數。Daniel Bourke 對探索性數據分析的簡要介紹 (https://towardsdatascience.com/a-gentle-introduction-to-exploratory-data-analysis-f11d843b8184)—把你在上述兩個步驟中學到的知識融合在一個項目中。提供代碼和視頻,助你開始第一個 Kaggle 競賽。Daniel Formosso 的基于 scikit-learn 的探索性數據分析筆記 (https://github.com/dformoso/sklearn-classification)—以上資源的更深入版本,附帶了一個實踐上述內容的端到端項目。
深度學習和神經網絡在沒有太多結構的數據上最有效。二維數據雖然有結構,圖像、視頻、音頻文件和自然語言文本也有,但不會太多。
小貼士:在大多數情況下,你會想對結構化數據使用一組決策樹(隨機森林或 XGBoost 之類的算法),而對于非結構化數據,你會想使用深度學習或遷移學習(使用預先訓練的神經網絡并將其用于你的問題)。
你可以開始把這樣的小貼士用一張便條記錄,然后邊學習邊收集這些信息。
學習資源
Cousera 上 Andrew Ng 的 deeplearning.ai (https://bit.ly/courseradl) (https://bit.ly/courseradl)—商業上最成功的從業者之一講授的深度學習課程。Jeremy Howard 的 fast.ai 深度學習課程 (https://course.fast.ai/) (https://bit.ly/courseradl)—工業界最好的實踐者之一講授的深度學習實際操作方法。
其他課程和書籍
在學習過程中,最理想的情況是你可以用自己的小項目來練習所學的東西。這不必是復雜的,需要改變世界的事情,但你可以說「我用 X 做了這個」。然后通過 github 或博客分享你的工作。github 用于展示你的代碼,博客文章用于展示你如何表達自己所做的工作。你應該為每個項目都發布一下這些內容。申請一份工作的最好方法是你已經做完了工作要求做的事情。分享你的工作是向未來的潛在雇主展示你能力的好方法。
在你熟悉了如何使用不同的機器學習和深度學習框架之后,你可以嘗試通過從頭開始構建它們來鞏固你的知識。你不必總是在生產或從事機器學習時這樣做,但是從內部了解事情是如何工作的將有助于你建立自己的工作。
學習資源
Daniel Bourke 的如何開始你自己的機器學習工程 (https://towardsdatascience.com/how-to-start-your-own-machine-learning-projects-4872a41e4e9c)—開始你自己的工程可能會很難,這篇文章可以給你一些指引。Jeremy Howard 的 fast.ai 深度學習基礎 (https://course.fast.ai/part2)—自上而下學習后,本課程將幫助你從下往上填補空白。Andrew Trask 的 Grokking Deep Learning (https://amzn.to/2H497My)—這本書將教你如何從頭開始構建神經網絡,以及為什么你應該知道如何構建。Daniel Bourke 推薦的機器學習書籍 (https://www.youtube.com/watch?v=7R08MPXxiFQ)—該 YouTube 視頻整理了一些機器學習最佳書籍。
答疑
每一步需要多長時間?
你可能會花 6 個月或更長的時間。別著急,學習新事物需要時間。作為一名數據科學家或機器學習工程師,你正在培養的主要技能是如何針對數據提出好的問題,然后使用你的工具來嘗試尋找答案。
有時候你會覺得自己什么都沒學到。甚至倒退。忽略它。不要以天為單位來衡量,看看你一年后有什么樣的進步。
我在哪里可以學到這些技能?
我在上面列出了一些資源,它們都是在線的,而且大部分都是免費的,類似的資源還有很多。
DataCamp (http://bit.ly/datacampmrdbourke) 是一個很好學習網站。另外,我的 Machine Learning and Artificial Intelligence resources database (https://bit.ly/AIMLresources) 整理了免費和付費的學習資料。
記住,作為數據科學家或機器學習工程師,很大一部分工作是要解決問題。通過你的第一個作業探索這里的每一個步驟,并創建你自己的課程來幫助學習。
如果你想知道一個自我引導的機器學習課程的例子是什么樣子的,看看我的 Self-Created AI Masters Degree (https://bit.ly/aimastersdegree)。這是我在過去 9 個月內從零編碼變成機器學習工程師的過程。它不是完美的,但是我的真實經歷,因此你可以試試。
統計怎么辦?數學怎么辦?概率呢?
實踐過程中你會學到這些東西的。先從代碼開始。把代碼運行起來。在運行代碼之前,嘗試學習所有的統計、數學、概率知識,就像是在試圖煮沸大海。它會讓你退縮。
如果代碼不運行,統計、數學和概率都不重要。先運行起來,然后用你的研究技巧來驗證它是否正確。
證書?
證書很好,但你不是為了證書而學習,而是為了提高技能。不要和我犯同樣的錯誤,不要認為證書越多代表技能越多,并不是這樣的。通過上述課程和資源建立知識基礎,然后通過自己的項目完善專業知識(這些是課程無法傳授的知識)。
-
機器學習
+關注
關注
66文章
8493瀏覽量
134170 -
python
+關注
關注
56文章
4825瀏覽量
86281 -
數據科學
+關注
關注
0文章
168瀏覽量
10421
發布評論請先 登錄
數學專業轉人工智能方向:考研/就業前景分析及大學四年學習路徑全揭秘

如何在低功耗MCU上實現人工智能和機器學習
用“麥琳文學”打開人工智能,我配擁有一個好的AI學習方法嗎?

嵌入式和人工智能究竟是什么關系?
具身智能與機器學習的關系
人工智能、機器學習和深度學習存在什么區別

評論