專欄 | 從入門到高階,讀懂機器學習需要哪些數學知識(附網盤)

2022-01-05 機器之心

機器之心專欄

轉自公眾號:運籌OR帷幄(ID:ORycww)

作者:留德華叫獸、王源

本篇文章是由留德華叫獸 在知乎的優秀回答改編擴展而成的, 作者留德華叫獸有著應用數學和碩士運籌學、優化理論的背景轉到德國海德堡大學讀博,主要從事機器學習、計算機視覺的研究,希望自己的一些經驗可以對想入門機器學習的朋友們有點借鑑作用。作者王源對數學優化和機器學習都有涉及,在原回答的框架下加入了自己學習過程的經驗和理解,並收集了相關優秀課程的資源連結供大家參考。同時文末還給出了本文所述的全套優秀課程的網盤連結資源(包括視頻,英文字幕,課件,參考書籍等等)。

本篇文章想要說明的是數學並非認識世界的唯一途徑,即使數學水平不高的你同樣也可以開展機器學習方面的工作和研究。但是不可否認數學是自然科學領域探究真理的有效工具,有了強大的數學背景知識會讓你看待問題更加深刻,這就是我們經常會看到很多大牛們都是出身數學專業。另外本文所列舉的課程比較多,要想一下子去窮盡所有課程顯然也不現實,大可不必打好所有的數學基礎再去學機器學習,最好的做法是當你對機器學習本身的理解達到一定瓶頸的時候,你可以補一補一些相關的數學基礎之後再回去看機器學習的問題也許會更快的有所突破。所以本文針對不同學習基礎的朋友們,劃分初,中,高三個學習階段,供大家在學習中進一步去取捨。

首先對人工智慧、機器學習一個綜述:

大話「人工智慧、數據科學、機器學習」--綜述 - 知乎專欄(https://zhuanlan.zhihu.com/p/26645993

籠統地說,原理和基礎都在數學這邊,當然有很多偏應用和軟體使用的技術,例如「深度學習調參」等,這些報個培訓速成班就能學會的技術含量不那麼高的東西,不在討論範圍內。

這裡要討論的,是如何系統的學習,然後自己能編出這機器學習或深度學習的程序或軟體--我想,這才能稱為一個合格的機器學習、數據科學家。

1, 微積分(求導,極限,極值)例如傳統的BP神經網絡的訓練算法實際上是基於複合函數求導的鏈式法則,又比如目前多數的監督學習訓練算法都基於極大似然估計,而極大似然估計的求解往往涉及求導,求極值的內容。

2, 線性代數(矩陣表示、矩陣運算、特徵根、特徵向量)是基礎中的基礎,主成分分析(PCA)、奇異值分解(SVD)、矩陣的特徵分解、LU 分解、QR 分解、對稱矩陣、正交化和正交歸一化、矩陣運算、投影、特徵值和特徵向量、向量空間和範數(Norms),這些都是理解機器學習中基本概念的基礎。某篇圖像分割1w+引用的神文核心思想便就求解構造矩陣的特徵向量。

國內的線性代數教材偏重於計算而忽視了線性空間,特徵值等基本概念闡述。我個人也是在接觸機器學習的內容後發現自己的線性代數基礎並不牢固,下決心惡補線性代數,下面我推薦幾個課程。

線性代數課程首推  MIT的 Gilbert Strang老爺子的課程。第一次聽老爺子的課程,看到矩陣乘法竟然有四種理解方式的時候著實是驚呆了,原來線性代數可以這麼美。看到SVD分解的時候馬上就能感覺到SVD分解能在很多場景排上大用場。同時該課程深入淺出,相信一般本科生都可以看懂。課程連結如下:Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare(http://t.cn/RmyqB2v

3Blue1Brown的Essence of linear algebra(https://goo.gl/ZuwgNK)以非常直觀的角度審視了線性代數的重要概念,直觀但不失深刻,配合上高大上的動畫效果,讓人體會到了大道至簡的感覺。一共15個視頻,每段視頻大約十分鐘左右,花費不了多少時間就能看完。

3, 數據處理當然需要編程了,因此C/C++/Python任選一門(推薦Python,因為目前很多庫和Library都是用Python封裝),數據結構可以學學,讓你編程更順手更高效,但是編程不是數據處理的核心。熟練使用Matlab或者Python調用opencv庫是必要條件,但是again他們只是工具,業餘時間自學,多練練就沒問題。有同學問用R行不行,補充一點,用什麼程式語言很大部分取決於你的核心算法會調用什麼已有的庫函數,比如樓主的科研裡面核心算法往往是MIP(混合整數規劃)問題需要調用Cplex或Gurobi庫函數,因此C/C++/Python/Java這些和Cplex接口良好的語言都可以拿來用,這時候R就別想了。(更新:最新Gurobi版本支持R)

另外雖然圖像處理界一些open-source的code都用C++寫的,但是鑑於使用方便都會提供Python的接口,因此需要用到這些code的話,用Python調用比較方便;但是,如果是高階骨灰級玩家,需要修改甚至自己寫原始碼,那麼還是推薦C/C++,因為他們的速度最快。

我個人用的比較多的是C++和Python,因此下面推薦二個課程,

C++我覺得coursera上的 C++程序設計(https://goo.gl/eAGvSz) 就很好,適合有C語言基礎的人去進一步學習。國內多數工科出身的非計算機軟體專業的學生一般都只學過C語言,而C語言本身的風格比較「硬」,從C語言轉到面向對象的程序設計,需要有一個思想上的適應過程。

優達學城上的計算機科學導論(https://goo.gl/Lp3YjJ )是一門零基礎的Python入門課程。該課程的特點是深入淺出的授課方式,在講解Python語法的同時背後潛移默化的傳遞著程序設計的思想,包括數據結構,代碼風格,Debug的小技巧。課程中間還穿插入一些對大牛的採訪,大大提高了課程豐富性。

最後說一下C++的經典教材C++ prime plus,該書的厚度達到了一個很厚的境界,初學者基本不可能從頭看到尾,更傾向於本書是一個字典式的查詢式的書籍,需要的時候讀其中1-2章節。套用一句經典語:不要想著一下子掌握一門程式語言的所有特性。

4, 算法(算法複雜度)。通常高校都會有算法類的課程,會概述各類算法的基礎和應用,其中包括:精確算法、近似算法、啟發式算法、演化算法、遞歸算法、貪婪算法等待,還有各類優化算法。這部分內容很多會和數據結構相互關聯。算法非常核心,想必大家都聽說過算法工程師這個職位。關於數學模型和算法的區別、聯繫,參見:

【學界】整數規劃精確算法/近似算法/(元)啟發算法/神經網絡方反向傳播等算法的區別與關聯

5, 矩陣求導,這裡把矩陣求導單獨拎出來貌似是有點突兀了,因為矩陣求導和前四塊內容比起來根本不是一個層次上的。我個人在開始學習機器學習的過程對矩陣求導產生了極大的疑惑,後來發現有類似疑惑的同學也不少,同時由於矩陣求導貌似是一個三不管的地帶,微積分裡的多元函數求導貌似是講了點,矩陣分析可能也有涉及到的,但是缺乏一個統一的理論。很多監督學習的問題多半是一個極大似然估計問題,而這個極大似然估計問題多半是一個優化問題,而這個優化問題的求解多半依賴於矩陣求導得到最優解,最典型的例子就是邏輯回歸了。下面推薦兩個矩陣求導的材料供大家參考

1,概率論+統計(很多數據分析建模基於統計模型)、統計推斷、隨機過程。可以毫不誇張的說,概率論+統計是機器學習的核心數學理論,前面提到的微積分和線性代數實際上是扮演打工仔的角色。進一步說大多數情況下,我們會依據概率論+統計推到出一個機器學習模型或者算法,而最終的計算過程往往要依賴微積分和線性代數。所以如果你僅僅是實現一個機器學習算法,那麼掌握初級教程裡邊提到的微積分和線性代數就足夠了,如果你想進一步探究機器學習算法為什麼是這樣的,你想解釋機器學習模型為什麼好用或者不好用,就需要概率論+統計的知識。

實話說概率統計的課程和教材看過不少,至今對概率統計的理解仍然不夠。相信絕大多數工科生在本科都學過概率論與數理統計這門課,但是很多教材未能體現出概率真正的思想,名為概率論實際上改名叫做「各種概率分布的介紹」更為妥當,基本上這類教材的節奏都一樣先介紹一種分布,然後開始求期望,求方差,求條件分布,各種微積分或組合數的運算啊。經過多年的摸爬滾打的經驗,我推薦下面兩門課程。

一個是MIT的概率系統分析與應用概率Probabilistic Systems Analysis and Applied Probability(https://goo.gl/stzNFZ),這個是課程主頁,課程視頻相關資料和教材都有。這門課的主要教材是introduction to probability(https://goo.gl/qWeZzM),作者是Dimitri P. Bertsekas,作者以幽默的語言去詮釋概率論,這一點是非吸引人的。

國內也有一個不錯的教材,就是陳希儒的概率論與數理統計,該教材最經典的莫過於,用一個時間段內某個路口發生交通事故的實例去解釋泊松分布為啥是這個長這個樣子,力圖告訴你分布背後的故事,而不是拘泥於計算。該課程也有網絡視頻課程不熟悉英文課程的同學也可參考 中科大 概率論與數理統計(http://t.cn/RmyKd8W)

2,線性規劃+凸優化(或者只學一門叫Numerical optimization,統計、機器學習到最後就是求解一個優化問題)、非線性規劃等。個人覺得機器學習裡邊最常用到的優化內容都是屬於Numerical optimization 和 凸優化的,所以各推薦一門課程學習。

凸優化自然是首推Stephen Boyd 和 Lieven Vandenberghe的 教材Convex optimization(http://t.cn/Rmy9Z9w) 與該教材對應的斯坦福的課程為 Convex optimization(https://goo.gl/inJExJ)。該書分為三部分,理論(主要介紹凸集,凸函數,凸優化等等概念),應用(凸優化在各種問題上的應用,只有真正的做過這些應用問題才能對這一章感悟很深),算法(這部分相對來說比較普通)。本人在博士一年級的時候購買了該書的紙質版,目前這本書已經快被翻爛了,每次看這本書都有新的感悟,尤其是應用這個部分。初學者建議先可以放一放應用這個部分,把理論部分啃下來,然後看看算法這部分。

Numerical optimization 的主要內容是 基於梯度的優化算法,線搜索方法,線性規劃,可微的非線性規劃問題。這裡推薦Jorge Nocedal和Stephen J.Wright的 Numerical optimization 與該教材對應的課程為 Numerical optimization(http://t.cn/Rmy9eQV)。該教材的特點是基本上把最常見的優化問題都覆蓋了,同時完全可以感受到雖然是優化教材但是其思想很計算機,作者總是會用一些小技巧來千方百計的降低算法的計算量(就像數據結構裡邊的算法一樣)。不同於上面那本凸優化書理論氣息過於嚴重,本書的作者基本上是以算法為核心(雖然數學理論證明也一點不少),算法偽代碼很多,如果會一門程式語言的同學馬上就可以去實踐了。初學者可以適當拋開部分數學理論證明,更多的放到理解算法Motivation上去,同時親自去實踐這些算法會更好一些。

3,數值計算、數值線代等

當年我是在數學系學的這門課,主要是偏微分方程的數值解。但我覺得其開篇講的數值計算的一些numerical issue更為重要,會顛覆一個數學系出身小朋友的三觀。(原來理論和現實差距可以這麼大!) Conditional number, ill-conditioned problem,會讓你以後的編程多留個心眼。

@留德華叫獸

這裡提到了偏微分方程數值解,偏微分方程的理論一般是數學系才會學的課程,而且我們一般人的感受是偏微分方程和機器學習啊這些東西很遙遠很遙遠。其實也並非如此,一些研究者把偏微分方程和Deep neural networks 結合在一起了,用偏微分方程對SGD進行建模進而進行一些分析。文章發表在arx上 DEEP RELAXATION: PARTIAL DIFFERENTIAL EQUATIONS FOR OPTIMIZING DEEP NEURAL NETWORKS(http://bit.ly/2uLzBOY),不得不說作者的腦洞還是比較大的。

恭喜你,到這裡,你就可以無壓力地學習Machine Learning這門課了(其實機器學習,通篇都是在講用一些統計和優化來做clustering 和 classification這倆個人工智慧最常見的應用)。並且你就會發現,ML課中間會穿插著很多其他課的內容。恩,知識總是相通的嘛,特別是這些跨專業的新興學科,都是在以往學科的基礎上由社會需求發展而來。

到這裡,其實你已經能看懂並且自己可以編寫機器學習裡面很多經典案例的算法了,比如regression,clustering,outlier detection。

關於優化類課程的綜述,歡迎關注我的專欄:

[運籌帷幄]大數據和人工智慧時代下的運籌學 - 知乎專欄(https://zhuanlan.zhihu.com/operations-research)

運籌學(最優化理論)如何入門? - 知乎(http://t.cn/RlNoHiM)

學到Mid-level,就已經具備絕大部分理論基礎了。然後做幾個實際項目,就能上手然後就可以「吹噓」自己是搞機器學習的,就能找到一份工作了。

但是要讀Phd搞機器學習的科研,那麼高階課程必不可少,而且同一個topic你需要上好幾門課,並且你博士的課題,很可能只是一本書中一個章節裡面一小節裡講的算法,去改進他。

比如,樓主的博士課題就是mixed linear programming + discrete graphical models + markov random fields +regression + clustering + segmentation。

再高階的課程,就是比較specific的課程了,可以看你做的項目或者以後的concentration再選擇選修,比如:Probabilistic Graphical Models(概率圖模型), Integer Programming(整數規劃),計算機視覺,模式識別,視頻追蹤,醫學圖像處理,增強學習,深度學習, 神經網絡,自然語言處理,網絡信息安全,等等等等。

深度學習:目前非常火,打敗了非常多幾十年積累起來的經典方法。

增強學習:也很火,遊戲AI、自動駕駛、機器人等等,它都是核心。

概率圖模型:深度學習之前非常popular的「學習」方法,有嚴格的數學模型和優美的算法,雖然目前被前倆者蓋過了風頭,但是依然有它的立足之處。什麼?你不知道最近用PGM發了篇Nature,打敗了CNN?快看下面:

Robin Shen:如何評價 Vicarious 在 Science 上提出基於概率圖模型(PGM)的 RCN 模型?(http://t.cn/RlNoFhH)

再比如有用偏微分方程做圖像處理的(比較小眾),那麼這時候你肯定要去學一下偏微分方程了,大都是以科研為主導的。

科研嘛,為了發文章,就是要嘗試前人沒嘗試過的方法,萬一效果不錯呢,就是一篇好paper了,對吧。

附上頂尖會議排名,共勉:

國際「頂尖」計算機視覺、機器學習會議大搜羅--附排名&接收率(https://zhuanlan.zhihu.com/p/28037164)

網際網路教學資源

書目沒有特別推薦的,但是建議看英文原版。

樓主推薦海德堡大學歷史上最年輕的教授 Fred的機器學習視頻(我基本都看過):(https://goo.gl/umwQEg)另外一個教授給你上課的時候,開頭一般是會推薦書給你的(如果你確實喜歡看書的話)。當然了,翻牆是樓主suppose你們需要擁有的基本生存技能。

(註:以下再推薦一些視頻,僅受之以漁,多為graduate course)

1,Machine Learning by Prof. Nando de Freitas(https://goo.gl/WGLRp7), 此視頻是其在UBC時13年所錄,後來跳槽去牛津計算機系了。(https://goo.gl/a8avcx)

2,Deep learning at Oxford 2015 by Prof. Nando de Freitas(https://goo.gl/WGLRp7), 跳槽到牛津所錄。

(https://goo.gl/I5abw8)

3,Probabilistic Graphical Models by Daphne Koller, 史丹福大學計算機系教授(https://goo.gl/WL1ZrQ)

經過樓主殫精竭慮的整理,以上優秀課程的全套網盤連結資源(包括視頻,英文字幕,課件,參考書籍等等),您可以輕鬆獲得。配合本人上面所述的親身學習經歷,相信您可以選擇出合適自己的課程開始學習的徵途。

需在「運籌OR帷幄」公眾號回復關鍵字 「機器學習 ",獲取網盤連結

下圖是網盤資源預覽:

作者簡介:

留德華叫獸  系美國克萊姆森大學運籌學碩士,Ph.D. Candidate,師從整數規劃大師W. Adams,後跳槽至歐盟瑪麗居裡博士項目,期間前往義大利IBM Cplex實習半年,巴黎綜合理工學術訪問一季,現任德國海德堡大學交叉學科計算中心、組合優化實驗室研究員,師從組合優化大師G. Reinelt,主攻計算機視覺、(醫學)圖像處理。

王源  系流程工業綜合自動化國家重點實驗室,東北大學系統工程專業博士在讀。研究方向為工業領域調度問題和運行優化問題。博士初期主要學習Numerical optimization, Convex optimization,Nonlinear programming相關知識,用以解決實際工業過程中的優化問題。因近年人工智慧機器學習大火,因而研究重心逐漸從數學優化轉至機器學習相關領域。探索新領域,不忘老本行,希望能從優化角度看待機器學習問題。

本文為機器之心經授權轉載,二次轉載請聯繫原作者獲得授權

✄---

加入機器之心(全職記者/實習生):hr@jiqizhixin.com

投稿或尋求報導:editor@jiqizhixin.com

廣告&商務合作:bd@jiqizhixin.com

相關焦點

  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。如果你覺得機器學習難,那一定是你打開的方式不對(認真臉)。機器學習看似難度大,但對入門者來說,也還是有一條通用的學習路徑。正如前幾個專欄裡介紹的,還有很多優秀的入門資料可以大大降低學習門檻,同時激發學習的樂趣。
  • 機器學習:入門方法與學習路徑 (附資料)
    需要多說一句的是,在網際網路領域從事機器學習的人,有2類背景的人比較多,其中一部分(很大一部分)是程式設計師出身,這類同學工程經驗相對會多一些,另一部分是學數學統計領域的同學,這部分同學理論基礎相對紮實一些。因此對比上圖,2類同學入門機器學習,所欠缺和需要加強的部分是不一樣的。
  • 乾貨丨機器學習:入門方法與學習路徑 (附資料,值得收藏)
    需要多說一句的是,在網際網路領域從事機器學習的人,有2類背景的人比較多,其中一部分(很大一部分)是程式設計師出身,這類同學工程經驗相對會多一些,另一部分是學數學統計領域的同學,這部分同學理論基礎相對紮實一些。因此對比上圖,2類同學入門機器學習,所欠缺和需要加強的部分是不一樣的。
  • 2019年Google最新中文版《機器學習速成課程》分享
    文末附本課程所有視頻及資料下載地址本課程將解答如下問題    了解 Google 專家針對機器學習方面的關鍵概念提供的最佳做法。    1、機器學習與傳統編程有何不同?    2、什麼是損失,如何衡量損失?
  • 一本書讀懂機器學習算法原理​
    學好機器學習需要哪些數學知識?基於深度學習的目標檢測算法綜述用一張圖理解SVM的脈絡深度卷積神經網絡演化歷史及結構改進脈絡理解梯度下降法用一句話總結常用的機器學習算法機器學習算法地圖深度學習算法地圖其他的不再一一列舉。這些文章有一個共同的特點:脈絡清晰,深入淺出,一針見血。
  • 乾貨 | 機器學習入門方法和資料合集
    作者 何從慶授權自 AI算法之心近些天在微信群裡經常看小夥伴問到「機器學習如何入門,看哪些資料 ?」,於是乎想根據筆者學習兩年多的學習經驗,介紹下機器學習如何入門,該看哪些資料?下面我將從以下幾個方面整理機器學習入門的資源:(1)語言:機器學習中常用的語言。
  • ML中的數學學習
    ML表示機器學習,DEV表示開發,本專欄旨在為大家分享作為算法工程師的工作,機器學習生態下的有關模型方法和技術,從數據生產到模型部署維護監控全流程,預備知識、理論、技術、經驗等都會涉及,近期內容以入門線路為主,敬請期待!作為一名數學系出身做算法的同學,其實已經不止一次和大家談到這個問題了,依然有很多人問到這方面的問題。
  • 深度學習-機器學習從入門到深入全套資源分享
    LeetCode && leetcode題解 && 《算法導論》中算法的C++實現        機器學習算法實戰        深度學習框架        如何成為一名算法工程師 && 從小白到入門算法,我的經驗分享給你~ && 我的研究生這三年
  • 入門者的機器學習/深度學習自學指南
    包括數學基礎、計算機編程基礎、機器學習和深度學習的相關公開課程(本文最後提供了如何找到這些公開課資源的方式)和經典教材。1. 數學基礎1.1 線性代數Gilbert Strang. 18.06: Linear algebra. MIT, 2011.
  • Python3入門人工智慧 掌握機器學習+深度學習 提升實戰能力【完結】
    Python3入門人工智慧 掌握機器學習+深度學習 提升實戰能力【完結】  致不甘落後的你:
  • 機器學習:從入門到精通,總有一款教程適合你!
    近年來人們對機器學習的認識也越來越多,很多人都希望學習相關的知識。但機器學習不是一個容易學習的領域,需要選擇適合自己難度的學習資料。
  • LaTeX專欄003|入門篇-排版基礎知識
    繼前兩篇入門篇文章LaTeX專欄001|入門篇-談安裝與排版心得和LaTeX 專欄002|入門篇-兩種編輯器的配置的推送之後,有大多數同學都開始用上了這款排版軟體,這裡我不說假話,通過我從2017年開始用起它來排版數學筆記之後,讓同學接觸與認識到LaTeX的同學有近四五位數,從中我也幫助過無數的同學正確安裝並使用它,我很高興你們能通過它來排版一篇屬於自己的數學
  • 乾貨:數學智力遊戲《數獨》高清教學視頻MP4格式+PDF文件 20集(百度網盤)
    數獨是源自18世紀瑞士的一種數學遊戲。是一種運用紙、筆進行演算的邏輯遊戲。玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每一個粗線宮(3*3)內的數字均含1-9,不重複。
  • 獨家 | 一文讀懂Adaboost
    前面已經說明了Adaboost算法其最終模型訓練集的誤差是有上確界的,也就是說該算法是確切可以收斂到誤差界的。這一點保證了Adaboost算法的可收斂性。算法的優劣勢:前面就Adaboost算法分析了這麼多,那麼它到底有哪些優勢,又有哪些不足呢?
  • 推薦 | 機器學習入門方法和資料合集
    點擊上方「Python數據之道」,選擇「星標公眾號」精品文章,第一時間送達作者 | 何從慶來源 | AI算法之心機器學習入門方法和資料合集近些天在微信群裡經常看小夥伴問到「機器學習如何入門,看哪些資料 ?」
  • 從機械工程師到機器學習工程師,我也是個數據科學家了
    所以完成學業後,至少在理論知識方面,你無需經常學習更新自己的知識儲備。(持續學習不是鶴立雞群的關鍵)l 工具有限:有用於機器控制、硬體設計等的標準工具基準。不過還是第一點中提到的,無需頻繁更新知識體系。l 不一定要求高學歷。這是主觀判斷,因為事實是如果想得到合適的工作而且成為他人眼中的高水平機械工程師,有機械工程領域的長期工作經歷比高學歷更管用。
  • 推薦|機器學習入門方法和資料合集
    近些天在微信群裡經常看小夥伴問到「機器學習如何入門,看哪些資料 ?」,於是乎想根據筆者學習兩年多的學習經驗,介紹下機器學習如何入門,該看哪些資料?下面我將從以下幾個方面整理機器學習入門的資源:(1)語言:機器學習中常用的語言。
  • 谷歌機器學習速成課學前預備書單
    來自:圖靈教育(微信號:turingbooks)近日谷歌發布機器學習速成課,引發熱議,許多準機器學習愛好者摩拳擦掌,準備入坑。
  • 機器學習數據預處理完整入門指南!(附 Python 代碼)
    本文將帶你領略,如何在任意的數據集上,針對任意一個機器學習模型,完成數據預處理工作。第一步,導入讓我們從導入數據預處理所需要的庫開始吧。庫是非常棒的使用工具:將輸入傳遞給庫,它則完成相應的工作。你可以接觸到非常多的庫,但在 PYTHON 中,有三個是最基礎的庫。任何時候,你都很可能最終還是使用到它們。
  • Python+Matlab+機器學習+深度神經網絡+理論+實踐+視頻+課件+源碼,附下載!
    資料包括三部分,第一部分是精心給數學基礎不太好的朋友準備的,畢竟要學好機器學習的理論,數學的基礎得過關,高數線代概率論起碼要知道點吧