怎樣搞定機器學習裡的數學?斯坦福高手教你具體問題具體分析

2020-12-16 量子位

夏乙 慄子 發自 凹非寺量子位 出品 | 公眾號 QbitAI

做機器學習需要多少數學基礎?這是很多初學者最關心的問題,答案也眾說紛紜。

有人說,概率論線性代數要預先精通;有人說,微積分要懂一點;也有人說,沒必要特地去補;甚至有人專門寫了繞開數學的深度學習入門教材……

史丹福大學計算機系學生、斯坦福AI實驗室研究助理(RA)Vincent Chen,最近在矽谷最牛孵化器Y Combinator官方博客上發表的一篇文章,就專門深入探討了裡這個問題。

△Vincent Chen

Vincent想要說的是,具體問題具體分析。

他跟領域內的很多工程師、研究人員、教育工作者,討論了這個問題,再加上自己的經驗,得出了這樣的結論:解決不同問題,可能需要不同程度的直覺 (Intuition) ,所以首先要知道自己的目標是什麼。

構建產品和做研究,需要的數學就不太一樣。

不過,還是要先從大家都差不多的入門階段說起。

入門須知

熟悉線性代數/矩陣運算,是機器學習的軟性前提。也就是說,最好懂,不強制。

當然,學習數學最好的環境還是學校。沒有了學校裡的壓力、競爭和交流,就要找其他方式來補充:學習小組、學習型午餐會都是不錯的形式。

想要在工作中學數學,編程最好也會一點,它會成為你的學習工具。

要知道,在機器學習任務中,數學和代碼是交織在一起的。代碼需要數學上的直覺,甚至和數學符號的語法有共通之處。

舉個例子:練習手動實現損失函數(loss functions)或者優化算法(optimization algorithm),就是真正理解背後概念的好方法。

再舉個比較實際的例子:在神經網絡裡手動為線性整流函數(ReLU)實現反向傳播,就涉及用微積分裡的鏈式法則來有效計算梯度,而運用鏈式法則,需要用ReLU的梯度乘以一個導數。

最開始,要先將ReLU激活函數可視化:

計算梯度(就是看起來的斜率),要可視化一個階梯函數,用指示函數表示:

現在的數據科學框架能直觀地把數學運算翻譯成可讀的代碼,NumPy就是其中之一。對於上面這個任務,它就可以將激活函數(藍色曲線)用代碼表示出來:

relu = np.maximum(x, 0)梯度(紅色曲線)也可以:

grad[x < 0] = 0隻有親自求了一遍導數,才能理解這行代碼。

掌握基礎之後,就可以根據你的實際需求自定義學習方向了。

造機器學習產品需要的數學

作為一名學生,Vincent通過和多名機器學習工程師聊天,了解了他們在debug時最有用的數學知識。

總的來說,統計學和線性代數總是有用的,但面對不同的問題又有不同的需求。

那麼,怎麼確定該精修哪些數學知識呢?

首先,要定義你的系統。

想寫代碼為系統建模,可用的資源多得是。在構建系統的過程中,要想著這些問題:

系統的輸入/輸出是什麼?怎樣準備適合系統的數據?怎樣構建特徵、處理數據能讓模型更好地泛化?怎樣為你的問題定義合理的目標?然後,在你用到數學的時候,去學習它。

一頭扎進機器學習裡,你就會發現自己會卡在某些步驟。卡住的時候,該查什麼呢?你的權重合理嗎?你的模型為什麼用這種損失就不收斂?

這時候,就需要對數據做假設,換個方式約束優化,或者換個算法試試。於是在這個建模或者debug過程裡,你會發現懂數學對做決定有很大幫助,比如說要選擇損失函數和評價指標,數學就是個好工具。

這可以說是一種「按需」學習的方法了。

做機器學習研究需要的數學

如果是做研究的話,就需要廣泛的數學基礎,來給你鋪路。

