古詩詞大全網 - 成語故事 - 程序員必備的壹些數學基礎知識

程序員必備的壹些數學基礎知識

作為壹個標準的程序員,應該有壹些基本的數學素養,尤其現在很多人在學習人工智能相關知識,想抓住壹波人工智能的機會。很多程序員可能連這樣壹些基礎的數學問題都回答不上來。

作為壹個傲嬌的程序員,應該要掌握這些數學基礎知識,才更有可能碼出壹個偉大的產品。

向量 向量(vector)是由壹組實數組成的有序數組,同時具有大小和方向。壹個n維向量a是由n個有序實數組成,表示為 a = [a1, a2, · · · , an]

矩陣

線性映射 矩陣通常表示壹個n維線性空間v到m維線性空間w的壹個映射f: v -> w

註:為了書寫方便, X.T ,表示向量X的轉置。 這裏: X(x1,x2,...,xn).T,y(y1,y2,...ym).T ,都是列向量。分別表示v,w兩個線性空間中的兩個向量。A(m,n)是壹個 m*n 的矩陣,描述了從v到w的壹個線性映射。

轉置 將矩陣行列互換。

加法 如果A和B 都為m × n的矩陣,則A和B 的加也是m × n的矩陣,其每個元素是A和B相應元素相加。 [A + B]ij = aij + bij .

乘法 如A是k × m矩陣和B 是m × n矩陣,則乘積AB 是壹個k × n的矩陣。

對角矩陣 對角矩陣是壹個主對角線之外的元素皆為0的矩陣。對角線上的元素可以為0或其他值。壹個n × n的對角矩陣A滿足: [A]ij = 0 if i ?= j ?i, j ∈ {1, · · · , n}

特征值與特征矢量 如果壹個標量λ和壹個非零向量v滿足 Av = λv, 則λ和v分別稱為矩陣A的特征值和特征向量。

矩陣分解 壹個矩陣通常可以用壹些比較“簡單”的矩陣來表示,稱為矩陣分解。

奇異值分解 壹個m×n的矩陣A的奇異值分解

其中U 和V 分別為m × m和n×n 的正交矩陣,Σ為m × n的對角矩陣,其對角 線上的元素稱為奇異值(singular value)。

特征分解 壹個n × n的方塊矩陣A的特征分解(Eigendecomposition)定義為

其中Q為n × n的方塊矩陣,其每壹列都為A的特征向量,^為對角陣,其每壹 個對角元素為A的特征值。 如果A為對稱矩陣,則A可以被分解為

其中Q為正交陣。

導數 對於定義域和值域都是實數域的函數 f : R → R ,若f(x)在點x0 的某個鄰域?x內,極限

存在,則稱函數f(x)在點x0 處可導, f'(x0) 稱為其導數,或導函數。 若函數f(x)在其定義域包含的某區間內每壹個點都可導,那麽也可以說函數f(x)在這個區間內可導。連續函數不壹定可導,可導函數壹定連續。例如函數|x|為連續函數,但在點x = 0處不可導。

加法法則

y = f(x),z = g(x) 則

乘法法則

鏈式法則 求復合函數導數的壹個法則,是在微積分中計算導數的壹種常用方法。若 x ∈ R,y = g(x) ∈ R,z = f(y) ∈ R ,則

Logistic函數是壹種常用的S形函數,是比利時數學家 Pierre Fran?ois Verhulst在 1844-1845 年研究種群數量的增長模型時提出命名的,最初作為壹種生 態學模型。 Logistic函數定義為:

當參數為 (k = 1, x0 = 0, L = 1) 時,logistic函數稱為標準logistic函數,記 為 σ(x) 。

標準logistic函數在機器學習中使用得非常廣泛,經常用來將壹個實數空間的數映射到(0, 1)區間。標準 logistic 函數的導數為:

softmax函數是將多個標量映射為壹個概率分布。對於 K 個標量 x1, · · · , xK , softmax 函數定義為

