該拿什麼拯救上不懂吳恩達機器學習課的數理盲......

該拿什麼拯救上不懂吳恩達機器學習課的數理盲......

來自專欄聶大哥有葯14 人贊了文章

寫在前面:本篇針對數理盲,數理大神請隨意skip~

學習數據分析到底需要多少數理知識?真是公說公有理婆說婆有理......

作為曾經的數理兩眼瞎(現在癥狀稍微好一丟丟),想跟大家隨意聊聊入坑數據這兩年以來的心得所感~

我們先來看看美帝這幾年大火的數據分析項目課程設置,到底涵蓋多少數理基礎課?選取兩個比較出名的標杆項目~

*這裡只說分析項目,不是Data Science哈,學Data Science的沒有數理基礎就算耍流氓了~

1.UT-Austin:MS in Business Analytics (傳說中的女神項目)

2. Michigan State - MS in Business Analytics (跟工業界接軌,就業率很驚艷)

從這兩校的課程設置來看,似乎只有統計方面的內容~ 例如Austin的Statistics I ,Decision Analysis(涉及概率論),MSU的Business Analytics for Problem Solving with Statistics,而且基本統計是第一學期就要學習的科目。

所以說!就算沒有什麼高數基礎,只要把基礎統計搞紮實了,照樣可以安心上路!

大哥在校讀Business Analytics兩年里,也根本,沒有,學過高數(線代+微積分)...... 其實大學四年也沒學過...... (汗顏)

那麼,那麼多知乎大神小神提到數理基礎在數據分析中很重要,到底為啥呢?!

從技術層面上說,一個數據分析師所必備的業務能力包括:清理+合併數據(一般用到SQL/R/Python/其他)-- 初步探索數據(用統計方法研究變數之間的關係等)-- 可視化數據(用R/Python/Tableau等)-- 初步建立幾種模型(選擇合適的機器學習模型)-- 分析比較模型表現到確定最佳模型(涉及統計知識)

除了一頭一尾涉及的統計知識外,剩下的數理就出現在機器學習建模這塊。但機器學習其實也有兩種入門方法:一種是簡單粗暴的應用型入門,第二是細嚼慢咽的學術型入門。前者幾乎不太需要數理基礎,只要理解模型基本概念(intuition)和會軟體操作或R/Python調包即可。

在美帝,一般數據分析項目也只會教授模型基本概念,然後就是教教軟體操作,再給你幾個case study自己去研究...... 我讀書那會兒也是這麼過來的= = 教授自己的業務水平都一般般,他自己不是搞這個出身的,也是現學現賣。

掐指一算,我這個調包俠也在應用型機器學習中摸爬滾打了大半年,做過的相對大的數據項目包括一個課程項目(密西根Flint市水源污染預測),一個Capstone(跟密西根供電公司合作一學期的預測項目)。雖然兩個數據團隊都沒有數理基礎,但也順順利利水過了......

應用型機器學習入門強烈推薦Udemy上的爆款課Machine Learning A-Z,應該是目前市面上最簡單的機器學習課了,比較類似我讀書期間教授的教法,基本不講數理...... 40小時良心視頻,涵蓋模型概念+R+Python操作,這門課的總結我也在慢慢寫,希望小白們在入門階段有重點地學習~

史上最簡單粗暴的機器學習入門:知識點梳理(一)

史上最簡單粗暴的機器學習入門:知識點梳理(二)

那麼傳說中很簡單很基礎的吳恩達機器學習課,到底適不適合數理小白呢?

如果你大學學過線代和微積分,基本還是能hold住的。

而我這個沒學過高數的六年文科狗,當年是怎麼學吳恩達的呢?!簡直是跪著學,前幾周的演算法視頻刷了一遍又一遍,還是紅火恍惚。每到模型優化,涉及微積分的部分(Cost Function & Gradient Descent),就是我的噩夢...... 都怪吳大神一遍又一遍溫柔地說,沒有學過微積分也沒關係哦~~~~~~ 堅信吳恩達教的我於是一遍又一遍地刷,然而那個優化核心原理搞不懂,真的很痛苦......

最後咬咬牙,決定還是從頭啃高數!

微積分我選擇了Coursera上Ohio State University的Calculus One,這輩子最喜歡的數學課了!!!哈佛本科+芝大博士畢業的教授特別可愛特別有激情...... 痛心的是不知道為什麼這門課莫名其妙就在Coursera消失了......

現在Coursera上還有賓大的微積分課,或者大家可以上Khan Academy的。Khan的特色是可以跟著老師一直算算算算算算,強化印象......

  • Calculus 1 | Math | Khan Academy

越學越覺得微積分很有意思,把Calculus 1基礎課啃完,覺得曾經兩眼一抹黑的機器學習世界亮堂多了~

線代的話,吳恩達課里介紹過基礎運算,網上大家推薦比較多的一是MIT的公開課(網易雲課堂有),二是Khan Academy的線代。

  • 麻省理工公開課:線性代數_全35集_網易公開課
  • Linear Algebra | Khan Academy