現在,很多研究都是在現有系統之上進行的,缺少對基礎的理解。

這樣還不夠,研究者應該貢獻更基本的模塊。比如說,可以像深度學習教父Geoff Hinton提出的膠囊網絡(Capsule Networks)一樣,重新思考卷積神經網絡(CNN)這種基本模塊。

要想在機器學習領域做出這樣的成就,就需要問一些基礎問題,也就需要對數學的深刻理解。《神經網絡與深度學習》教材的作者Michael Nielsen稱之為「帶著玩心的探索」。

這個探索過程中,可能會在一個問題上卡幾個小時,可能需要換個角度去看問題。不過,只有這樣,科學家才能超越直觀想法和架構的組合,提出深刻、有見地的問題。

和構建產品不一樣的是,機器學習研究裡的基礎思考不是「按需」進行的,想要以高級的數學框架所要求的廣度來思考、批判性地解決問題,需要耐心學習。

不要怕

總的來說,數學可能是有點可怕,你會卡在一個又一個地方。但是,這本來就是數學學習很重要的部分。

不要害怕。

實際上,數學好的人都要花好多時間來練習,於是,他們對這種做數學「被卡住」的感覺就習以為常了。想要學好數學,首先需要建立學生的心態。

想要習以為常,當然需要付出時間和努力,加油~

更多內容,可以移步原文:

https://blog.ycombinator.com/learning-math-for-machine-learning/

— 完—