這樣,我們可以將 K 個變量 x1, · · · , xK 轉換為壹個分布: z1, · · · , zK ,滿足

當softmax 函數的輸入為K 維向量x時,

其中,1K = [1, · · · , 1]K×1 是K 維的全1向量。其導數為

離散優化和連續優化 :根據輸入變量x的值域是否為實數域,數學優化問題可以分為離散優化問題和連續優化問題。

無約束優化和約束優化 :在連續優化問題中,根據是否有變量的約束條件,可以將優化問題分為無約束優化問題和約束優化問題。 ### 優化算法

全局最優和局部最優

海賽矩陣

《運籌學裏面有講》,前面壹篇文章計算梯度步長的時候也用到了: 梯度下降算法

梯度的本意是壹個向量(矢量),表示某壹函數在該點處的方向導數沿著該方向取得最大值,即函數在該點處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模)。

梯度下降法

梯度下降法(Gradient Descent Method),也叫最速下降法(Steepest Descend Method),經常用來求解無約束優化的極小值問題。

梯度下降法的過程如圖所示。曲線是等高線(水平集),即函數f為不同常數的集合構成的曲線。紅色的箭頭指向該點梯度的反方向(梯度方向與通過該點的等高線垂直)。沿著梯度下降方向,將最終到達函數f 值的局部最優解。

梯度上升法

如果我們要求解壹個最大值問題,就需要向梯度正方向叠代進行搜索,逐漸接近函數的局部極大值點,這個過程則被稱為梯度上升法。

概率論主要研究大量隨機現象中的數量規律,其應用十分廣泛,幾乎遍及各個領域。

離散隨機變量

如果隨機變量X 所可能取的值為有限可列舉的,有n個有限取值 {x1, · · · , xn}, 則稱X 為離散隨機變量。要了解X 的統計規律,就必須知道它取每種可能值xi 的概率,即

稱為離散型隨機變量X 的概率分布或分布,並且滿足

常見的離散隨機概率分布有:

伯努利分布

二項分布

連續隨機變量

與離散隨機變量不同,壹些隨機變量X 的取值是不可列舉的,由全部實數 或者由壹部分區間組成,比如

則稱X 為連續隨機變量。

概率密度函數

連續隨機變量X 的概率分布壹般用概率密度函數 p(x) 來描述。 p(x) 為可積函數,並滿足:

均勻分布 若a, b為有限數,[a, b]上的均勻分布的概率密度函數定義為

正態分布 又名高斯分布,是自然界最常見的壹種分布,並且具有很多良好的性質,在很多領域都有非常重要的影響力,其概率密度函數為

其中, σ > 0,? 和 σ 均為常數。若隨機變量X 服從壹個參數為 ? 和 σ 的概率分布,簡記為

累積分布函數

對於壹個隨機變量X,其累積分布函數是隨機變量X 的取值小於等於x的概率。

以連續隨機變量X 為例,累積分布函數定義為:

其中p(x)為概率密度函數,標準正態分布的累計分布函數:

隨機向量

隨機向量是指壹組隨機變量構成的向量。如果 X1, X2, · · · , Xn 為n個隨機變量, 那麽稱 [X1, X2, · · · , Xn] 為壹個 n 維隨機向量。壹維隨機向量稱為隨機變量。隨機向量也分為離散隨機向量和連續隨機向量。 條件概率分布 對於離散隨機向量 (X, Y) ,已知X = x的條件下,隨機變量 Y = y 的條件概率為:

對於二維連續隨機向量(X, Y ),已知X = x的條件下,隨機變量Y = y 的條件概率密度函數為

期望 對於離散變量X,其概率分布為 p(x1), · · · , p(xn) ,X 的期望(expectation)或均值定義為

對於連續隨機變量X,概率密度函數為p(x),其期望定義為

