您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“機(jī)器學(xué)習(xí)中的基本數(shù)學(xué)知識(shí)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
注:本文的代碼是使用Python 3寫(xiě)的。
f(x)=xwT+b
這是在機(jī)器學(xué)習(xí)中,最常見(jiàn)的公式。我把這個(gè)稱為機(jī)器學(xué)習(xí)的第一公式,實(shí)際上就是線性分類函數(shù)(linear classifier)。
訓(xùn)練分類器的目標(biāo)就是求出
(w,b)(w,b)。
其中:
xx
是一個(gè)一行矩陣
[[x1,x2,...,xn]][[x1,x2,...,xn]]。
ww
是一個(gè)一行矩陣
[[w1,w2,...,wn]][[w1,w2,...,wn]]。
xx
和
ww
的維度相同。
bb
是一個(gè)數(shù)。
xwT=∑ni=1xiwixwT=∑i=1nxiwi,稱為點(diǎn)積(dot product)。
有時(shí),我們也會(huì)見(jiàn)到這個(gè)公式表示為類似下面的樣子,它們的基本含義都是一樣的。
f(x)=wx+bf(x)=wx+b
f(x)=wTx+bf(x)=wTx+b
f(x)=w? ?x? +bf(x)=w→?x→+b
注:這里ww表示為一個(gè)一維數(shù)組(或者向量、矢量(vector)) [x1,x2,...,xn][x1,x2,...,xn]。
注:一維數(shù)組:在數(shù)學(xué)上,可以理解為向量,表示多維空間上的一個(gè)點(diǎn)。
注:由于在線性代數(shù)中,矩陣乘法ab≠baab≠ba,所以對(duì)于表達(dá)式wTxwTx,嚴(yán)格地說(shuō),要把矢量(向量)看做一列的矩陣(而不是一行的矩陣),才符合數(shù)學(xué)上的定義。
注:表達(dá)式w? ?x? w→?x→和wxwx是正確的,因?yàn)閣w和xx是矢量,這個(gè)符合矢量計(jì)算的定義。
由于,這篇文章是從數(shù)學(xué)的角度寫(xiě)的,所以我們先關(guān)注矩陣的操作。
矩陣的換位操作:將矩陣中的數(shù)按照對(duì)角線交換。
數(shù)學(xué)公式:wTwT
代碼示例:
# Matrix Transposem = numpy.mat([[1, 2], [3, 4]]) print("Matrix.Transpose:") print(m.T)''' Output: Matrix.Transpose: [[1 3] [2 4]] '''
矩陣相乘的含義
如果一斤蘋(píng)果10元,5斤蘋(píng)果多少元?答案是:10?5=5010?5=50
如果一斤蘋(píng)果10元,一斤梨20元,5斤蘋(píng)果2斤梨一共多少元?
答案是:
[1020][52]=10×5+20×2=90(2)(2)[1020][52]=10×5+20×2=90
我們可以看出矩陣相乘的約束:乘數(shù)1的列數(shù)要和乘數(shù)2的行數(shù)相等。
矩陣乘法不滿足交換律
m1?m2≠m2?m1(3)(3)m1?m2≠m2?m1
我們?cè)倏纯唇粨Q乘數(shù)后,計(jì)算的結(jié)果:
[1020][52]=[10×520×510×220×2]=[501002040](4)(4)[1020][52]=[10×510×220×520×2]=[502010040]
比如:數(shù)2020的含義是2斤蘋(píng)果多少錢(qián)。
舉例說(shuō)明它們的不同之處:
m1=[12](5)(5)m1=[12]
m2=[1020](6)(6)m2=[1020]
m1?m2m1?m2的計(jì)算方法是:
m1?m2=[12][1020]1?10+2?20=[50](7)(7)m1?m2=[1020][12]1?10+2?20=[50]
m2?m1m2?m1的計(jì)算方法是:
m2?m1=1020110?120?1210?220?2=[10202040](8)(8)m2?m1=121010?110?22020?120?2=[10202040]
計(jì)算公式
矩陣相乘是:用矩陣1的每一行和矩陣2的每一列的點(diǎn)積,得到一個(gè)矩陣。
l?ml?m 的矩陣乘以 m?nm?n 的矩陣,形成一個(gè)l?nl?n 的矩陣。
x?y=[x1?xn]???y1?yn???=[∑ni=1xiyi]x?y=???x1?xm???[y1?yn]=???x1y1?xmy1???x1yn?xmyn???x?y=?????x11x21?xm1????x1nx2n?xmn???????????y11y21?yn1????y1qy2q?ynq??????=???∑ni=1x1iyi1?∑ni=1xmiyi1???∑ni=1x1iyiq?∑ni=1xmiyiq???(9)(9)x?y=[x1?xn][y1?yn]=[∑i=1nxiyi]x?y=[x1?xm][y1?yn]=[x1y1?x1yn???xmy1?xmyn]x?y=[x11?x1nx21?x2n???xm1?xmn][y11?y1qy21?y2q???yn1?ynq]=[∑i=1nx1iyi1?∑i=1nx1iyiq???∑i=1nxmiyi1?∑i=1nxmiyiq]
代碼演示:
# Matrix Multiplicationprint("Matrix Multiplication") a = numpy.mat([1, 2]) b = numpy.mat([[10], [20]]) print(a * b) print(a.T * b.T) a = numpy.mat([[1, 2], [3, 4]]) b = numpy.mat([[10, 20], [30, 40]]) print(a * b)''' Output: [[50]] [[10 20] [20 40]] [[ 70 100] [150 220]] '''
操作 | 數(shù)學(xué)符號(hào) | Python | Demo |
---|---|---|---|
點(diǎn)積(dot product) | abab | a.dot(b) numpy.dot(a, b) | AB=(1,2)(1020)=1?10+2?20=50(10)(10)AB=(1,2)(1020)=1?10+2?20=50 |
內(nèi)積(inner product) | a?ba?b ?a,b??a,b? | numpy.inner(a, b) | a?b=abT(11)(11)a?b=abT |
外積(outer product) | a?ba?b | numpy.outer(a, b) | A?B=(12)(1020)=(1?102?101?202?20)=(10202040)(12)(12)A?B=(12)(1020)=(1?101?202?102?20)=(10202040) |
元素積(element-wise product, point-wise product, Hadamard product ) | a°ba°b a⊙ba⊙b | numpy.multiply(a, b) | A⊙B=(1324)(1020)=(1?103?102?204?20)=(10304080)(13)(13)A⊙B=(1234)(1020)=(1?102?203?104?20)=(10403080) |
注:Python中,矩陣數(shù)據(jù)可以表示為matrix和ndarray兩種類型。
這兩種類型的操作非常接近,但是有細(xì)微的不同。
ndarray * operation :element-wise product.
matrix * operation :dot product.
numpy.multiply for ndarray :element-wise product. same.
numpy.multiply for matrix :element-wise product. same.
numpy.dot for ndarray : inner product. 1-d array.
numpy.dot for matrix :dot product. shape determined by values.
numpy.inner for ndarray :inner product. 1-d array.
numpy.inner for matrix :inner product. shape determined by values.
numpy.outer for ndarray :outer product. same.
numpy.outer for matrix :outer product. same.
英文: inner product, scalar product。
矢量的降維運(yùn)算,變成一個(gè)數(shù)。
矩陣的內(nèi)積是每行每列的內(nèi)積的矩陣。
xy=?x,y?=∑ni=1xiyi(14)(14)xy=?x,y?=∑i=1nxiyi
x = numpy.array([1, 2]) y = numpy.array([10, 20]) print("Array inner:") print(numpy.inner(x, y))''' Output: Array inner: 50 '''x = numpy.mat([[1, 2], [3, 4]]) y = numpy.mat([10, 20]) print("Matrix inner:") print(numpy.inner(x, y))''' Output: Matrix inner: [[ 50] [110]] '''
矢量的升維運(yùn)算, mm維矢量和nn維矢量的外積是m?nm?n為矩陣。
矩陣的并集運(yùn)算, a1?a2a1?a2維矢量和b1?b2b1?b2維矩陣的外積是(a1?a2)?(b1?b2)(a1?a2)?(b1?b2)為矩陣。
x?y=?????x1x2?xm????x1nx2n?xmn???????????y1y2?yp????y1qy2q?xpq??????=???????????x1y1?x1ny1x2y1?xmny1??????x1y1q?x1ny1qx2y1q?xmny1qx1y2?x1ny2x2y2?xmny2??????x1ypq?x1nypqx2ypq?xmnypq???????????(15)(15)x?y=[x1?x1nx2?x2n???xm?xmn][y1?y1qy2?y2q???yp?xpq]=[x1y1?x1y1qx1y2?x1ypq??????x1ny1?x1ny1qx1ny2?x1nypqx2y1?x2y1qx2y2?x2ypq??????xmny1?xmny1qxmny2?xmnypq]
x = numpy.array([1, 3]) y = numpy.array([10, 20]) print("Array outer:") print(numpy.outer(x, y))''' Output: Array outer: [[10 20] [30 60]] '''x = numpy.mat([[1, 2], [3, 4]]) y = numpy.mat([10, 20]) print("Matrix outer:") print(numpy.outer(x, y))''' Output: Matrix outer: [[10 20] [20 40] [30 60] [40 80]] '''
注:有沒(méi)有發(fā)現(xiàn)matrix outer 是vector outer的并集。
計(jì)算公式
x?y=[x1?xn][y1?yn]=[x1y1?xnyn]x?y=[x1?xn]???y1?ym???=???x1y1?x1ym???xny1?xnym???x?y=???x11?xm1???x1n?xmn??????y11?ym1???y1n?xn???=???x11y11?xm1ym1???x1ny1n?xmnynn???(16)(16)x?y=[x1?xn][y1?yn]=[x1y1?xnyn]x?y=[x1?xn][y1?ym]=[x1y1?xny1???x1ym?xnym]x?y=[x11?x1n???xm1?xmn][y11?y1n???ym1?xn]=[x11y11?x1ny1n???xm1ym1?xmnynn]
x = numpy.array([1, 3]) y = numpy.array([10, 20]) print("Array element-wise product:") print(x * y)''' Output: Array element-wise product: [10 60] '''
x = numpy.mat([[1, 2], [3, 4]]) y = numpy.mat([[10, 20],[30, 40]]) print("Matrix Add :") print(x + y)''' Output: Matrix Add : [[11 22] [33 44]] '''
求總和公式
這個(gè)大家應(yīng)該都知道。
∑i=1Nxi=x1+x2+?+xn(17)(17)∑i=1Nxi=x1+x2+?+xn
求總積公式
∏i=1Nxi=x1×x2×?×xn(18)(18)∏i=1Nxi=x1×x2×?×xn
對(duì)數(shù)
對(duì)數(shù)的含義:
數(shù)學(xué)表達(dá)
求數(shù)的長(zhǎng)度。
將乘法轉(zhuǎn)變成加法。
解決下溢出問(wèn)題:由于太多很小的數(shù)相乘造成的問(wèn)題。
log(x)=log10xlog2xln(x)(19)(19)log(x)=log10?xlog2?xln(x)
由于不同底的對(duì)數(shù)的結(jié)果是等比關(guān)系,所以,有時(shí)底數(shù)是誰(shuí),是無(wú)所謂的。
等比
aa等比于bb??捎糜谒惴◤?fù)雜度計(jì)算。
a ba∝b(20)(20)a ba∝b
下取整(floor)和上取整(ceil)
floor: ?x?ceil: ?x?(21)(21)floor: ?x?ceil: ?x?
L1范數(shù)
∥w∥1‖w‖1 : L1范數(shù),也就是各項(xiàng)目絕對(duì)值的和。
∥w∥1=∑ni=1|wi|(22)(22)‖w‖1=∑i=1n|wi|
L2范數(shù)
∥w∥ or ∥w∥2‖w‖ or ‖w‖2 : L2范數(shù),也就是各項(xiàng)目平方和的平方根。
∥w∥=∑ni=1w2i???????√(23)(23)‖w‖=∑i=1nwi2
如果方程式f(x)=wx+bf(x)=wx+b有不等式約束條件,拉格朗日乘子法和KKT條件提供了一種方法,可以計(jì)算(w,b)(w,b)
L(w,b,α)(24)(24)L(w,b,α)
關(guān)于拉格朗日乘子法和KKT條件,請(qǐng)看:
深入理解拉格朗日乘子法(Lagrange Multiplier)和KKT條件
f′(x)or partial differential in Leibniz notation:?f(x)?xdydxor:?f(x)?x : the gradient of f at x(25)(25)f′(x)or partial differential in Leibniz notation:?f(x)?xdydxor:?f(x)?x : the gradient of f at x
含義
df(x)dx=limh→0f(x+h)?f(x)hwhereddx is an operation of f(x)(26)(26)df(x)dx=limh→0f(x+h)?f(x)hwhereddx is an operation of f(x)
數(shù)學(xué)含義是在xx點(diǎn)上,f(x)f(x)的變化除以xx的變化。
數(shù)學(xué)上可以認(rèn)為是:斜率
機(jī)器學(xué)習(xí)中指的是:梯度。
計(jì)算梯度后,乘以一個(gè)比值(步長(zhǎng)),可以得到矯正值,用于反向傳播(矯正)權(quán)值。
partial differential:偏微分,表示函數(shù)在某個(gè)維度上的微分。這時(shí),可將其它維度看做常量。
法則 | 微分 | 偏微分 |
---|---|---|
和法則(sum rule) | (f+g)′=f′+g′(f+g)′=f′+g′ | ?(u+v)?x=?u?x+?v?x(27)(27)?(u+v)?x=?u?x+?v?x |
積法則(product rule) | (f?g)′=f′?g+f?g′(f?g)′=f′?g+f?g′ | ?(u?v)?x=u??v?x+v??u?x(28)(28)?(u?v)?x=u??v?x+v??u?x |
鏈?zhǔn)椒▌t(chain rule of differentiation) | (f(g(x)))′=f′(g(x))g′(x)(f(g(x)))′=f′(g(x))g′(x) | ?z?x=?z?y??y?x(29)(29)?z?x=?z?y??y?x |
f(x) | f'(x) |
---|---|
axax | aa |
xnxn | nxn?1nxn?1 |
x+cx+c | 11 |
exex | exex |
ln(x)ln(x) | 1x1x |
貝葉斯公式(Bayes formula)
p(A|B)=p(B|A)p(A)p(B)wherep(A) : the probability of observing event A.p(B) : the probability of observing event B.p(A|B) : the probability of observing event A given that B is true.p(B|A) : the probability of observing event B given that A is true.(30)(30)p(A|B)=p(B|A)p(A)p(B)wherep(A) : the probability of observing event A.p(B) : the probability of observing event B.p(A|B) : the probability of observing event A given that B is true.p(B|A) : the probability of observing event B given that A is true.
比如:在判斷垃圾郵件的算法中:
P(A) : 所有郵件中,垃圾郵件的概率。
P(B) : 出現(xiàn)某個(gè)單詞的概率。
P(B|A) : 垃圾郵件中,出現(xiàn)某個(gè)單詞的概率。
P(A|B) : 出現(xiàn)某個(gè)單詞的郵件,是垃圾郵件的概率。
熵的定義
在信息論中,熵是接收的每條消息中包含的信息的平均量,又被稱為信息熵、信源熵、平均自信息量。
熵定義為信息的期望值。
熵實(shí)際是對(duì)隨機(jī)變量的比特量和順次發(fā)生概率相乘再總和的數(shù)學(xué)期望。
熵的單位通常為比特, bit 或者sh(annon) (基于2),但也用nat(基于自然對(duì)數(shù))、Hart(基于10)計(jì)量,取決于定義用到對(duì)數(shù)的底。
熵的單位不重要。(因?yàn)槭乔髮?duì)數(shù),所以是等比的。不理解這句話也無(wú)所謂。)
熵值是一個(gè)>=0的值。
如果為0,則表明結(jié)果可以準(zhǔn)確預(yù)測(cè)。從下面的公式可以看出,其概率為1.
熵的特征
發(fā)生概率越小的信息,熵值越大。
常識(shí)的熵為0。
從計(jì)算損失的角度來(lái)說(shuō):熵值越大,說(shuō)明損失越大。
期望值
在概率論和統(tǒng)計(jì)學(xué)中,一個(gè)離散性隨機(jī)變量的期望值(或數(shù)學(xué)期望、或均值,亦簡(jiǎn)稱期望,物理學(xué)中稱為期待值)是試驗(yàn)中每次可能結(jié)果的概率乘以其結(jié)果的總和。
比如擲骰子, 其點(diǎn)數(shù)的期望值是3.5:
E(x)=1?1/6+1?2/6+1?3/6+1?4/6+1?5/6+1?6/6=3.5E(x)=1?1/6+1?2/6+1?3/6+1?4/6+1?5/6+1?6/6=3.5
通俗的理解
信息熵是:
各個(gè) (值的概率 * 值的長(zhǎng)度) 的總和。
數(shù)據(jù)集的信息熵的計(jì)算公式
H(X)=E[I(X)]=E[?lnP(X)]=∑i=1nP(xi)I(xi)=?∑i=1nP(xi)logP(xi)(31)(32)(33)(34)whereH(X):數(shù)據(jù)集合X的信息熵值。E():求期望值。I():求信息值(驚奇值)。X:數(shù)據(jù)集合X。xi:數(shù)據(jù)集合X的標(biāo)簽的一個(gè)枚舉值。I(xi):xi的資訊量(informationself).I(xi)=?log(P(xi))P(xi) : 發(fā)生x_i的概率。x的機(jī)率質(zhì)量函數(shù)(probability mass function)。P(xi)=count(xi)/len(X).(31)H(X)=E[I(X)](32)=E[?lnP(X)](33)=∑i=1nP(xi)I(xi)(34)=?∑i=1nP(xi)log?P(xi)whereH(X):數(shù)據(jù)集合X的信息熵值。E():求期望值。I():求信息值(驚奇值)。X:數(shù)據(jù)集合X。xi:數(shù)據(jù)集合X的標(biāo)簽的一個(gè)枚舉值。I(xi):xi的資訊量(informationself).I(xi)=?log(P(xi))P(xi) : 發(fā)生x_i的概率。x的機(jī)率質(zhì)量函數(shù)(probability mass function)。P(xi)=count(xi)/len(X).
熵的作用
計(jì)算損失(Loss function)
用于調(diào)整梯度遞減的步長(zhǎng)。(本次熵(損失)比上次熵(損失)大,說(shuō)明步長(zhǎng)太大了。)
用于決策樹(shù)
熵越大,說(shuō)明特征(feature)的劃分?jǐn)?shù)據(jù)能力越強(qiáng)。
傾向關(guān)系(preference relation)
描述了玩家的傾向,x?yx?y意味著“x至少和y一樣好”。
求最大化參數(shù)
數(shù)學(xué)表示
argmaxcP(c)argmaxcP(c)
解釋
可以用于返回一個(gè)可能性對(duì)大的分類。
返回當(dāng)P(c)為最大值時(shí)c的值。
例如:
c∈{1,2}P(1)=0.9P(2)=0.1∴argmaxcP(c)=1(35)(35)c∈{1,2}P(1)=0.9P(2)=0.1∴argmaxcP(c)=1
返回最大值
數(shù)學(xué)表示
maxa∈AP(a)maxa∈AP(a)
解釋
在所有a∈Aa∈A的計(jì)算中,返回最大值P(a)P(a)。
約束條件(Subject to)
數(shù)學(xué)表示
y=2x+1,s.t. x>0y=2x+1,s.t. x>0
解釋
當(dāng)約束條件x>0x>0,成立時(shí),有y=2x+1y=2x+1。
定義上相等
數(shù)學(xué)表示
A?BA?B
解釋
A的定義為B。
2補(bǔ)數(shù)(2's complement)
一種使用2進(jìn)制表示有符號(hào)數(shù)的方法。
第一位為符號(hào)位,
如果是0,則記做0;
如果為1,則記做?2n?1, n is the size of the number?2n?1, n is the size of the number。
例如: 0010為2; 1010為-6。
請(qǐng)看我的另外一個(gè)博文:
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)筆記 - 激活函數(shù)的作用、定義和微分證明
請(qǐng)看我的另外一個(gè)博文:
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)筆記 - 損失函數(shù)的定義和微分證明
大寫(xiě) | 小寫(xiě) | English | 發(fā)音 | 中文 | 含義 | |
---|---|---|---|---|---|---|
1 | Α | α | alpha | a:lf | 阿爾法 | |
2 | Β | β | beta | bet | 貝塔 | |
3 | Γ | γ | gamma | ga:m | 伽馬 | |
4 | Δ | δ | delta | delt | 德?tīng)査?/td> | δ: delta value,偏差值 |
5 | Ε | ε | epsilon | ep'silon | 伊普西龍 | |
6 | Ζ | ζ | zeta | zat | 截塔 | |
7 | Η | η | eta | eit | 艾塔 | |
8 | Θ | θ | thet | θit | 西塔 | |
9 | Ι | ι | iot | aiot | 約塔 | |
10 | Κ | κ | kappa | kap | 卡帕 | |
11 | ∧ | λ | lambda | lambd | 蘭布達(dá) | |
12 | Μ | μ | mu | mju | 繆 | |
13 | Ν | ν | nu | nju | 紐 | |
14 | Ξ | ξ | xi | ksi | 克西 | ξ: slack variable,松弛變量 |
15 | Ο | ο | omicron | omik'ron | 奧密克戎 | |
16 | ∏ | π | pi | pai | 派 | π: 圓周率 |
17 | Ρ | ρ | rho | rou | 肉 | |
18 | ∑ | σ | sigma | 'sigma | 西格馬 | |
19 | Τ | τ | tau | tau | 套 | |
20 | Υ | υ | upsilon | jup'silon | 宇普西龍 | |
21 | Φ | φ | phi | fai | 佛愛(ài) | |
22 | Χ | χ | chi | phai | 凱 | |
23 | Ψ | ψ | psi | psai | 普西 | |
24 | Ω | ω | omega | o'miga | 歐米伽 |
松弛變量(slack variable):在SVM中,為了處理異常點(diǎn)(跑到另一個(gè)分類中的點(diǎn)),設(shè)定的容忍值。
大寫(xiě) | 小寫(xiě) | English | 發(fā)音 | 中文 | 含義 | |
---|---|---|---|---|---|---|
1 | ?? | partial | - | 偏分 | 偏分 | |
1 | ∞∞ | infinity | - | 無(wú)窮 | 無(wú)窮 |
“機(jī)器學(xué)習(xí)中的基本數(shù)學(xué)知識(shí)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。