即使沒有數學背景
你想成為數據科學家或機器學習工程師,但對於所有涉及的數學感到害怕嗎?我懂你的感受,我也曾經這樣。
我在十年級時退學,所以在學校裡只學過三角學。當我開始接觸機器學習時,甚至不知道什麼是導數。
快轉到今天,我已經是亞馬遜的應用科學家,對我的數學能力感到相當自信。
我在這段時間內利用免費資源和自學掌握了必要的數學。今天,我將介紹一些我最喜歡的書籍、課程和YouTube頻道,這些都幫助我達到今天的成就,還會分享一些有效學習的技巧,讓你不會浪費時間在掙扎和無聊上。
你真的需要知道數學才能做機器學習嗎?
首先,讓我們來解答一個常見問題:你真的需要知道數學才能在機器學習領域工作嗎?
簡單的回答是:這取決於你想做什麼。
如果你從事的是需要研究的工作,比如創建新的機器學習算法,那麼你當然需要知道數學。但如果你在想是否需要學習數學,那麼你可能並不是在尋找這樣的工作……
但對於實踐者——我們行業中的大多數人——即使不懂所有的底層細節,通常也能勝任,尤其是對於初學者來說。
現在,像numpy、scikit-learn和Tensorflow這樣的庫已經為你處理了大部分繁重的工作。你不需要知道梯度下降背後的數學,就能將模型部署到生產環境中。
如果你是初學者,想進入機器學習,我認為花很多時間去記憶公式或學習線性代數並不是明智的選擇——你應該花時間去構建東西。訓練一個簡單的模型,探索你的數據,建立一個預測有趣事物的流程。
不過,了解數學在某些時候確實會有幫助。這裡有幾個例子:
想像一下,你正在訓練一個模型,但它無法收斂。如果你理解像梯度和優化函數這樣的概念,你就會知道是否需要調整學習率、嘗試不同的優化器或調整數據預處理。
或者,假設你正在運行線性回歸,並解釋係數。如果沒有數學知識,你可能會忽略像多重共線性這樣的問題,這會使那些係數不可靠。然後你從數據中得出錯誤的結論,可能會讓公司損失數百萬,甚至失去工作!開玩笑的。不過,我們在根據所建立的模型做商業決策時確實需要小心。
所以,雖然你可以(而且應該)在沒有深入數學知識的情況下開始,但隨著時間的推移,增強你的數學能力是合理的。
一旦你開始動手,你會開始遇到自然推動你學習更多的問題。當你需要調試或解釋你的結果時,數學會開始變得有意義,因為它與實際問題相關。
所以,真的不要讓對數學的恐懼阻止你開始。你不需要一開始就學會所有的數學才能取得進展。動手使用工具,建立你的作品集,讓數學隨著你的實踐知識一起成長。
學習什麼
好吧,現在讓我們談談在為機器學習工作建立數學基礎時應該學習什麼。
首先是線性代數。
線性代數對於機器學習至關重要,特別是對於深度學習。許多模型依賴於將數據和計算表示為矩陣和向量。以下是你應該優先考慮的內容:
- 矩陣和向量:把矩陣想像成數字的網格,向量則是列表。數據通常以這種方式存儲,像加法、乘法和點積這樣的操作是模型處理這些信息的核心。
- 行列式和逆:行列式告訴你一個矩陣是否可以被反轉,這在優化問題和解決方程組中使用。
- 特徵值和特徵向量:這些對於理解數據的變異性至關重要,是主成分分析等技術的基礎,幫助減少數據集的維度。
- 最後是矩陣分解:像奇異值分解(SVD)這樣的方法用於推薦系統、降維和數據壓縮。
現在我們來談談基礎微積分。
微積分是理解模型如何從數據中學習的核心。但我們不需要擔心解決複雜的積分——只需掌握幾個關鍵概念:
- 首先,導數和梯度:導數測量事物如何變化,而梯度(多維導數)是推動優化算法如梯度下降的力量。這些幫助模型調整其參數以最小化錯誤。
- 鏈式法則是神經網絡的核心。這是反向傳播的工作原理——這是一個計算網絡中每個權重對整體錯誤貢獻多少的過程,以便模型能夠有效學習。
- 最後,優化基礎:像局部最小值和全局最小值、鞍點和凸性這樣的概念對於理解為什麼某些模型會卡住而其他模型能找到最佳解非常重要。
最後,統計學和概率。
統計學和概率是理解數據的基礎。雖然它們更與數據科學相關,但對於機器學習也有很多價值。以下是你需要知道的:
- 分佈:熟悉常見的分佈,如正態分佈、二項分佈和均勻分佈。特別是正態分佈,在數據科學和機器學習中隨處可見。
- 方差和協方差:方差告訴你數據的分散程度,而協方差顯示兩個變量之間的關係。這些概念對於特徵選擇和理解數據結構非常重要。
- 貝葉斯定理:雖然這個名字聽起來有點嚇人,但貝葉斯定理是一個相當簡單但強大的概率推理工具。它是像朴素貝葉斯這樣的算法的基礎——大驚喜——用於垃圾郵件檢測以及貝葉斯優化超參數調整。
- 你還需要了解最大似然估計(MLE),這有助於通過找到最大化數據可能性的值來估計模型參數。這在邏輯回歸等算法中是一個非常基本的概念。
- 最後,抽樣和條件概率:抽樣讓你能夠有效地處理數據的子集,而條件概率對於理解事件之間的關係至關重要,尤其是在貝葉斯方法中。
現在,這絕對不是一個詳盡的清單,但我認為這是一個良好的概述,涵蓋了你作為數據科學家或機器學習工程師需要知道的常見概念。
接下來,我將分享學習這些概念的最佳資源,讓你不會感到壓力或不知所措。
資源
就我個人而言,我強烈建議在開始閱讀困難的書籍和嘗試解決方程之前,先對關鍵概念有一個視覺和直觀的理解。
對於線性代數和微積分,我無法不推薦3blue1brown的《線性代數的本質》和《微積分的本質》系列。這些視頻提供了對我們使用這些數學方法時實際測量和操作的良好介紹。更重要的是,它們展示了,嗯,可以說是其中的美?說數學視頻可以激勵人,這聽起來有點奇怪,但這些視頻確實如此。
對於統計學和概率,我也是StatQuest的忠實粉絲。他的視頻清晰、有趣,觀看起來非常愉快。StatQuest有關於核心統計和機器學習概念的播放列表。
所以,從這裡開始。一旦你有了視覺直覺,就可以開始學習更有結構的書籍或課程。
這裡有很多很棒的選擇。讓我們來看看一些我個人用來學習的:
我在剛開始時完成了倫敦帝國學院的《機器學習數學專業化》課程。這個專業化分為三個課程:線性代數、多變量微積分,最後一個是主成分分析。這些課程結構良好,包含視頻講座、測驗和Python編程作業的混合。我發現這個課程對於初學者來說有點挑戰,但它提供了很好的概述,我努力之後通過了。
DeepLearning.AI最近也在Coursera上推出了《機器學習數學專業化》。這個專業化也有關於線性代數和微積分的課程,但最後一個課程專注於統計和概率。我目前正在學習這個專業化,總體來說,我發現這也是一個非常好的選擇。每個模塊都以數學如何與應用機器學習概念相連的良好動機開始,並且有Python的編碼練習,以及一些有趣的3D工具可以玩,以便更好地理解這些概念。
如果你更喜歡從書籍中學習,我也有一些建議。首先,如果你喜歡動漫或小眾文化,我有一個推薦給你。
你知道他們有漫畫數學書嗎?
《微積分漫畫指南》
《線性代數漫畫指南》
《統計漫畫指南》
這些都超有趣。我不能說它們的教學質量是世界級的,但它們可愛且引人入勝,讓我不再害怕閱讀數學書。
下一步是“真正的”數學書籍。這些是一些最好的:
Deisenroth及其同事的《機器學習數學電子書》是一個很好的綜合資源,個人使用是免費的。它涵蓋了我們已經討論過的關鍵主題,如線性代數、微積分、概率和優化,重點是這些概念如何應用於機器學習算法。它相對友好,通常被認為是學習這些材料的最佳書籍之一。
接下來,《數據科學家的實用統計》是另一個受歡迎的資源,其中包含Python和R的代碼示例。
如何學習
現在,在我們開始學習之前,我認為花一點時間深入思考你為什麼想做這件事是很重要的。就我個人而言,我發現如果我只是因為感覺“應該”學習,或者因為這是某個隨意的作業,我很容易分心,實際上也不會記住太多。
相反,我會試著連接到更深層的動機。就我現在而言,我有一個非常基本的動機:我想賺很多錢,以便能照顧我愛的人。我有這個機會推動自己,確保每個人都安全和被照顧,現在和未來。這不是給自己施加額外壓力,而是對我來說,這是一種讓我興奮的方式,因為我有這個機會去學習和成長,並希望在這個過程中幫助他人。你的動機可能完全不同,但無論是什麼,試著將這項工作與更大的目標聯繫起來。
在優化學習時間的策略方面,我發現最有效的方法之一是用自己的話寫筆記。不要只是抄寫定義或公式——花時間總結概念,就像你在向別人解釋一樣——或者對未來的自己解釋。例如,如果你正在學習導數,你可以寫:“導數測量函數隨著輸入變化的情況。”這迫使你主動處理材料。
相關地,當涉及數學公式時,不要只是盯著它們——將它們翻譯成簡單的英語——或你喜歡的任何語言。例如,考慮方程y=mx+b:你可以將m描述為“顯示線的陡峭程度的斜率”,b則是“線與y軸交叉的點”。所以,最終公式可能是,“y的值(輸出)是通過將斜率(m)乘以x(輸入),然後加上b(線與y軸交叉的起始點)來確定的。”
你甚至可以把你的筆記當作個人博客。寫短文關於你所學到的東西是一個很好的澄清理解的方式,而教別人(即使沒有人閱讀)也能鞏固你自己的記憶。而且,在Medium或LinkedIn上分享你的文章,不僅可能幫助他人,還能讓你建立一個展示你學習過程的作品集。
相信我,當面試的時候,你會很高興擁有這些筆記!我經常使用自己的學習筆記。
我接下來的建議可能不是特別有趣,但我也建議不要只使用一個資源。就我個人而言,我從參加許多不同的課程中獲得了很多成功,最初將所有筆記混合在一起。然後,我會寫一篇博客,總結我所有的學習。
這種方法有幾個優勢:首先,重複有助於你記住東西。如果我多次看到一個概念,從多個角度解釋,我更有可能真正理解並記住它,而不僅僅是一兩天。而且,不僅是我多次看到這些信息,我還多次用自己的話寫下這些概念,包括最後一次將所有內容綜合起來,準備與他人分享——所以到最後我必須非常自信我真的理解了。
最後,一旦你建立了基礎,達到可以實際使用數學的水平,我真的建議從頭開始編碼概念。如果你能用numpy編碼梯度下降或邏輯回歸,那你就有了一個很好的開始。
再次強調,數學(可能)不會幫你找到工作
雖然我知道你現在非常興奮想開始學習數學,但我想再次強調一個重要事實:如果你是初學者,想獲得第一份工作,我認為數學不應該是你優先考慮的事情。
你的數學技能不太可能是幫你找到數據科學家或機器學習工程師工作的關鍵。
相反,優先獲得實踐經驗,通過項目實際構建東西。雇主更感興趣的是看到你能用已經擁有的工具和知識做什麼,而不是你記住了多少公式。
隨著你在工作中遇到挑戰,你自然會被激勵去學習算法背後的數學。記住,數學是一種幫助你成功的工具,而不應該成為你開始的障礙。
—
如果你想獲得更多有關如何進入數據科學的建議,可以下載一份免費的80多頁電子書,內容包括如何獲得第一份數據科學工作(學習資源、項目點子、LinkedIn檢查表等):https://gratitudedriven.com/
或者,查看我的YouTube頻道!
最後,提醒一下,這篇文章中有聯盟鏈接。所以,如果你購買了某些東西,我將獲得少量佣金,對你來說沒有額外費用。感謝你的支持。
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!