方差 隨機變量X 的方差(variance)用來定義它的概率分布的離散程度,定義為

標準差 隨機變量 X 的方差也稱為它的二階矩。X 的根方差或標準差。

協方差 兩個連續隨機變量X 和Y 的協方差(covariance)用來衡量兩個隨機變量的分布之間的總體變化性,定義為

協方差經常也用來衡量兩個隨機變量之間的線性相關性。如果兩個隨機變量的協方差為0,那麽稱這兩個隨機變量是線性不相關。兩個隨機變量之間沒有線性相關性,並非表示它們之間獨立的,可能存在某種非線性的函數關系。反之,如果X 與Y 是統計獨立的,那麽它們之間的協方差壹定為0。

隨機過程(stochastic process)是壹組隨機變量Xt 的集合,其中t屬於壹個索引(index)集合T 。索引集合T 可以定義在時間域或者空間域,但壹般為時間域,以實數或正數表示。當t為實數時,隨機過程為連續隨機過程;當t為整數時,為離散隨機過程。日常生活中的很多例子包括股票的波動、語音信號、身高的變化等都可以看作是隨機過程。常見的和時間相關的隨機過程模型包括貝努力過程、隨機遊走、馬爾可夫過程等。

馬爾可夫過程 指壹個隨機過程在給定現在狀態及所有過去狀態情況下,其未來狀態的條件概率分布僅依賴於當前狀態。

其中X0:t 表示變量集合X0, X1, · · · , Xt,x0:t 為在狀態空間中的狀態序列。

馬爾可夫鏈 離散時間的馬爾可夫過程也稱為馬爾可夫鏈(Markov chain)。如果壹個馬爾可夫鏈的條件概率

馬爾可夫的使用可以看前面壹篇寫的有意思的文章: 女朋友的心思妳能猜得到嗎?——馬爾可夫鏈告訴妳 隨機過程還有高斯過程,比較復雜,這裏就不詳細說明了。

信息論(information theory)是數學、物理、統計、計算機科學等多個學科的交叉領域。信息論是由 Claude Shannon最早提出的,主要研究信息的量化、存儲和通信等方法。在機器學習相關領域,信息論也有著大量的應用。比如特征抽取、統計推斷、自然語言處理等。

在信息論中,熵用來衡量壹個隨機事件的不確定性。假設對壹個隨機變量X(取值集合為C概率分布為 p(x), x ∈ C )進行編碼,自信息I(x)是變量X = x時的信息量或編碼長度,定義為 I(x) = ? log(p(x)), 那麽隨機變量X 的平均編碼長度,即熵定義為

其中當p(x) = 0時,我們定義0log0 = 0 熵是壹個隨機變量的平均編碼長度,即自信息的數學期望。熵越高,則隨機變量的信息越多;熵越低,則信息越少。如果變量X 當且僅當在x時 p(x) = 1 ,則熵為0。也就是說,對於壹個確定的信息,其熵為0,信息量也為0。如果其概率分布為壹個均勻分布,則熵最大。假設壹個隨機變量X 有三種可能值x1, x2, x3,不同概率分布對應的熵如下:

聯合熵和條件熵 對於兩個離散隨機變量X 和Y ,假設X 取值集合為X;Y 取值集合為Y,其聯合概率分布滿足為 p(x, y) ,則X 和Y 的聯合熵(Joint Entropy)為

X 和Y 的條件熵為

互信息 互信息(mutual information)是衡量已知壹個變量時,另壹個變量不確定性的減少程度。兩個離散隨機變量X 和Y 的互信息定義為

交叉熵和散度 交叉熵 對應分布為p(x)的隨機變量,熵H(p)表示其最優編碼長度。交叉熵是按照概率分布q 的最優編碼對真實分布為p的信息進行編碼的長度,定義為

在給定p的情況下,如果q 和p越接近,交叉熵越小;如果q 和p越遠,交叉熵就越大。