機器學習中的基本數學知識

2022-06-10 10:12:11 字數 3390 閱讀 7714

注:本文的**是使用python 3寫的。

低等數學

幾何微分(differential)

統計學/概率論

資訊理論博弈論

不知道放到哪兒

機器學習

附錄參照

(1)f(x

)=xw

t+b'>f(x)=xwt+b(1)

(1)f(x)=xwt+b

這是在機器學習中,最常見的公式。我把這個稱為機器學習的第一公式,實際上就是線性分類函式(linear classifier)。

訓練分類器的目標就是求出(w,

b)'>(w,b)

(w,b)。

其中:x

'>x

x 是乙個一行矩陣 [[x

1,x2

,...

,xn]

]'>[[x1,x2,...,xn]]

[[x1,x2,...,xn]]。

w'>w

w 是乙個一行矩陣 [[w

1,w2

,...

,wn]

]'>[[w1,w2,...,wn]]

[[w1,w2,...,wn]]。

x'>x

x 和 w

'>w

w 的維度相同。

b'>b

b 是乙個數。xw

t=∑i

=1nx

iwi'>xwt=∑ni=1xiwi

xwt=∑i=1nxiwi,稱為點積(dot product)。

有時,我們也會見到這個公式表示為類似下面的樣子,它們的基本含義都是一樣的。f(

x)=w

x+b'>f(x)=wx+b

f(x)=wx+bf(

x)=w

tx+b

'>f(x)=wtx+b

f(x)=wtx+bf(

x)=w

→⋅x→

+b'>f(x)=w⃗ ⋅x⃗ +b

f(x)=w→⋅x→+b

注:這裡w

'>w

w表示為乙個一維陣列(或者向量、向量(vector)) [x1

,x2,

...,

xn]'>[x1,x2,...,xn]b≠

ba'>ab≠ba

ab≠ba,所以對於表示式wtx

'>wtx

wtx,嚴格地說,要把向量(向量)看做一列的矩陣(而不是一行的矩陣),才符合數學上的定義。

注:表示式w→⋅

x→'>w⃗ ⋅x⃗ 

w→⋅x→和w

x'>wx

wx是正確的,因為w

'>w

w和x'>x

x是向量,這個符合向量計算的定義。

由於,這篇文章是從數學的角度寫的,所以我們先關注矩陣的操作。

換位(transpose)

矩陣的換位操作:將矩陣中的數按照對角線交換。

數學公式:w

t'>wt

wt**示例:

# matrix transpose

m = numpy.mat([[1, 2], [3, 4]])

print("matrix.transpose:")

print(m.t)

''' output:

matrix.transpose:

[[1 3]

[2 4]]

'''

矩陣乘法

舉例說明它們的不同之處:

(5)m1=

[12]

'>m1=[12](5)

(5)m1=[12](w

,b)'>x

'>[[x

1,x2

,...

,xn]

]'>w

'>[[w

1,w2

,...

,wn]

]'>x

'>w

'>b

'>xwt

=∑i=

1nxi

wi'>

(6)m2=

[1020]

'>m2=[1020](6)

(6)m2=[1020](w

,b)'>x

'>[[x

1,x2

,...

,xn]

]'>w

'>[[w

1,w2

,...

,wn]

]'>x

'>w

'>b

'>xwt

=∑i=

1nxi

wi'>m1

⋅m2'>m1⋅m2

m1⋅m2的計算方法是:

(7)m1⋅

m2=[

1020][

12]1

∗10+2

∗20=[

50]'>m1⋅m2=[12][1020]1∗10+2∗20=[50](7)

(7)m1⋅m2=[1020][12]1∗10+2∗20=[50]m2

⋅m1'>m2⋅m1

m2⋅m1的計算方法是:

(8)m2⋅

m1=1

21010∗

110∗2

2020∗1

20∗2=

[10202040]

'>m2⋅m1=1020110∗120∗1210∗220∗2=[10202040](8)

(8)m2⋅m1=121010∗110∗22020∗120∗2=[10202040]

(9)x⋅y

=[x1

⋯xn]

[y1⋯

yn]=

[∑i=

1nxi

yi]x

⋅y=[

x1⋯x

m][y

1⋯yn

]=[x

1y1⋯

x1yn

⋯⋯⋯x

my1⋯

xmyn

]x⋅y

=[x11

⋯x1n

x21⋯x

2n⋯⋯

⋯xm1

⋯xmn

][y11

⋯y1q

y21⋯y

2q⋯⋯

⋯yn1

⋯ynq

]=[∑

i=1n

x1iy

i1⋯∑

i=1n

x1iy

iq⋯⋯

⋯∑i=

1nxm

iyi1

⋯∑i=

1nxm

iyiq

]'>x⋅y=[x1⋯xn]⎡⎣⎢y1⋯yn⎤⎦⎥=[∑ni=1xiyi]x⋅y=⎡⎣⎢x1⋯xm⎤⎦⎥[y1⋯yn]=⎡⎣⎢x1y1⋯xmy1⋯⋯⋯x1yn⋯xmyn⎤⎦⎥x⋅y=⎡⎣⎢⎢⎢x11x21⋯

機器學習 數學 機器學習涉及的數學知識

簡單總結 機器學習涉及的數學知識有 線性代數,概率論和統計學,多變數微積分,演算法和複雜優化,以及其他等。原文 在過去幾個月裡,有幾個人聯絡過我,說他們渴望進軍資料科學領域,使用機器學習 ml 技術探索統計規律,並打造資料驅動的完美產品。但是,據我觀察,一些人缺乏必要的數學直覺和框架,無法獲得有用的...

機器學習及其數學知識 知識星球

為什麼要加入付費知識星球?每一條都是精心篩選,用心編輯,為您節約時間 邀請了在各個領域比較優秀的朋友做嘉賓 利物浦博士,gdg組織者,ibm資料科學家,前阿里演算法工程師 阿里nlp演算法工程師,美國前十理工院校碩士,實現物理到cs的華麗轉身 十年經驗的c 資深工程師,方向是計算機視覺,人體姿態 付...

機器學習需要這些數學知識

放假在家想寫寫機器學習系列的文章,除夕前先來開個頭,後面會一直寫下去,搞機器學習演算法也有一年多了,體會多少還是有一些的,這裡記錄在部落格中,一來為自己後面的面試做點儲備,二來是為了分享,因為很多都是從大家的部落格中去學習的,所以這裡也要將我理解的新的內容反饋出來,大家一起學習進步。數學在計算機中的...