模式識別與機器學習中數學推導中用到的數學知識

2022-04-29 13:09:08 字數 2062 閱讀 1131

每次手推公式就會遇見各種不會的,在網上搜了個總結的還不錯的常用求導公式。。。繼續更新中……

一、基本線性代數

在網上看到有人貼了如下求導公式:

y = a * x --> dy/dx = a'

y = x * a --> dy/dx = a

y = a' * x * b --> dy/dx = a * b'

y = a' * x' * b --> dy/dx = b * a'

1. 矩陣y對標量x求導:

相當於每個元素求導數後轉置一下,注意m×n矩陣求導後變成n×m了

y = [y(ij)] --> dy/dx = [dy(ji)/dx]

2. 標量y對列向量x求導:

注意與上面不同,這次括號內是求偏導,不轉置,對n×1向量求導後還是n×1向量

y = f(x1,x2,..,xn) --> dy/dx = (dy/dx1,dy/dx2,..,dy/dxn)'

3. 行向量y'對列向量x求導:

注意1×m向量對n×1向量求導後是n×m矩陣。

將y的每一列對x求偏導,將各列構成乙個矩陣。

重要結論:

dx'/dx = i

d(ax)'/dx = a'

4. 列向量y對行向量x』求導:

轉化為行向量y』對列向量x的導數,然後轉置。

注意m×1向量對1×n向量求導結果為m×n矩陣。

dy/dx' = (dy'/dx)'

5. 向量積對列向量x求導運算法則:

注意與標量求導有點不同。

d(uv')/dx = (du/dx)v' + u(dv'/dx)

d(u'v)/dx = (du'/dx)v + (dv'/dx)u'

重要結論:

d(x'a)/dx = (dx'/dx)a + (da/dx)x' = ia + 0x' = a

d(ax)/dx' = (d(x'a')/dx)' = (a')' = a

d(x'ax)/dx = (dx'/dx)ax + (d(ax)'/dx)x = ax + a'x

6. 矩陣y對列向量x求導:

將y對x的每乙個分量求偏導,構成乙個超向量。

注意該向量的每乙個元素都是乙個矩陣。

7. 矩陣積對列向量求導法則:

d(uv)/dx = (du/dx)v + u(dv/dx)

d(uv)/dx = (du/dx)v + u(dv/dx)

重要結論:

d(x'a)/dx = (dx'/dx)a + x'(da/dx) = ia + x'0 = a

8. 標量y對矩陣x的導數:

類似標量y對列向量x的導數,

把y對每個x的元素求偏導,不用轉置。

dy/dx = [ dy/dx(ij) ]

重要結論:

y = u'xv = σσu(i)x(ij)v(j) 於是 dy/dx = = uv'

y = u'x'xu 則 dy/dx = 2xuu'

y = (xu-v)'(xu-v) 則 dy/dx = d(u'x'xu - 2v'xu + v'v)/dx = 2xuu' - 2vu' + 0 = 2(xu-v)u'

9. 矩陣y對矩陣x的導數:

將y的每個元素對x求導,然後排在一起形成超級矩陣。

二、具體內容

1. hessian 矩陣,有函式

則其hessian舉證h(f)為

hessian矩陣可以判斷函式的凹凸性,以及函式的極值點問題

當函式二階連續可導時,hessian矩陣h在臨界點

上是乙個

階的對稱矩陣。

2.  jensen不等式

如果f是凸函式,x是隨機變數,那麼     

特別地,如果f是嚴格凸函式,那麼

當且僅當

,也就是說x是常量。

這裡我們將

簡寫為。如果用圖表示會很清晰:

模式識別與機器學習(2)

參考部落格 隨機梯度下降 clear all x load ex2data ex2x.dat y load ex2data ex2y.dat x 1.15 1.9 3.06 4.66 6.84 7.95 10,14,16 x power x,0.5 y power x,0.5 m length y ...

模式識別與機器學習(4)

講了推理,以及主要收穫為,原來是對損失函式求導。不過公式不是很對,因為 clear x load ex4data ex4x.dat y load ex4data ex4y.dat m,n size x x ones m,1 x figure pos find y neg find y 0 plot ...

模式識別與機器學習(5)

clear x load ex5data ex5linx.dat y load ex5data ex5liny.dat x load linear regression ex2data ex2x.dat y load linear regression ex2data ex2y.dat plot x...