自學人工智慧之數學篇,數學入門並不難
寫這篇文章很久想了很久,到底該怎麼寫?
關於數學與機器學習的關係,觀點很多。
寫本文的目的,希望結合眾家之長,試圖解決數學對機器學習入門的困擾。
現在數學困擾大家主要有這幾個方面:
1、 機器學習需要的數學知識是不是很難,網上的公式都看不懂?
2、 很多人都說工作後就是調參,調包,不太需要用到數學吧?
3、 零基礎究竟該怎麼自學數學,學到哪個程度?
觀點:
1、數學是必須的。
數學對於機器學習來說是必備基礎,數學是內功,你要理解一個演算法的內在邏輯,沒有數學是不行的。以後跑演算法的時候,你可能就是調參、調包,不會用到數學。但是你發現效果不好的時候,如果你數學不懂,就很難作最佳化,數學是你在機器學習路上的天花板。
2、數學也不是很難。
但是,數學真的很難嗎?說實話,對於一般人來說,是有點門檻的,但沒有你想的那麼難。這裡假設你上過大學的數學課,你就具備了機器學習的數學入門門檻了,之後的數學啃一啃是可以下來的。如果說你沒有上過大學的數學,emmm,挺難的,這說明你除了跟別人付出同樣的努力之外,還要多付出一些大學數學的學習。
3、 相比於數學,實際專案能力更重要。
這句話沒錯,可是大部分人在沒接觸到實際專案的時候,就已經被擋在門外了。很多從事機器學習的你問他數學,他可能也不是很懂,可是你能咋辦。人家面試你的時候就要問你這些,問你對演算法的理解,你不會那你就過不了面試啊。
4、 學習是枯燥的,但是有辦法緩解。
在學習演算法的時候,我們會看到很多推導,學著學著就怕了,就失去興趣了,這裡有個方法可以有效緩解。我之前的系列中有本書叫做機器學習實戰,跟著上面的程式碼敲一敲,很容易出成果,你會看到在現實中的實際應用,很有成就感。
5、 數學的學習是可以“取巧”的
這裡說的取巧指的是,數學的學習是有跡可循的,因為入門階段的數學實際上就需要那些,列出來,你自己啃一下就可以了。具體的學習方法不是等你把數學都學好了再去學演算法知識。而是你在學習演算法的時候,看到你數學缺哪塊再去補哪塊,這是最高效的。當然了,在這之前你可以通讀一遍數學的基礎,對學習有個大概是更好的。
數學必備知識點
1、 線性代數
標量、向量、矩陣和張量;矩陣向量的運算;單位矩陣和逆矩陣;行列式;方差,標準差,協方差矩陣;範數;特殊型別的矩陣和向量;特徵分解以及其意義;奇異值分解及其意義
Moore-Penrose 偽逆;跡運算
2、 機率統計
機率學派和貝葉斯學派;何為隨機變數和何又為機率分佈;條件機率,聯合機率和全機率公式;邊緣機率;獨立性和條件獨立性;期望、方差、協方差和相關係數;常用機率分佈;貝葉斯及其應用;中心極限定理;極大似然估計;機率論中的獨立同分布
3、 最佳化
計算複雜性與NP問題;上溢和下溢;導數,偏導數及兩個特殊矩陣;方向導數和梯度;梯度下降法;牛頓法;仿射集,凸集和凸錐;超平面,半空間及凸集分離定理;不改變凸性的運算;凸函式及凸最佳化簡述;無約束的最佳化,等式約束最佳化,不等式約束最佳化;線性規劃中對偶理論;拉格朗日對偶理論
4、 資訊理論及其他
資訊熵;條件熵;相對熵 (KL散度);互資訊;幾種常用的距離度量;圖論;樹論
上面數學基本上就是我們所要學的數學的全部了,看上去有點嚇人是不?不要慌,沒有那麼難,一點點啃下去就可以了。
推薦資料:
資料一:機器學習王牌課程CS229課後配套數學,專門配套機器學習的。
資料二:Yoshua Bengio的《深度學習》書,網上公開的,前面有一部分是對數學的專門講解,很基礎很全面。
資料三:知乎答主的優秀回答,很細緻,適合初學者
我看過很多數學材料,上面三個是我總結過來最好的,必看。但是每個人基礎不同,可能看完上面三個後,還是有需要去看別的。
數學實在太弱怎麼辦?
如果你上面三個材料看起來很吃力,或者說你的數學沒有達到大學的水平。那就是數學基本功的問題了。針對這種情況,我覺得只能把相關的大學數學書拿出來翻一翻,基本概念要弄懂,什麼是矩陣、導數等等,偷不了懶。
1、數學分析與機率論
同濟大學數學教研室,高等數學,高等教育出版社,1996
王松桂、程維虎、高旅端,機率論與數理統計,科學出版社,2000
2、矩陣和線性代數
同濟大學數學系編,工程數學線性代數(第五版),高等教育出版社2007
以上三本數學書,如果你對基礎概念忘了的話,可以選擇性看下相應的篇章。
重申:
最好的數學學習方式是邊學邊補,沒必要百分之百看懂數學的推導過程,初級階段懂個70%也就夠了,有些實在太難的,就沒必要鑽牛角尖了。網上動輒看到幾百塊錢的數學教程,希望大家不要被割智商稅。
討論學習,文章首發,公眾號:learningthem
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31549715/viewspace-2200126/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java自學入門之靜態變數Java變數
- Kafka並不難學Kafka
- 【數學基礎篇】--詳解人工智慧之數學 積分學,概率空間,大數定律和中心極限定理人工智慧
- 《MySQL 入門教程》第 14 篇 MySQL 常用函式之數學函式MySql函式
- 數學 之 數論
- 人工智慧的數學人工智慧
- 入門Python難不難?零基礎到底要怎麼學Python?Python
- 聊聊 AI 學習入門 - 數學和資訊理論AI
- 人工智慧數學基礎----導數人工智慧
- 自學Java如何入門?Java
- 學習Python難不難?Python
- 學習Python爬蟲難嗎?入門好學嗎?Python爬蟲
- 普通人轉行程式設計師之自學java入門篇行程程式設計師Java
- 網路安全技術可以自學嗎?網路安全技能難不難學
- 爬蟲不得不學之 JavaScript 入門篇爬蟲JavaScript
- 學習Java開發難不難?好學嗎?Java
- 人工智慧必備數學基礎:高等數學基礎(2)人工智慧
- 人工智慧必備數學基礎:高等數學基礎(1)人工智慧
- 大資料學習入門難,給初學者支招大資料
- 平面設計難不難學?
- egg 自學入門demo分享
- Python入門難嗎?如何順利入門Python學習?Python
- Jon Gjengset認為學習Rust語言並不難GseRust
- 【機器學習之數學】01 導數、偏導數、方向導數、梯度機器學習梯度
- pandas 學習筆記 (入門篇)筆記
- Linux 學習:入門十法篇Linux
- 不學無數——Java代理模式Java模式
- 不學無數 — 裝飾模式模式
- 不學無數——初識反射反射
- 不學無數——組合模式模式
- Python學習起來難不難?Python
- Java轉行學Python難不難?JavaPython
- 學Java程式設計難不難?怎麼才能學好?Java程式設計
- 【數學】組合數學 - 卡特蘭數
- TypeScript 入門自學筆記(一)TypeScript筆記
- python學習之數字Python
- 美賽整理之Matlab的工程數學計算學習筆記(高等數學)Matlab筆記
- NOIP複習之1 數學數論