- 程序員數(shù)學(xué):用Python學(xué)透線性代數(shù)和微積分
- (美)保羅·奧蘭德
- 992字
- 2022-01-10 14:44:04
本書涵蓋的數(shù)學(xué)思想
本書涉及的數(shù)學(xué)主題很多,但有幾個(gè)核心主題。你可以在開(kāi)始閱讀之前注意下面幾點(diǎn)。
- 多維空間:你可能對(duì)二維(2D)和三維(3D)這兩個(gè)詞的意思有一些直觀的了解。我們生活在一個(gè)三維世界里,而二維世界是平面的,就像一張紙或一面計(jì)算機(jī)屏幕。二維世界中的一個(gè)具體位置可以用兩個(gè)數(shù)(通常稱為
坐標(biāo)和
坐標(biāo))來(lái)描述,而在三維世界中則需要3個(gè)數(shù)來(lái)定位一個(gè)位置。我們無(wú)法想象一個(gè)17維的空間,但可以用包含17個(gè)數(shù)的列表來(lái)描述其中的點(diǎn)。像這樣的數(shù)字列表被稱為向量,向量數(shù)學(xué)有助于更好地闡述“維度”這一概念。
- 函數(shù)空間:有時(shí),一個(gè)數(shù)字列表可以指定一個(gè)函數(shù)。舉個(gè)例子,有兩個(gè)數(shù)
和
,就可以創(chuàng)建一個(gè)形式為
的(線性)函數(shù)。在這種情況下,函數(shù)就是
。對(duì)于二維空間中的每一個(gè)點(diǎn)(表示為坐標(biāo)
),都有一個(gè)線性函數(shù)與之對(duì)應(yīng)。所以可以把所有線性函數(shù)的集合看作一個(gè)二維空間。
- 導(dǎo)數(shù)和梯度:測(cè)量函數(shù)變化率的微積分運(yùn)算。導(dǎo)數(shù)可以反映當(dāng)輸入值
變大時(shí),函數(shù)
增大或減小的速度。在三維空間中,函數(shù)可能看起來(lái)像
,當(dāng)改變
或
的值時(shí),它的值會(huì)增大或減小。把
對(duì)看作二維空間中的點(diǎn),也許你會(huì)問(wèn),在這個(gè)二維空間中,朝哪個(gè)方向走能使
增大得最快。梯度給出了答案。
- 函數(shù)優(yōu)化:對(duì)于
或
這種形式的函數(shù),有一個(gè)更寬泛的問(wèn)題:函數(shù)的哪些輸入會(huì)產(chǎn)生最大的輸出?對(duì)于
,答案是某個(gè)值
;而對(duì)于
,答案則是二維空間中的一個(gè)點(diǎn)。在二維的情況下,梯度可以幫助我們找到答案。如果梯度告訴我們
在某個(gè)方向上不斷增大,那么朝這個(gè)方向前進(jìn),就可以找到
的最大值。同樣,在尋找一個(gè)函數(shù)的最小值時(shí),類似的策略也適用。
- 用函數(shù)預(yù)測(cè)數(shù)據(jù):假設(shè)你想預(yù)測(cè)某個(gè)數(shù)據(jù),比如某一時(shí)刻的股票價(jià)格。可以創(chuàng)建一個(gè)函數(shù)
,其輸入為時(shí)間
,輸出為價(jià)格
。衡量函數(shù)預(yù)測(cè)質(zhì)量的標(biāo)準(zhǔn)是它與實(shí)際數(shù)據(jù)的接近程度。從這個(gè)意義上說(shuō),尋找預(yù)測(cè)函數(shù)意味著將函數(shù)和實(shí)際數(shù)據(jù)之間的誤差最小化。要做到這一點(diǎn),需要探討函數(shù)的一個(gè)空間,并找到一個(gè)最小值。這就是所謂的回歸。
上面這些數(shù)學(xué)概念很有用,任何人都可以把它們納入自己的知識(shí)儲(chǔ)備。即使你對(duì)機(jī)器學(xué)習(xí)不感興趣,這些概念(以及本書中的其他概念)也有很多其他應(yīng)用。
本書中最讓我感到頭疼的主題是概率和統(tǒng)計(jì)學(xué)。概率和量化不確定性的通用概念在機(jī)器學(xué)習(xí)中也很重要。但本書的內(nèi)容已經(jīng)足夠多了,實(shí)在沒(méi)有空間對(duì)這些領(lǐng)域做出有意義的介紹。敬請(qǐng)期待本書的續(xù)篇吧。除了本書能夠涵蓋的內(nèi)容,還有更多有趣和有用的數(shù)學(xué)知識(shí),希望能夠在未來(lái)與你分享。
推薦閱讀
- 流量的秘密:Google Analytics網(wǎng)站分析與優(yōu)化技巧(第2版)
- Facebook Application Development with Graph API Cookbook
- Kibana Essentials
- 前端跨界開(kāi)發(fā)指南:JavaScript工具庫(kù)原理解析與實(shí)戰(zhàn)
- Visual Basic程序開(kāi)發(fā)(學(xué)習(xí)筆記)
- Programming ArcGIS 10.1 with Python Cookbook
- Scratch 3.0少兒編程與邏輯思維訓(xùn)練
- PhpStorm Cookbook
- C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo) (第2版)
- Visualforce Developer’s guide
- 深入淺出Go語(yǔ)言編程
- Learning Nessus for Penetration Testing
- C++程序設(shè)計(jì)教程
- 監(jiān)控的藝術(shù):云原生時(shí)代的監(jiān)控框架
- CodeIgniter Web Application Blueprints