做者:櫻花豬算法
摘要:框架
本文爲七月算法(julyedu.com)12月機器學習第十六次課在線筆記。當咱們已知模型的存在,想知道參數的時候咱們就能夠經過採樣的方式來得到必定數量的樣本,從而學習到這個系統的參數。變分則是在採樣的基礎上的一次提高,採用相鄰結點的指望。這使得變分每每比採樣算法更高效:用一次指望計算代替了大量的採樣。直觀上,均值的信息是高密(dense)的,而採樣值的信息是稀疏(sparse)的。機器學習
預備知識:函數
隱馬爾科夫模型、EM算法工具
1、採樣學習
一、爲什麼要採樣?spa
前提:模型已經存在,但參數未知;3d
n方法:經過採樣的方式,得到必定數量的樣本,從而學習該系統的參數。orm
現須要對機率密度函數f(x)的參數進行估計,若已知的某機率密度函數g(x)容易採樣得到其樣本,能夠如何估計f(x)的參數?(若離散分佈,則f(x)爲機率分佈律。)blog
一個簡單粗暴的採樣算法:再拒絕採樣法(Rejection sampling)
利用已有的機率密度函數g(x)隨機採樣生成樣本,拒毫不在f(x)內的樣本
二、重述採樣——馬爾科夫鏈
採樣:給定機率分佈p(x),如何在計算機中生成它的若干樣本?
方法:馬爾科夫鏈模型
考慮某隨機過程π,它的狀態有n個,用1~n表示。記在當前時刻t時位於i狀態,它在t+1時刻位於j狀態的機率爲P(i,j)=P(j|i):即狀態轉移的機率只依賴於前一個狀態。
馬爾科夫隨機過程的平穩分佈:初始機率不一樣,但通過若干次迭代,π最終穩定收斂在某個分佈上。
上述平穩分佈的馬爾科夫隨機過程對採樣帶來很大的啓發:對於某機率分佈π,生成一個可以收斂到機率分佈π的馬爾科夫狀態轉移矩陣P,則通過有限次迭代,必定能夠獲得機率分佈π。
該方法可以使用MonteCarlo模擬來完成,稱之爲MCMC(Markov Chain Monte Carlo)。
三、細緻平穩條件
從穩定分佈知足πP=π能夠抽象出以下定義:若是非週期馬爾科夫過程的轉移矩陣P和分佈π(x)知足
則π(x)是馬爾科夫過程的平穩分佈。上式又被稱做細緻平穩條件(detailed balance condition)。
細緻平穩的理解:根據定義,對於任意兩個狀態i,j,從i轉移到j的機率和從j轉移到i的機率相等。可直觀的理解成每個狀態都是平穩的。
5、Matropolis-Hastings算法
在給定的條件分佈
中採樣一個值
計算M-H率
則t+1時刻的值爲
最終獲得的序列收斂於f(x)分佈。
6、MCMC Matropolis-Hastings算法
根據須要知足的細緻平穩條件
若令,則有:
將接受率置爲恆小於1,從而
初始化馬爾科夫過程初始狀態
第t時刻馬爾科夫過程初始狀態,採樣
從均勻分佈中採樣:
則接受狀態j,即,不然,不接受狀態j,
由:
很容易獲得二維Gibbs採樣算法:
隨機初始化:
對循環採樣:
2、變分
1、Gibbs採樣和變分
Gibbs採樣:使用鄰居結點(相同文檔的詞)的主題採樣值
變分:採用相鄰結點的指望。n
這使得變分每每比採樣算法更高效:用一次指望計算代替了大量的採樣。直觀上,均值的信息是高密(dense)的,而採樣值的信息是稀疏(sparse)的。
2、變分概述
變分既可以推斷隱變量,也能推斷未知參數,是很是有力的參數學習工具。其難點在於公式演算略複雜,和採樣相對:一個容易計算但速度慢,一個不容易計算但運行效率高。
平均場方法的變分推導,對離散和連續的隱變量都適用。在平均場方法的框架下,變分推導一次更新一個分佈,其本質爲座標上升。能夠使用模式搜索(pattern search)、基於參數的擴展(parameter expansion)等方案加速
有時假定全部變量都獨立不符合實際,可以使用結構化平均場(structured mean field),將變量分紅若干組,每組之間獨立
變分除了可以和貝葉斯理論相配合獲得VB(變分貝葉斯),還能進一步與EM算法結合,獲得VBEM,用於帶隱變量和未知參數的推斷。