1. 程式人生 > >Glow-流生成模型(一)

Glow-流生成模型(一)

      最近最火的生成模型應該就是Glow了,它是基於NICE和Density Estimation Using Real NVP產生的。雖然流生成模型(NICE)和GAN都是在2014年產生的,但很明顯GAN的流行程度要遠遠超過流生成模型。

       由於Glow的作者預設大家在讀Glow時都對NICE和Density Estimation Using Real NVP 比較瞭解了,因此文中沒有涉及到原理性的說明,這也讓我在讀這篇論文時感到比較吃力,只能大概理解說的是以一種分段或者說因式分解的方式來模擬原資料的分佈,感覺從思想上而言和ResNet有異曲同工之妙。

      這篇文章主要講解一下數學上的相關內容,因為自己的數學功底有限所以寫下來便於日後複習。

一、Jacobian矩陣(參閱Jacobian矩陣和Hessian矩陣

      只記得當年學習高數時有學習過Jacobian矩陣,但是具體是做什麼的和是由什麼構成的記不清了,這裡參閱上面的部落格重新學習了一下,寫的真的是非常的好。

在向量分析中, 雅可比矩陣是一階偏導數以一定方式排列成的矩陣, 其行列式稱為雅可比行列式. 還有, 在代數幾何中, 代數曲線的雅可比量表示雅可比簇:伴隨該曲線的一個代數群, 曲線可以嵌入其中. 它們全部都以數學家卡爾·雅可比(Carl Jacob, 1804年10月4日-1851年2月18日)命名;英文雅可比量”Jacobian”可以發音為[ja ˈko bi ən]或者[ʤə ˈko bi ən].

雅可比矩陣

雅可比矩陣的重要性在於它體現了一個可微方程與給出點的最優線性逼近. 因此, 雅可比矩陣類似於多元函式的導數.

假設F: Rn→Rm

是一個從歐式n維空間轉換到歐式m維空間的函式. 這個函式由m個實函式組成: y1(x1,…,xn), …, ym(x1,…,xn). 這些函式的偏導數(如果存在)可以組成一個m行n列的矩陣, 這就是所謂的雅可比矩陣:

此矩陣表示為: JF(x1,…,xn), 或者∂(y1,…,ym)∂(x1,…,xn).

這個矩陣的第i行是由梯度函式的轉置yi(i=1,…,m)表示的.

如果p是Rn中的一點, F在p點可微分, 那麼在這一點的導數由JF(p)給出(這是求該點導數最簡便的方法). 在此情況下, 由F(p)描述的線性運算元即接近點p的F的最優線性逼近, x逼近於p:F(x)≈F(p)+JF(p)⋅(x–p)

雅可比行列式

如果m = n, 那麼F

是從n維空間到n維空間的函式, 且它的雅可比矩陣是一個方塊矩陣. 於是我們可以取它的行列式, 稱為雅可比行列式.

在某個給定點的雅可比行列式提供了 在接近該點時的表現的重要資訊. 例如, 如果連續可微函式F

在p點的雅可比行列式不是零, 那麼它在該點附近具有反函式. 這稱為反函式定理. 更進一步, 如果p點的雅可比行列式是正數, 則F在p點的取向不變;如果是負數, 則F的取向相反. 而從雅可比行列式的絕對值, 就可以知道函式F在p

點的縮放因子;這就是為什麼它出現在換元積分法中.

對於取向問題可以這麼理解, 例如一個物體在平面上勻速運動, 如果施加一個正方向的力F

, 即取向相同, 則加速運動, 類比於速度的導數加速度為正;如果施加一個反方向的力F, 即取向相反, 則減速運動, 類比於速度的導數加速度為負.