相關焦點

  • 斯坦福復旦教練天團帶你搞定美國數模競賽
    人們提出實際問題,根據問題搭建合適的數學框架,並選擇相應的算法來求解,最後將得到的數學答案轉化為對原先提出問題的全面合理解答。由「有方博雅」教育推出的斯坦福復旦教練帶你搞定美國HiMCM數模競賽。數模的訓練包含大量的研讀分析及撰寫paper的過程,對於提升學術寫作能力,學習學術規範有很大助益。 3、助力留美申請和自主招生由於數模比賽既展示了學生使用數學工具解決具體問題的能力,又體現出學生強大的寫作能力,這使得該比賽在學生申請美國大學以及自主招生材料準備中擁有極大的含金量。
  • 徹底解決數學問題-《機器學習的數學》出版了
    數學是對大家掌握機器學習造成障礙的最主要原因之一,沒有紮實的數學基礎,真正掌握機器學習談何容易?如何解決機器學習領域的數學問題?打下堅實的數學基礎,是很多初學者乃至進階者關心的話題。我們把這個問題拆解成下面幾個問題:接下來我們將逐一解答這些問題,給出學好數學的一個合理方案。
  • 機器學習中所需要的數學知識介紹
    編者按:Vincent Chen是史丹福大學計算機科學專業的學生,同時也是斯坦福AI研究室的一名研究助理。本文他給我們帶來了在機器學習中所需要的數學知識介紹。以下是論智對原文的編譯。 很多沒有良好數學基礎或統計學的同學們總會問,到底什麼樣的數學水平才能入門機器學習?目前還沒有確切的答案。
  • 怎樣學數學?機器學習的徵程從這裡開始……
    筆者也曾面臨同樣的困惑:怎樣才是好的開始?應該學習Python還是選擇R語言?數學總是很可怕,筆者總是擔心自己應該從何處開始學數學,還擔心如何為機器學習打下堅實的基礎。不管怎樣,祝賀你,至少你已經下定決心了。本文將帶你做好開啟機器學習生涯之前的所有準備工作。
  • AI | 怎樣快速入門機器學習和深度學習?
    cid=54167)看到這裡,大家會發現,其實只要你想學,視頻大把大把的,網際網路讓知識的獲取不再困難,真正阻礙你的只有你的決心和毅力了。最後,提個坑,別去看張志華老師的統計機器學習視頻,張老師的水平是很高的,但視頻裡滿屏幕的公式,又讓我回想起大學期間被各種定理推論支配的恐懼。中國大學的課感覺就一直都在勸退,提醒你學不會的,你聽不懂的,你智商不夠的。
  • 『A+』關於Python機器學習,一套無敵的體系是怎樣的?
    好多問題呀,大家的問題可能更多,咱們重點關注於:(1) 語言如何選擇?(2) 該從哪裡開始?學什麼?怎麼學? (3) 算法就要涉及到數學啦,怎麼辦呀! (4) 學了之後怎麼用?案例怎麼做? No1.人生苦短…這句我就不說了,最主要的原因在於大家都在用,公司裡你的同事和老大都用Python玩數據建模型,你難道還敢不用嗎!(說白了,我一天能幹完的活我要花兩天嗎?當然不需要的!)具體來說:1.
  • 資源 |不要再問我什麼數學水平才能學機器學習啦
    為了構建數學的準備知識,首先我會提出與傳統課堂不同的思維模式和學習方法。接著,我會大致敘述在機器學習領域不同類型所需要的具體背景知識,大致涵蓋了高中的統計學和微積分,到最近的概率圖形模型(PGM)。最後,我希望你能找到自己所在領域所需要的數學知識。希望這篇文章對你有用!數學可以說是很多人的噩夢,包括工程師們。在開始之前,我想談談那些「數學好的人」到底有什麼秘訣。
  • 七步精通Python機器學習
    本文旨在通過七個步驟,使用全部免費的線上資料,幫助新人獲取最基本的 Python 機器學習知識,直至成為博學的機器學習實踐者。這篇概述的主要目的是帶領讀者接觸眾多免費的學習資源。這些資源有很多,但哪些是最好的?哪些相互補充?怎樣的學習順序才最好?
  • 具體問題具體分析,具體案例的學習和分析,地理學習事半功倍
    如果你有著獨立的思考能力和研究能力的話,那麼對於這門學科來說你能夠掌握舉一反三的技巧其實也非常的重要,效率也自然獲得非常高的提升。那麼除此之外,我介紹另一個在課堂上的學習方法給大家,這種學習方法其實非常的常見,但是很多人都不注意總結,所以說都不被重視的。這種學習方法,這就是我所說的案例學習法。
  • 資料| 《 機器學習數學基礎 》
    《 機器學習數學基礎 》機器學習構建於數學語言之上,以表達看似直觀實則難以形式化的概念。一旦得到恰當的形式化,我們就可以使用數學工具推導出機器學習算法設計的選擇結果。這幫助我們理解正在解決的任務,同時了解智能的本質。全球數學專業的學生常見的一種抱怨是數學話題似乎與實際問題沒有什麼相關。我們認為機器學習是促使人們學習數學的直接動力。本書旨在作為構建現代機器學習基礎的大量數學文獻的指南。我們通過直接指出數學概念在基礎機器學習問題中的有用性來促進對數學概念學習的需求。
  • 拒絕Bug的機器學習:史丹福大學開源隨機計算圖 Certigrad
    By李澤南 ZhuZhiboSmith  在實踐中,機器學習算法經常會出現各種錯誤,而造成錯誤的原因也經常難以找到。近日,史丹福大學的研究者提出了一種開發機器學習系統的新思路:以數學定理為基礎構建機器學習隨機計算圖,以達到無bug、自動化的目的,他們提出了隨機計算圖系統Certigrad。
  • 機器學習的5種「兵法"
    作者:Jason Brownlee譯者:Claire 於麗君 璐璐暢校對:孫強 羅雙英在研究機器學習中,理論在其整個自上而下方法中試用於哪裡呢?在傳統的機器學習教學中,豐富的數學理論知識對於理解機器學習是至關重要的,我的機器學習教學方法通常是教你如何端對端解決問題以及傳輸結構。
  • 斯坦福統計學習理論筆記:Percy Liang帶你搞定「賊難」的理論基礎
    、如何使用數學思維來設計更好的機器學習方法等基本課題。今天要介紹由史丹福大學計算機系教授 Percy Liang 近期公布的 CS229T/STAT231 的學習筆記。本課程是關於學習算法的理論分析。課程中介紹的許多分析技術(包括概率、線性代數和最優化的完美結合)值得研究,並且在機器學習之外也是有用的。更深入的理論理解可以提供新的視角,並且可以幫助對現有算法進行修改和優化,也有助於提出新的算法。如果沒有理論提供的概念性分析,這些新算法可能很難發現。
  • 高中政治《具體問題具體分析》教案教學設計及說課稿模板!
    一、教學目標【知識目標】知道具體問題具體分析的基本含義;理解具體問題具體分析在馬克思主義體系中的重要地位;理解具體問題具體分析是我們正確認識事物的基礎,是我們正確解決矛盾的關鍵。這奇特的現象,告訴我們一個哲學道理:矛盾具有特殊性,我們需要具體問題具體分析。這就是我們接下來要學習的內容《堅持具體問題具體分析》。環節二:新課講授1.具體問題具體分析是正確認識事物的基礎。連連看活動PPT出示連連看題目:如果你是廠長,你會怎麼安排這些職工的工作?
  • 斯坦福經典AI課程CS 221官方筆記來了!機器學習模型、貝葉斯網絡等...
    史丹福大學的人工智慧課程「CS 221」,這門鐵打的課程從2011年開始已經走過了8個年頭,流水的講師換了一批又一批,送走的畢業生一撥又一撥,至今仍然是人工智慧學習的經典課程之一。目前2019年春季課程正在如火如荼的開展中。這門課程是沒有教科書的,所有內容都蘊含在講師的教案以及課後作業中。
  • python機器學習預測分析核心算法.pdf
    AI項目體驗地址 https://loveai.tech《Python機器學習 預測分析核心算法》內容簡介  在學習和研究機器學習的時候,面臨令人眼花繚亂的算法,機器學習新手往往會不知所措。本書從算法和Python語言實現的角度,幫助讀者認識機器學習。
  • 這幾個機器學習核心問題,不會數學也能搞定!
    對此有很多解釋,但有一個例子很清楚地說明了這一結論:想想那些非常聰明的人,比如說,在數學領域非常聰明的人。想像一下這類人在數學課上是不是都不太專心——為什麼?因為他/她知識吸收地非常快。他/她意識到了這一模式,並決定在剩下的課堂時間裡不再集中注意力。這些人也可能很快完成作業,因為他/她善於將課堂上學到的知識(又稱模式)運用到作業中。
  • 毛選《矛盾論》——矛盾並非千篇一律,關鍵要具體問題具體分析
    這是《矛盾論》裡的原話,我理解為:人們要認識事物,首先一定是被事物的某一特點所吸引的,產生了興趣或者好奇心再開始去全面了解。比如,我們日常的朋友聚會,當聚會時有幾個陌生人在場時,你首先記住的一定是那個展現出不同於其他人特質的陌生人。
  • 機器學習數學知識結構圖
    在今天這篇文章裡,我們將對機器學習的數學知識進行總結,畫出類似的結構圖。由於數學知識體系太過龐大,因此我們分成了整體知識結構圖,以及每門課的知識結構圖。先說整體結構。在機器學習中所用到的主要有微積分、線性代數、概率論、最優化方法、資訊理論、隨機過程、圖論這幾門數學課的知識。它們之間的關係如下圖所示。
  • 機器學習數學基礎入門線路
    往期回顧:我曾經不止一次說過"計算機能力決定你在算法中的下限,數學能力決定你在算法中的上限",在現在這個競爭激烈的場景下,數學能力將會成為你戰勝其他人的一件鋒利道具,因此我非常建議大家認證紮實數學基礎,讓數學從你的拖油瓶變成你的拖油瓶轉為你進步的動力,丟掉調包俠和調參師的帽子,你可以從下面的內容開始。