兩門課我也都只上了一個開頭,對線代的熱情沒有微積分這麼高漲= = 想著以後如果有必要,再接著補......

微積分和線代都馬馬虎虎入門了,就開始上Coursera專門針對機器學習中的數學的專項課了(要按順序上哈)。

  • Coursera | Mathematics for Machine Learning: Linear Algebra
  • Coursera | Mathematics for Machine Learning: Multivariate Calculus
  • Coursera | Mathematics for Machine Learning: Principal Component Analysis

這是英國帝國理工工程學院開的課,先插一句種草的話~ 這個學院竟然是Dyson冠名的...... 就是那個吸塵器中的戰鬥機品牌 —— Dyson。這個神一般的吸塵器解救了多少婦女勞動力啊!!!自從有了Dyson,老公再也不用擔心我不吸地了~~~

嘻嘻,皮這一下很開心~

繼續回到帝國理工這門課,旁聽是免費的,但是如果想得到quiz分數,寫coding作業以及拿證書,就要支付49刀/月。為了省錢,我大概花了兩個禮拜把這三門專項課上完了。總體感覺還是不錯的:

  1. 這門課的內容和機器學習緊密相關,非常實用,涉及比較詳細的演算法中的數學推導,但教學還算step by step,還是好理解的~ 個人認為需要有一些Calculus 1的基礎再上會比較好。
  2. 前兩門課上得比第三門PCA相對更容易理解,好些學員也都這麼反映...... 第三門難度有所提升,講得也沒有前面清楚,一搜老師背景,德國來的博士 T.T 而且coding作業超級難......
  3. 這門課的quiz設計得還可以,量也不大,個人覺得通過做quiz還是挺有成就感的,對課程內容理解有所加深。編程作業主要強調的是用Python中的numpy包進行計算,看著很複雜,其實叫你填空的代碼部分都不難。最好還是學點python基礎再寫coding作業...... BUT!!!第三門德國老師的coding作業,簡直是bug一般的存在,突然變得,特,別,難,instructions特別不清晰...... 反正臣妾我實在是做不到,討論欄裡面也是diss聲一片,請求課程組更改coding作業。至於怎麼完成呢,偷偷告訴大家,搜索「Math for Machine Learning + Github」...... 你們懂的......
  4. 如果感覺被第三門德國老師的PCA虐到了,可以投奔吳恩達男神的懷抱尋求溫暖...... 吳大神講的PCA基本沒有數學推導部分。

這些數理基礎課啃完,就可以愉快地去上吳恩達了...... 反正我也是最近開始了第N遍刷吳恩達,目前還在進行中,但感覺數理障礙明顯小多了...... 遇到不懂的,再去搜索怎麼回事。例如吳恩達講邏輯回歸的時候,沒有解釋cost function公式是怎麼推導來的...... Google以後才知道涉及極大似然估計(MLE),再去看文章看視頻這是個啥東東。

最後說一下自己的一些心得體會總結吧:

  1. 沒有任何數理基礎的小白啃完這些課還是比較花時間的,所以還是強烈建議先應用型入門機器學習,再慢慢根據需要補數理知識。非常欣賞的知乎大神 @微調 也寫過機器學習入門指南(如何用3個月零基礎入門機器學習?),裡面也提到「不要試圖掌握所有的相關數學知識再開始學習」。貼一下大神總結的機器學習中的數學姿勢:

Coursera那門Math for ML專項課裡面,大部分都涉及了哈~

2. 選擇適合自己當前水平的課程或者教材,循序漸進地學習,否則很容易懵逼,嚴重打擊學習積極性...... 如果你跟我一樣是數理盲,也許比較合適的學習順序是:(Udemy)Machine Learning A-Z —— 補補微積分+線代 —— (Coursera)吳恩達 —— (Coursera)台大林軒田的《機器學習基石》和《機器學習技法》+ 周志華《機器學習》

林軒田和周志華都是我下一步的計劃,周志華的西瓜書曾經看過兩三章,數理不好真心理解起來有點難~

3. 其實學那麼多數學幹嘛咧,好像調包俠們也並不需要...... = =

參考一個 @微調 大神寫的回答吧......

微調:如何看待「機器學習不需要數學,很多演算法封裝好了,調個包就行」這種說法?

如果你做調包俠你開心,還是可以繼續這條路向前狂奔不回頭~

其實吧,我補數學太實在的原因也沒有 = = 一是近幾年讀書+待產比較閑;二是高中時代還是挺喜歡數學的,想彌補之後七年沒有學數學的遺憾+找回對數學的激情;三是對機器學習還挺有興趣的,想在機器學習這條路上探索深一點...... 補過一些數學以後再重新思考演算法,覺得還是豁然開朗多了,心情大爽~~~ 吼吼吼~~~


推薦閱讀:

數據分析師之路開始啟程
零基礎入門Python,暑期為你的BA/DA申請拔得頭籌!
格隆匯研究:讓Facebook成眾矢之的 這家數據分析公司什麼來頭?
雨沐田:數據分析模型之態勢分析(SWOT)

TAG:機器學習 | 數據挖掘 | 數據分析 |