数学狂想曲(三)——统计杂谈, PID算法, 20世纪10大算法, 矩阵向量的积
http://antkillerfarm.github.io/
統計雜談
統計模擬
統計模擬是數理統計中非常有用的工具之一, 它是利用計算機產生某概率模型的隨機數,再通過這些隨機數來模擬真實模型。
這方面的書籍首推Sheldon M.Ross所著的《Simulation》。
注:Sheldon M.Ross,斯坦福大學統計學博士(1968),UCB教授(1976~2004),南加州大學Industrial and Systems Engineering系主任。
以下僅記錄一些簡單的結論。
均勻分布
通過線性同余發生器可以生成偽隨機數,且該隨機數滿足均勻分布。
xn=axn?1modulom
正態分布
Box-Muller變換:如果隨機變量U1,U2獨立且U1,U2~Uniform(0,1),
Z0Z1=?2lnU1???????√cos(2πU2)=?2lnU1???????√sin(2πU2)
則Z0,Z1獨立且服從標準正態分布。
注:George Edward Pelham Box,1919~2013,英國統計學家。倫敦學院大學博士,先后供職于普林斯頓大學和威斯康辛-麥迪遜大學。Ronald Aylmer Fisher的女婿。英國皇家學會會員,美國統計協會主席,數理統計學會(這是一個國際組織)主席。
Mervin Edgar Muller,俄亥俄州立大學教授。
統計力學與組合優化
MCMC和Gibbs Sampling最早都是統計力學的概念,后來才被用于機器學習領域。現將統計力學與組合優化的對應關系羅列如下:
| 樣本 | 問題實例 |
| 狀態(構形) | 構形 |
| 能量 | 代價函數 |
| 溫度 | 控制參數 |
| 基態能量 | 最小代價 |
| 基態構形 | 最小構形 |
頻率統計學派 vs. 貝葉斯學派
對數學史感興趣的朋友,可以看看陳希孺院士的《數理統計學簡史》一書。rickjin文章的內容有相當部分取自該書。
注:陳希孺,1934~2005,數理統計學家。1956年畢業于武漢大學數學系,1997年當選為中國科學院院士。
該書中關于頻率統計學派和貝葉斯學派的爭議,引起了我的注意。
頻率統計學派是所謂的正統派,由于其簡單且便于理解的特點,多數入門級的數理統計學教程,一般都是按照該學派的思路寫的。
而貝葉斯學派可謂另辟蹊徑,它和頻率統計學派的差異,參見《機器學習(七)》。由于該派系的思想比較新穎,我一度以為它和頻率統計學派的關系,就猶如相對論之于經典力學。
然而,陳希孺院士告訴我們,兩者各有優劣,尚未到一方決出勝負的階段。比如,貝葉斯學派的先驗估計,既是其成功的奧秘,也是其不成功的軟肋。比如,對于“無信息先驗分布”,目前尚處于“信則靈,不信則無”的境地。
陳院士的觀點是:各取所長,為我所用。
PID算法
PID算法是自動控制領域最基礎應用也最廣泛的算法。它是三個單詞proportional(P,比例)、integral(I,積分)和differential(D,微分)的縮寫。
PID算法的流程如下圖所示:
以下我們以水箱水龍頭為例,解釋一下PID算法的各個要素。
場景1:假設我們面對的系統是一個簡單的水箱的液位,要從空箱開始注水直到達到某個高度,而你能控制的變量是注水龍頭的開關大小。
圖1中的r(t)表示期待的設定值,在這個場景中,就是水箱的液位。y(t)表示當前的液位。e(t)=r(t)?y(t)表示誤差值。
針對這個場景,我們可以設計如下算法:
水箱液位離預定高度遠的時候開關開大點,離的近的時候開關就開小點,隨著液位逐步接近預定高度逐漸關掉水龍頭。用數學表示就是:
u(t)=Kpe(t)(1)
上式中的u(t)表示需要控制的量,在這里就是水龍頭的開合度。Kp被稱為比例系數。
場景2:假設這個水箱不僅僅是裝水的容器了,還需要持續穩定的給用戶供水。
以下用c表示給用戶供水的量(c≥0)。顯然如果使用公式1,則系統穩定時,u(t)?c=0,即Kpe(t)=c。
由于c和Kp都不為0,因此e(t)也不為0,這就導致始終無法加注到指定水位。這種穩態誤差被稱為靜差。
為了平衡c,我們修改算法為:
u(t)=Kpe(t)+Ki∫t0e(τ)dτ(2)
Ki被稱為積分系數。積分環節的意義就相當于你增加了一個水龍頭,這個水龍頭的開關規則是水位比預定高度低就一直往大了擰,比預定高度高就往小了擰。如果漏水速度不變,那么總有一天這個水龍頭出水的速度恰好跟漏水的速度相等了,系統就和第一小節的那個一樣了。那時,靜差就沒有了。這就是所謂的積分環節可以消除系統靜差。
場景3:假設用戶的用水量是變化的,即c(t)。
這時,如果仍采用公式2,則由于c(t)的變化,導致e(t)不恒為0。為了減小c(t)的變化,對e(t)的影響,我們繼續修改算法:
u(t)=Kpe(t)+Ki∫t0e(τ)dτ+Kdde(t)dt(3)
Kd被稱為微分系數。由于c(t)的變化不可能事先得知,因此,微分環節只能減小c(t)的變化所造成的影響,而不能消除。
公式3在Laplace域可寫做:
L(s)=Kp+Ki/s+Kds(4)
從公式4可以看出,PID controller的數學原理和鎖相環(Phase-locked loop)非常類似,它們實際上都是Feedback Control系統。
參考:
https://en.wikipedia.org/wiki/PID_controller
《Feedback Control of Dynamic Systems》,Gene F. Franklin,J David Powell,Abbas Emami-Naeini著。
注:Gene F. Franklin,1927~2012,美國控制論學家。哥倫比亞大學博士,斯坦福大學教授。
J David Powell,美國航空航天學家。斯坦福大學博士和教授。
Abbas Emami-Naeini,斯坦福大學博士和講師,SC Solutions公司總監。
https://www.zhihu.com/question/23088613/answer/23942834
http://blog.163.com/suyanqiang0613@126/blog/static/1100531332012111475650867/
20世紀10大算法
2000年,IEEE評選出20世紀10大算法。名單如下:
1.Metropolis Algorithm for Monte Carlo
2.Simplex Method for Linear Programming
3.Krylov Subspace Iteration Methods
4.The Decompositional Approach to Matrix Computations
5.The Fortran Optimizing Compiler
6.QR Algorithm for Computing Eigenvalues
7.Quicksort Algorithm for Sorting
8.Fast Fourier Transform
9.Integer Relation Detection
10.Fast Multipole Method
詳細內容參見:
http://www.uta.edu/faculty/rcli/TopTen/topten.pdf
中文版本:
http://blog.csdn.net/v_JULY_v/article/details/6127953
矩陣&向量的積
矩陣&向量有很多種積的定義,特羅列如下:
向量的點積
Dot product,又稱inner product。
代數定義:
a?b=∑i=1naibi=a1b1+a2b2+?+anbn
幾何定義:
a?b=∥a∥?∥b∥cos(θ)
復變積分定義:
?ψ,χ?=∫baψ(x)χ(x)ˉˉˉˉˉˉˉdx
矩陣的積
matrix product的定義如下(以3階方陣為例):
AB=???apubqvcrw??????αλρβμσγντ???=???aα+bλ+cρpα+qλ+rρuα+vλ+wρaβ+bμ+cσpβ+qμ+rσuβ+vμ+wσaγ+bν+cτpγ+qν+rτuγ+vν+wτ???
可以看出,積矩陣的每個元素是矩陣A、B相應行列向量的內積。
向量的向量積
Cross product是一個向量,其定義如下:
a×b=∥a∥∥b∥sin(θ)?n
它還有個更出名的定義:
u×v=∣∣∣∣iu1v1ju2v2ku3v3∣∣∣∣
向量的混合積
triple product,又稱mixed product或box product。
a?(b×c)≡det???a1b1c1a2b2c2a3b3c3???=det(a,b,c)
向量的笛卡爾積
Cartesian product實際上是集合論中的概念。
A×B={1,2}×{3,4}={(1,3),(1,4),(2,3),(2,4)}
向量的張量積
Tensor product,又稱outer product。
u?v=uvT=?????u1u2u3u4?????[v1v2v3]=?????u1v1u2v1u3v1u4v1u1v2u2v2u3v2u4v2u1v3u2v3u3v3u4v3?????
可以看出,Tensor product和Cartesian product,雖然形式上都是各向量的組合,然而前者是2維的,而后者是1維的。
矩陣的張量積
張量積推廣到矩陣,即所謂Kronecker product。
注:Leopold Kronecker,1823~1891,德國數學家。柏林大學博士和教授。導師Dirichlet。他最牛逼的地方是,當Riemann去世的時候,拒絕了哥廷根大學的offer。而這個位置的前任分別是:Carl Gauss、Dirichlet、Riemann。
A?B=????a11B?am1B???a1nB?amnB????
Hadamard product
又叫Schur product或entrywise product。
注:Jacques Salomon Hadamard,1865~1963,法國數學家。巴黎高等師范學校博士,波爾多大學教授。他曾于1936年訪華,執教于清華大學。中國偏微分方程研究事業的主要創始人之一——吳新謀教授,就是他的學生。
???a11a21a31a12a22a32a13a23a33???°???b11b21b31b12b22b32b13b23b33???=???a11b11a21b21a31b31a12b12a22b22a32b32a13b13a23b23a33b33???
總結
以上是生活随笔為你收集整理的数学狂想曲(三)——统计杂谈, PID算法, 20世纪10大算法, 矩阵向量的积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习(十五)——loss funct
- 下一篇: 机器学习(十六)——隐式狄利克雷划分