自編碼器變種
1、denoising auto-encoder:加隨機雜訊
2、dropout auto-encoder:防止過擬合
3、adversarial auto-encoder:利用額外的判別器網路來判定降維的隱藏變數?是否取樣先驗分布?(?),對抗自編碼器是從下一章要介紹的生成對抗網路演算法衍生而 來,在學習完對抗生成網路後可以加深對對抗自編碼器的理解。
4、vae:我從概率的角度,我們假設任何資料集都取樣自某個分布?(x|z),z 是隱藏的變數,代表了某種內部特徵,比如手寫數字的x,z 可以表示字型的大小,書寫風格,加粗、斜體等設定,它符合某個先驗分布?(z),在給定具體隱藏變數z 的情況下,我們可以從學到了分布?(x|z)中取樣一系列的生成樣本,這些樣本都具有z 所表示的共性。
推導過程可以參考最大似然估計值link
編碼器引數為??(z|x),中間量為z,即先驗概率為p(z),解碼器引數為??(x|z),最後得出式子:
maxℒ(?, ?) = −??? (??(z|x)|?(z)) + ??~? [??? ??(x|z)](∫? (z|x) ??? ??(x|z))
因此可以用編碼器網路引數化? (z|x)函式,解碼器網路引數化
??(x|z)函式,通過計算解碼器的輸出分布??(z|x)與先驗分布?(z)之間的kl 散度,以及解碼器的似然概率??? ??(x|z)構成的損失函式,即可優化ℒ(?, ?)目標。
式子第一項求最小值,一般p(z)為正態分佈,q一般也為正態分佈;
式子第二項與? (x) = ∫ ?(x|z)?(z)?z相似,即輸出與輸入的最小差值。
編碼器輸出先驗分布的均值?和方差?2,由於取樣操作的存在,導致梯度傳播是不連續的,無法通過梯度下降演算法端到端式訓練vae 網路。
reparameterization trick:它通過 z= ? + ? ⊙ ?方式取樣隱變數z,其中??,??和????均是連續可導,從而將梯度傳播連線起來。?變數取樣自標準正態分佈?(0, ?),?和?由編碼器網路產生,通過 = ? + ? ⊙ ?即可獲得取樣後的隱變數。
Tensorflow2 0學習筆記 建立張量
使用constant建立張量 使用constant函式建立張量 其中 1,5 表示張量內容,dtype表示資料型別 a tf.constant 1,5 dtype tf.int32 輸出a,a的資料型別,a的形狀 print a print a.dtype print a.shape 輸出結果 tf...
Tensorflow2 0學習筆記 常用函式(一)
1.資料型別轉換函式 定義乙個張量 a tf.constant 0,1,2 3,4,5 6,7,8 dtype tf.int64 強制轉換型別函式 b tf.cast a,tf.float32 reduce max查詢張量中最大的數,axis x表示對對應的行或者列求和 本例中為二維張量,0對應的對...
tensorflow2 0視訊記憶體設定
遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...