1. 程式人生 > 其它 >計算機視覺-生成模型

計算機視覺-生成模型

生成模型


給定訓練集,產生與訓練集同分布的新樣本。

希望學到一個模型,其與訓練樣本的分佈相近。

無監督學習裡的一個核心問題:密度估計問題。

典型思路:

  • 顯式的密度估計:顯示的定義並求解分佈。

  • 隱式的密度估計:學習一個模型,而無需顯示的定義它。

顯式地密度模型:PixelRNN與PixelCNN

利用鏈式準則將影象x的生成概率轉變為每個畫素生成概率的乘積。

缺點是:畫素的生成是序列的進行訓練,生成整張圖片的效率太慢了。

二者的優點:似然函式可以精確計算;利用似然函式的值可以有效地評估模型效能。

二者的缺點:序列產生=>慢

VAE(變分自編碼)


無監督的特徵學習,其目標是利用無標籤資料找到一個有效地低維的特徵提取器。

對輸入資料進行降維,採用的方法是自編碼器(早先使用的方法是線性方法,後來出現了全連線神經網路,最後使用卷積神經網路)。

特徵降維的作用是:希望降維後的特徵僅保留資料中有意義的資訊。

整體的方法就是將輸入資料通過編碼器提取特徵,然後對特徵使用解碼器重構輸入資料,也就是保證輸出和輸入儘可能的重合。

經過訓練後的編碼器就可以用於分類任務,但是效果沒有直接用VGG等的好,因為它保留的是樣本特徵,而沒有特別保留樣本間的區別特徵,但是在分類中,這個樣本間的區別特徵或許會更加的重要。而訓練後的解碼器就可以用於生成圖片,類似於給定一個數據,可以通過解碼器自動生成一張數字圖片等。

優點:生成模型裡的一種主要方法,可以計算出一個特徵,這個特徵表示可以用在其他的許多工重。

缺點:最大化似然函式的下邊界能夠有效地工作,但是模型不好評估;與GAN相比,產生的樣本模糊,質量較低。

生成對抗網路GAN


問題:希望從訓練樣本分佈中取樣新資料,但這個分佈不僅維度高而且還很複雜,難以直接實現。

解決方案:對一個簡單的分佈取樣,比如均勻分佈;然後,學習一種對映將其變換到訓練樣本分佈。

生成網路:期望能夠產生儘量真實的圖片,進而騙過判別器。

判別網路:期望能夠準確的區分真假圖片。

在這個過程中採用的是minimax的方式聯合訓練。基本流程是首先訓練判別,是的整個式子的值儘可能的大。然後訓練生成器,是的能夠儘量的騙過判別器,讓判別器輸出結果為1。

GAN總結:

  • 不需要顯式地密度函式定義

  • 採用了遊戲理論方法:利用2個玩家的博弈,來學習訓練資料的分佈。

  • 優點:優雅,目前最好的生成效果。

  • 缺點:很難訓練,非常不穩定;無法計算出樣本或者隱變數的概率。

  • 領域熱點:更好的損失函式,更穩定的訓練方法(Wasserstein GAN,LSGAN等等);條件GANs(Conditional GANs),將GANs應用於多種任務。

DCGAN:

DCGAN構架在訓練過程中狀態穩定,並可以有效實現高質量的圖片生成,因此,現在的很多GAN都是在它的基礎上進行改進的。

DCGAN提了四種規則:

  • 使用卷積層代替池化層。

  • 去除全連線層。

  • 使用批歸一化。

  • 使用恰當的啟用函式:生成網路使用ReLU,輸出層採用Tanh;判別器使用LeakluReLU。

LSGAN:

GAN網路在訓練時經常出現D太過於強大,很快就能分出真假,一些點離決策邊界非常遠,所處位置梯度是0.這部分樣本很難被拉到真實點附近。

解決方案:將判別器任務由分類改成迴歸任務。

WGAN:

推土機距離:

γ表示需要從xp中拿多少土放入xq中,二正規化表示xp和xq之間的距離。然後推土機距離是要在所有方案中選擇 那個最小的距離方案。

條件GAN:

問題:

  • 存在標籤1對多的問題,傳統的神經網路的輸出結果和每個訓練結果都儘量接近,導致生成影象非常模糊,甚至無法分辨。

  • 期望輸出內容是多樣的,是可以被控制的。

ACGAN:

# 生成模型
---
給定訓練集,產生與訓練集同分布的新樣本。
希望學到一個模型,其與訓練樣本的分佈相近。
無監督學習裡的一個核心問題:密度估計問題。
典型思路:
* 顯式的密度估計:顯示的定義並求解分佈。* 隱式的密度估計:學習一個模型,而無需顯示的定義它。
### 顯式地密度模型:PixelRNN與PixelCNN
利用鏈式準則將影象x的生成概率轉變為每個畫素生成概率的乘積。
![image-20211125195923837](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211125195923837.png)
缺點是:畫素的生成是序列的進行訓練,生成整張圖片的效率太慢了。
二者的優點:似然函式可以精確計算;利用似然函式的值可以有效地評估模型效能。
二者的缺點:序列產生=>慢
### VAE(變分自編碼)
---
無監督的特徵學習,其目標是利用無標籤資料找到一個有效地低維的特徵提取器。
對輸入資料進行降維,採用的方法是自編碼器(早先使用的方法是線性方法,後來出現了全連線神經網路,最後使用卷積神經網路)。
特徵降維的作用是:希望降維後的特徵僅保留資料中有意義的資訊。
整體的方法就是將輸入資料通過編碼器提取特徵,然後對特徵使用解碼器重構輸入資料,也就是保證輸出和輸入儘可能的重合。
經過訓練後的編碼器就可以用於分類任務,但是效果沒有直接用VGG等的好,因為它保留的是樣本特徵,而沒有特別保留樣本間的區別特徵,但是在分類中,這個樣本間的區別特徵或許會更加的重要。而訓練後的解碼器就可以用於生成圖片,類似於給定一個數據,可以通過解碼器自動生成一張數字圖片等。
優點:生成模型裡的一種主要方法,可以計算出一個特徵,這個特徵表示可以用在其他的許多工重。
缺點:最大化似然函式的下邊界能夠有效地工作,但是模型不好評估;與GAN相比,產生的樣本模糊,質量較低。
## 生成對抗網路GAN
---
問題:希望從訓練樣本分佈中取樣新資料,但這個分佈不僅維度高而且還很複雜,難以直接實現。
解決方案:對一個簡單的分佈取樣,比如均勻分佈;然後,學習一種對映將其變換到訓練樣本分佈。
**生成網路:**期望能夠產生儘量真實的圖片,進而騙過判別器。
**判別網路:**期望能夠準確的區分真假圖片。
在這個過程中採用的是minimax的方式聯合訓練。基本流程是首先訓練判別,是的整個式子的值儘可能的大。然後訓練生成器,是的能夠儘量的騙過判別器,讓判別器輸出結果為1。
**GAN總結:**
* 不需要顯式地密度函式定義* 採用了遊戲理論方法:利用2個玩家的博弈,來學習訓練資料的分佈。* 優點:優雅,目前最好的生成效果。* 缺點:很難訓練,非常不穩定;無法計算出樣本或者隱變數的概率。* 領域熱點:更好的損失函式,更穩定的訓練方法(Wasserstein GAN,LSGAN等等);條件GANs(Conditional GANs),將GANs應用於多種任務。
**DCGAN:**
DCGAN構架在訓練過程中狀態穩定,並可以有效實現高質量的圖片生成,因此,現在的很多GAN都是在它的基礎上進行改進的。
DCGAN提了四種規則:
* 使用卷積層代替池化層。* 去除全連線層。* 使用批歸一化。* 使用恰當的啟用函式:生成網路使用ReLU,輸出層採用Tanh;判別器使用LeakluReLU。
**LSGAN:**
GAN網路在訓練時經常出現D太過於強大,很快就能分出真假,一些點離決策邊界非常遠,所處位置梯度是0.這部分樣本很難被拉到真實點附近。
解決方案:將判別器任務由分類改成迴歸任務。
**WGAN:**
推土機距離:
![image-20211128150328726](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211128150328726.png)
γ表示需要從xp中拿多少土放入xq中,二正規化表示xp和xq之間的距離。然後推土機距離是要在所有方案中選擇 那個最小的距離方案。
**條件GAN:**
問題:
* 存在標籤1對多的問題,傳統的神經網路的輸出結果和每個訓練結果都儘量接近,導致生成影象非常模糊,甚至無法分辨。* 期望輸出內容是多樣的,是可以被控制的。
**ACGAN:**