官术网_书友最值得收藏!

1.2.1 極大似然估計法

既然生成模型的核心是求解p(x),那么我們來考慮一個簡單的問題,對于一批樣本集合,是否可以通過直接統計樣本的個數來對p(x)進行估計?這聽起來是可行的,我們只需要對每一個樣本統計頻次,然后除以樣本集合的總樣本數進行概率歸一化,即可得到關于p(x)的柱狀分布圖,如圖1-2所示。但是當樣本維度較大時,便會出現維數災難問題。例如對于MNIST數據集中的圖像,其維度為28×28=784,每個像素位置的可取數值為0或1,即概率分布共包含2784≈10236個樣本點,也對應了大約10236個需要估計的概率數值。實際上,任何一個訓練數據集都只能包含全部樣本空間中的極小一部分樣本點,并且每一張圖像只能影響一個樣本點的概率,對其他內容相似的樣本點概率則不能產生任何影響,故這種計數統計模型不具備泛化性能。在實際操作中,我們不可能保存每一個樣本點的概率數值,而是會使用參數化的概率密度函數pθ(x),其中θ為模型的參數。

圖1-2 概率分布柱狀圖

我們先介紹使用極大似然估計法的生成模型,充分理解極大似然原理對理解生成模型有非常重要的意義。注意,并不是所有的生成模型都使用極大似然估計法,有些生成模型默認不使用,但是也可以做一些修改令其使用極大似然估計法,GAN就屬于這一類。

極大似然估計法是對概率模型參數進行估計的一種方法,例如有一個包含N個樣本的數據集{x(1),x(2),…,x(N)},數據集中每個樣本都是從某個未知的概率分布pdata(x)中獨立采樣獲得的,若我們已經知道pg(x)的形式,但是pg(x)的表達式里仍包含未知參數θ,那問題就變成如何使用數據集來估算pg(x)中的未知參數θ。例如pg(x)是一個均值和方差參數還未確定的正態分布,那么如何用樣本估計均值和方差的準確數值?

在極大似然估計法中,首先計算所有樣本的似然函數L(θ)為:

似然函數是一個關于模型參數θ的函數,當選擇不同的參數θ時,似然函數的值是不同的,它描述了在當前參數θ下,使用模型分布pg(x;θ)產生數據集中所有樣本的概率。一個樸素的想法是:在最好的模型參數θML下,產生數據集中的所有樣本的概率是最大的,即

實際上,在計算機中,多個概率的乘積結果并不方便存儲,例如計算過程中可能會出現數值下溢的問題,即對比較小的、接近于0的數進行四舍五入后成為0。我們可以對似然函數取對數(即log[Lθ)])來解決該問題,并且仍然通過求解最好的模型參數θML使對數似然函數最大,即

可以證明兩者是等價的,但是將似然函數取對數后會把概率乘積形式轉換為對數求和的形式,大大方便了計算。繼續將其展開后,有

可以發現,使用極大似然估計法時,每個樣本xi都希望拉高它所對應的模型概率值pg(x(i);θ),如圖1-3所示。但是由于所有樣本的密度函數pg(x(i);θ)的總和必須是1,所以我們不可能將所有樣本點都拉高到最大的概率。換句話說,一個樣本點的概率密度函數值被拉高將不可避免地使其他點的函數值被拉低,最終達到一個平衡態。

圖1-3 極大似然估計法原理

我們也可以將上式除以N,此時極大似然估計最大化的目標是在經驗分布下使得概率對數的期望值最大,即

另一種對極大似然估計的理解是:極大似然估計本質是最小化訓練集上的經驗分布和模型分布pgxθ)之間的KL散度值,即

而KL散度的表達式為:

由于θ值與第一項無關,故只考慮第二項,有

可以發現兩者是完全一樣的,也就是說極大似然估計就是希望pgx;θ)和pdatax)盡量相似,最好無任何差異(KL散度值為0),這與生成模型的思想是一致的。但實際的生成模型一般不可能提前知道pgx;θ)的表達式形式,只需要估計表達式中的參數,因為實際樣本數據非常復雜,往往對pgx;θ)無任何先驗知識,只能對其進行一些形式上的假設或近似。

很多生成模型可以使用最大似然的原理進行訓練,在得到關于參數θ的似然函數L(θ)后,我們只需最大化似然函數即可,只是不同模型的差異在于如何表達或者近似表達似然函數L(θ)。圖1-1的左邊分支均為顯式生成模型,其中完全可見置信網絡模型對pg(x;θ)做出了形式上的假設,而流模型則通過定義一系列非線性變換給出了pg(x;θ)的表達式,這兩個模型其實都給出了似然函數L(θ)的確定表達式;變分自編碼器模型則采用近似的方法,只獲得了對數似然函數log[L(θ)]的一個下界,通過最大化該下界近似地實現極大似然;玻爾茲曼機使用馬爾可夫鏈對似然函數的梯度進行了近似。接下來,我們將分別介紹這些模型,并討論它們的優缺點。

主站蜘蛛池模板: 凭祥市| 鄂尔多斯市| 兴化市| 平乡县| 突泉县| 齐齐哈尔市| 临洮县| 新营市| 秦安县| 沐川县| 青州市| 晋江市| 锦屏县| 宁强县| 济源市| 垦利县| 胶南市| 阿拉善右旗| 同德县| 桃源县| 玛纳斯县| 甘谷县| 广水市| 柳林县| 贺州市| 清水县| 孝义市| 防城港市| 娱乐| 合江县| 彰化市| 寻乌县| 越西县| 抚顺市| 新化县| 西峡县| 南投市| 巨鹿县| 延庆县| 四子王旗| 隆化县|