- 生成對抗網絡GAN:原理與實踐
- 言有三 郭曉洲
- 1736字
- 2023-11-09 18:51:32
1.2.2 完全可見置信網絡
完全可見置信網絡(FVBN)中不存在不可觀察的潛在變量(隱變量),高維度的觀察變量的概率表達式被鏈式法則從維度上進行分解,即對于n維觀察變量x,其概率表達式為:

自回歸網絡是最簡單的完全可見置信網絡,其中每一個維度的觀察變量xi都構成概率模型的一個節點,而所有這些節點{x1,x2,…,xn}共同構成一個完全有向圖,圖中任意兩個節點都存在連接關系,如圖1-4所示。

圖1-4 自回歸網絡
因為自回歸網絡中已經有了隨機變量的鏈式分解關系,所以核心問題便成為如何表達條件概率p(xi xi-1,xi-2,…,x1)。最簡單的模型是線性自回歸網絡,即每個條件概率均被定義為線性模型,對實數值數據使用線性回歸模型(例如定義p(xi |xi-1,xi-2,…,x1)=w1x1+w2x2+…+wi-1xi-1),對二值數據使用邏輯回歸模型,而對離散數據使用softmax回歸模型,具體計算過程如圖1-5所示。但線性模型容量有限,擬合函數的能力不足。在神經自回歸網絡中,我們使用神經網絡代替線性模型,該模型可以任意增加容量,理論上可以擬合任意聯合分布。神經自回歸網絡還使用了特征重用的技巧,例如神經網絡從觀察變量xi學習到的隱藏抽象特征hi不僅會在計算p(xi+1|xi,xi-1,…,x1)時使用,也會在計算p(xi+2|xi+1,xi,…,x1)時進行重用,其計算圖如圖1-6所示。同時,該模型不需要分別使用不同神經網絡表示每個條件概率的計算,而是可以整合為一個神經網絡,因此只要設計成抽象特征hi只依賴于x1, x2,…,xi即可。目前,神經自回歸密度估計器是神經自回歸網絡中比較具有代表性的方案,它引入了參數共享的方案,即從觀察變量xi到任意隱藏抽象特征hi+1,hi+2,…的權值參數是共享的。總之,使用了特征重用、參數共享等深度學習技巧的神經自回歸密度估計器具有更優秀的性能。

圖1-5 線性自回歸網絡計算圖

圖1-6 神經自回歸網絡計算圖
WaveNet[1]是谷歌提出的一個語音生成模型,用于自回歸地生成語音序列。它所采用的主要計算模塊是空洞因果卷積,核心思想是基于之前時間節點的語音信息生成當前時間節點的語音信息。空洞因果卷積如圖1-7所示,在每一層的一維卷積神經網絡中,其輸出依賴于前一層的第t個和第t-d個時間節點的信息,其中d為空洞因子,例如第1、2、3個隱層的空洞因子分別為1、2、4。需要說明的是,當前時間節點的語音不會與之前所有時間節點的語音建立某種聯系,故樣本概率的表達式與式(1.11)有所出入,具體的依賴關系由卷積層的設定決定。在輸出語音信息時,先通過μ-law量化方法獲得256維的概率分布,每一個維度表示一個語音信號數值,然后從概率分布中采樣獲得當前時間節點的信號。
PixelRNN和PixelCNN[2]也屬于完全可見置信網絡。從名字可以看出,這兩個模型一般用于圖像的生成。它們將圖像x的概率p(x)按照像素分解為n個條件概率的乘積,其中n為圖像的像素點個數,即在每一個像素點上定義了一個條件概率,用以表達像素之間的依賴關系,該條件概率分別使用循環神經網絡(RNN)或者卷積神經網絡(CNN)進行學習。為了將輸出離散化,通常將RNN或CNN的最后一層設置為softmax層,用以表示其輸出不同像素值的概率。在PixelRNN中,我們一般定義從左上角開始沿著右方和下方依次生成每一個像素點,如圖1-8所示。當設定了節點依賴順序后,便可以得到樣本的對數似然的表達式,后續在訓練模型時只需要將其極大化即可。

圖1-7 WaveNet空洞因果卷積示意圖(見彩插)

圖1-8 PixelRNN生成像素順序
PixelRNN在其感受野內可能具有無邊界的依賴范圍,因為待求位置的像素值依賴之前所有已知像素點的像素值,這將需要極大的計算代價。PixelCNN使用標準卷積層來捕獲有界的感受野,其訓練速度要快于PixelRNN。在PixelCNN中,每個位置的像素值僅與其周圍已知像素點的值有關,如圖1-9所示。上部分為已知像素,而下部分為未知像素,計算當前位置的像素值時,需要把方框區域內的所有已知像素值傳遞給CNN,由CNN最后的softmax輸出層來表達在中間矩形位置取不同像素值的概率,這里可以使用由0和1構成的掩膜矩陣將方框區域內的灰色位置像素抹掉。PixelRNN和PixelCNN此后進行了非常多改進,例如為了在生成像素時消除盲點,Gated PixelCNN[3]將感受野拆分為水平和垂直兩個方向,進一步提升了生成質量。但由于它是逐個像素點地生成圖像,像素點前后存在依賴關系,具有串行性,故在實際應用中采樣效率難以保證,這也是諸多FVBN類模型經常出現的問題。

圖1-9 PixelCNN原理
PixelCNN模型是完全可見置信網絡中比較易于理解的模型,以下為PixelCNN模型的核心代碼:

