筆記:ML-LHY-17/18: Unsupervised Learning - Deep Generative Model
主要介紹無監督學習中的生成模型。
傳統利用RNN的Pixel RNN
經典的Auto-Decoder和VAE(變分自動編碼器),以及解釋在概率上的VAE做法,和存NN的聯絡
最近比較流行的GAN
視訊1 視訊2 pdf
Pixel RNN
訓練一個RNN:
看到第1個pixel就輸出第2個推理pixel。
看到第1、第2個pixel就輸出第3個推理pixel。
看到第1、第2個、第3個pixel就輸出第4個推理pixel。
…
比如有一張真實的圖:
如果遮擋一部分,然後輸入Pixel RNN:
得到的結果:
同樣可以用在語音上,比如WaveNet:
預先輸入一段語義,預測後面的部分。
Variational Auto-encoder(VAE)
VAE與Auto-encoder不同的地方在於中間的code部分是:
c
i
=
exp
(
σ
i
)
×
e
i
+
m
i
c_{i}=\exp \left(\sigma_{i}\right) \times e_{i}+m_{i}
ci=exp(σi)×ei+mi
除了希望輸入輸出要儘可能一樣外,還需要最小化:
∑
i
=
1
3
(
exp
(
σ
i
)
−
(
1
+
σ
i
)
+
(
m
i
)
2
)
\sum_{i=1}^{3}\left(\exp \left(\sigma_{i}\right)-\left(1+\sigma_{i}\right)+\left(m_{i}\right)^{2}\right)
i=1∑3(exp(σi)−(1+σi)+(mi)2)
為什麼要用VAE方法?
左邊是Auto-encoder,在code的中間部分,希望輸出的3/4月亮,但是Auto-encoder往往很難學習到。
VAE的做法是在code部分新增noise,兩邊的noise都會延伸到中間,那麼在中間的部分就學習到兩邊的圖,但是輸出右只能一張,所以會比Auto-encoder有更好的學習能力。
使用VAE,我們觀察式子:
c
i
=
exp
(
σ
i
)
×
e
i
+
m
i
c_{i}=\exp \left(\sigma_{i}\right) \times e_{i}+m_{i}
ci=exp(σi)×ei+mi
可以發現
m
i
m_{i}
mi是原始的code,但是和Auto-encoder相比多新增了
exp
(
σ
i
)
×
e
i
\exp \left(\sigma_{i}\right) \times e_{i}
exp(σi)×ei。其中
e
i
e_{i}
ei是從正態分佈中抽取的樣本,然後乘一個exp(var) 改變大小,var的大小是encoder自動學習的。
但是不對var做限制的話,var可能是0,所以就有:
∑
i
=
1
3
(
exp
(
σ
i
)
−
(
1
+
σ
i
)
+
(
m
i
)
2
)
\sum_{i=1}^{3}\left(\exp \left(\sigma_{i}\right)-\left(1+\sigma_{i}\right)+\left(m_{i}\right)^{2}\right)
i=1∑3(exp(σi)−(1+σi)+(mi)2)
藍色是
exp
(
σ
i
)
\exp \left(\sigma_{i}\right)
exp(σi),紅色是
1
+
σ
i
1+\sigma_{i}
1+σi,綠色就是:
exp
(
σ
i
)
−
(
1
+
σ
i
)
\exp \left(\sigma_{i}\right)-\left(1+\sigma_{i}\right)
exp(σi)−(1+σi),可以發現當我們希望
exp
(
σ
i
)
−
(
1
+
σ
i
)
\exp \left(\sigma_{i}\right)-\left(1+\sigma_{i}\right)
exp(σi)−(1+σi)最小時,
exp
(
σ
i
)
\exp \left(\sigma_{i}\right)
exp(σi)並不是0,而是1。所以這個正則可以防止var = 0
注意到有個
(
m
i
)
2
\left(m_{i}\right)^{2}
(mi)2,就是常規的L2正則,希望不要過擬合。
VAE-Gaussian解釋
VAE在統計學上對的解釋:
我們的目的是求一個概率分佈
P
(
x
)
P(x)
P(x),其中x是圖片在高維空間的表示,比如影像
256
∗
256
256 *256
256∗256那麼x就是
256
∗
256
256 *256
256∗256的向量,但是一般我們是用低維空間的x來輸出圖片,使用x一般是比
256
∗
256
256 *256
256∗256低很多的向量。那麼是關於什麼的概率分佈呢?是關於這個x是不是真實圖片的概率。比如下面概率低的地方,圖片也就很不真實。我們求得
P
(
x
)
P(x)
P(x)後,在概率值高的地方sample就是大概率會和真實的圖接近。
問題變成求 P ( x ) P(x) P(x)
我們把資料分佈看做是GMM(Gaussian Mixture Model),假設GMM是由m個GM組成,而這個m其實就是上面NN中code的長度,而code的值在這就是
P
(
m
)
P(m)
P(m),單個GM的weight。相同的道理,在NN中表示低維空間的weight。
這個式子
P
(
x
)
=
∑
m
P
(
m
)
P
(
x
∣
m
)
P(x)=\sum_{m} P(m) P(x \mid m)
P(x)=∑mP(m)P(x∣m)其實就是全概率公式。也可以結合上面GMM來理解。
上面是離散型表示,類比上面預測月亮,我們希望學習輸入的code不是特定的值,而是希望是一個連續的分佈,使用 P ( z ) P(z) P(z)是1個多維的正態分佈。
所以
求
P
(
x
)
求P(x)
求P(x)變為:
P
(
x
)
=
∫
Z
P
(
z
)
P
(
x
∣
z
)
d
z
P(x)=\int_{Z} P(z) P(x \mid z) d z
P(x)=∫ZP(z)P(x∣z)dz
插入一些預備的東西:
我們假設學習一個NN可以求z這個點對應到x空間上時,那個GM的
μ
(
z
)
,
σ
(
z
)
\mu(z), \sigma(z)
μ(z),σ(z):
注意事實上這裡的
μ
(
z
)
,
σ
(
z
)
\mu(z), \sigma(z)
μ(z),σ(z)是
P
(
x
∣
z
)
P(x|z)
P(x∣z)的。
我們也假設學習一個NN’可以求x這個點對應到z空間上時,那個GM的
μ
′
(
z
)
,
σ
′
(
z
)
\mu'(z), \sigma'(z)
μ′(z),σ′(z):
注意事實上這裡的
μ
′
(
z
)
,
σ
′
(
z
)
\mu'(z), \sigma'(z)
μ′(z),σ′(z)是
P
(
z
)
P(z)
P(z)的。
類比NN中VAE:
各種是Decoder和Encoder。
繼續回到數學上,要求P(x),數學上直觀方法是使用Maximizing Likelihood求:
L
=
∑
x
log
P
(
x
)
L=\sum_{x} \log P(x)
L=x∑logP(x)
下面一些推導
其中引入一個任意分佈
q
(
z
∣
x
)
q(z \mid x)
q(z∣x):
∫
z
q
(
z
∣
x
)
=
1
\int_{z} q(z \mid x) = 1
∫zq(z∣x)=1
所以要最大化L,而
L
≥
∫
Z
q
(
z
∣
x
)
log
(
P
(
x
∣
z
)
P
(
z
)
q
(
z
∣
x
)
)
d
z
L\geq \int_{Z} q(z \mid x) \log \left(\frac{P(x \mid z) P(z)}{q(z \mid x)}\right) d z
L≥∫Zq(z∣x)log(q(z∣x)P(x∣z)P(z))dz
L
b
L_b
Lb作為下界
log
P
(
x
)
=
L
b
+
K
L
(
q
(
z
∣
x
)
∥
P
(
z
∣
x
)
)
L
b
=
∫
Z
q
(
z
∣
x
)
log
(
P
(
x
∣
z
)
P
(
z
)
q
(
z
∣
x
)
)
d
z
\begin{array}{l} \log P(x)=L_{b}+K L(q(z \mid x) \| P(z \mid x)) \\ L_{b}=\int_{Z} q(z \mid x) \log \left(\frac{P(x \mid z) P(z)}{q(z \mid x)}\right) d z \end{array}
logP(x)=Lb+KL(q(z∣x)∥P(z∣x))Lb=∫Zq(z∣x)log(q(z∣x)P(x∣z)P(z))dz
我們的目的是找
P
(
x
∣
z
)
P(x \mid z)
P(x∣z) 和
q
(
z
∣
x
)
q(z \mid x)
q(z∣x),使得
L
b
L_b
Lb越來越大,從而
log
P
(
x
)
\log P(x)
logP(x)就會越來越大。
而對於
q
(
z
∣
x
)
q(z \mid x)
q(z∣x)來說,它不會影響
log
P
(
x
)
\log P(x)
logP(x),它引入的目的只是調整
L
b
L_b
Lb。所以當
L
b
L_b
Lb越來越大時,
K
L
(
q
(
z
∣
x
)
∥
P
(
z
∣
x
)
)
K L(q(z \mid x) \| P(z \mid x))
KL(q(z∣x)∥P(z∣x))越來越小。
此時 q ( z ∣ x ) q(z \mid x) q(z∣x)和 P ( z ∣ x ) P(z \mid x) P(z∣x)分佈越來越接近。而 P ( z ∣ x ) P(z \mid x) P(z∣x)是由NN得到,相當於Decoder。
單獨分析
L
b
L_b
Lb,現在目的是使得
L
b
L_b
Lb越大越好。別忘記了,求這些的一切目的都是在最大似然的框架下求
P
(
x
)
P(x)
P(x)。
為了最大化
L
b
L_b
Lb,所以需要使得
K
L
(
q
(
z
∣
x
)
∥
P
(
z
)
)
K L(q(z \mid x) \| P(z))
KL(q(z∣x)∥P(z))越來越小。
此時 q ( z ∣ x ) q(z \mid x) q(z∣x)和 P ( z ) P(z) P(z)分佈越來越接近。而 P ( z ) P(z ) P(z)是由NN’得到,相當於Encoder。
分析最後一項:
∫
Z
q
(
z
∣
x
)
log
P
(
x
∣
z
)
d
z
\int_{Z} q(z \mid x) \log P(x \mid z) d z
∫Zq(z∣x)logP(x∣z)dz
最大化它,其實就是求
log
P
(
x
∣
z
)
\log P(x \mid z)
logP(x∣z)最大化,由於P是一個GM,所以在取均值是得到最大。所以期望
P
(
x
∣
z
)
P(x \mid z)
P(x∣z)的均值就是x的均值。
所以在概率上的VAE也是期望輸入和輸出要越接近越好。
和之前提到的Auto-Encode對比:
- 在輸入這邊的NN’得到 μ ′ ( z ) , σ ′ ( z ) \mu'(z), \sigma'(z) μ′(z),σ′(z),也就是 P ( z ) P(z) P(z),在AE中相當於Encoder。
- 然後在 P ( z ) P(z) P(z)上進行sample得到z,在AE中相當於hidden layer中的code。
- z又經過輸出層這邊的NN得到 μ ( z ) , σ ( z ) \mu(z), \sigma(z) μ(z),σ(z),也就是 P ( x ∣ z ) P(x|z) P(x∣z),在AE中相當於Decoder。
- 而使用最大似然求 P ( x ) P(x) P(x)要求最後的 μ ′ ( z ) , σ ′ ( z ) \mu'(z), \sigma'(z) μ′(z),σ′(z),也就是 P ( z ) P(z) P(z)的 μ ’ ( z ) \mu’(z) μ’(z)要與x的mean一樣,在AE中相當於Loss要求的輸入-輸出越小越好。
一頭霧水,還不是很明白…
VAE缺點
從訓練過程就可以看出,VAE一般產生的圖片是去近似資料集裡的圖片。它做的更新是線性變換。而沒有真正意義上的生成新的圖。
VAE可能只是記住現有的影像,而不是 生成新的圖片
Generative Adversarial Network (GAN)
GAN是2014年提出。
The evolution of generation
GAN演算法大致:
隨機初始化Generator引數。
迭代第k次(
k
1
=
1
k_1 = 1
k1=1):
- 產生第k代Generator,產生label為0的圖,
- 使用label為1真實圖片和label為0的虛假圖,訓練產生第k代Discriminator(二元分類器)
- 固定Discriminator引數,將Discriminator和Generator組成一個大的NN,使用GD求輸出越大越好,即希望通過GD調整Generator的引數後,大多數圖片騙過Discriminator,所以輸出會很大。
以上參考李宏毅老師視訊和ppt,僅作為學習筆記交流使用
相關文章
- Deep Transfer Learning綜述閱讀筆記筆記
- 深度學習 DEEP LEARNING 學習筆記(一)深度學習筆記
- 深度學習 DEEP LEARNING 學習筆記(二)深度學習筆記
- 【論文筆記】A Survey on Deep Learning for Named Entity Recognition筆記
- Deep Learning(深度學習)學習筆記整理系列深度學習筆記
- 【機器學習】李宏毅——Unsupervised Learning機器學習
- 論文筆記 Deep Patch Learning for Weakly Supervised Object Classication and Discovery筆記Object
- Deep Learning(深度學習)學習筆記整理系列之(一)深度學習筆記
- UnFlow:Unsupervised Learning of Opitical Flow with a Biderectional Census Loss 閱讀筆記IDE筆記
- Ensemble distillation for robust model fusion in federated learning論文筆記筆記
- 林軒田機器學習技法課程學習筆記13 — Deep Learning機器學習筆記
- SciTech-BigDataAIML-LLM-Generative modelAI
- 【深度學習】大牛的《深度學習》筆記,Deep Learning速成教程深度學習筆記
- 論文筆記之:Human-level control through deep reinforcement learning筆記
- 《A Discriminative Feature Learning Approach for Deep Face Recognition》閱讀筆記APP筆記
- Deep Learning with Differential Privacy
- 閱讀筆記(Communication-Efficient Learning of Deep Networks from Decentralized Data)筆記Zed
- 遷移學習(JDDA) 《Joint domain alignment and discriminative feature learning for unsupervised deep domain adaptation》遷移學習AIAPT
- 【機器學習】李宏毅——Flow-based Generative Models機器學習
- 深度學習(Deep Learning)深度學習
- 《DEEP LEARNING·深度學習》深度學習
- Neural Networks and Deep Learning(神經網路與深度學習) - 學習筆記神經網路深度學習筆記
- deep learning深度學習之學習筆記基於吳恩達coursera課程深度學習筆記吳恩達
- machine learning model(algorithm model) .vs. statistical modelMacGo
- 吳恩達機器學習第三課 Unsupervised learning recommenders reinforcement learning吳恩達機器學習
- 機器學習(Machine Learning)&深度學習(Deep Learning)資料機器學習Mac深度學習
- 150 Successful Machine Learning Models: 6 Lessons Learned at Booking.com 筆記Mac筆記
- 論文翻譯:2021_Towards model compression for deep learning based speech enhancement
- Machine Learning 機器學習筆記Mac機器學習筆記
- Join Query Optimization with Deep Reinforcement Learning AlgorithmsGo
- [Deep Learning] 神經網路基礎神經網路
- Deep Learning 優化方法總結優化
- 論文解讀DEC《Unsupervised Deep Embedding for Clustering Analysis》
- 深度學習模型調優方法(Deep Learning學習記錄)深度學習模型
- Evolving Losses for Unsupervised Video Representation LearningIDE
- 論文解讀(SUGRL)《Simple Unsupervised Graph Representation Learning》
- 【面向程式碼】學習 Deep Learning(二)Deep Belief Nets(DBNs)
- 《Docker Deep Dive》閱讀筆記(一)Docker筆記