InfoGAN 生成時序序列

2021-09-09 01:33:14 字數 2667 閱讀 9761

完整**:

本文介紹用infogan生成多維時序序列。

name

class

dimension

train size

test size

truncated

charactertrajectories203

1422

1436

182charactertrajectories資料集是小寫英文本元軌跡的資料集,包含20個類』a』 『b』 『c』 『d』 『e』 『g』 『h』 『l』 『m』 『n』 『o』 『p』 『q』 『r』 『s』 『u』 『v』 『w』 『y』 『z』。每個樣本是乙個時序序列,有三個維度,分別是x

xx軸座標、y

yy軸座標和筆尖力度。作者將所有樣本都進行了截斷或補零,統一變成長度為182的序列。樣本進行了一階差分處理,需要通過累積(cumsum)來恢復原本的座標軌跡。

只選用樣本的前兩維:x

xx軸座標、y

yy軸座標。

尺寸為[n,

182,2]

[n,182,2]

[n,182

,2]的mini-batch應該處理(reshape)成[n,

182,2,

1][n,182,2,1]

[n,182

,2,1

],而不是[n,

182,1,

2][n,182,1,2]

[n,182

,1,2

],前者將樣本作為長182寬2的單通道影象,後者將樣本作為長182寬1的雙通道影象。經試驗,後者無法生成,前者可以。

**位址:infogan: interpretable representation learning by information maximizing generative adversarial nets

**認為普通的gan做生成的時候,輸入的雜訊對輸出的影象造成的影響十分不明確,雜訊與影象之間的對映關係可能非常複雜。infogan希望gan能達到這樣的效果:改變z的某個維度,能讓生成的樣本有明顯改變。

infogan將雜訊分成兩部分:z

zz和c

cc,其中z

zz是普通雜訊部分,用於生成複雜的樣本,c

cc是編碼部分,用於控制生成樣本的關鍵資訊(例如類別、旋轉等)。infogan由三部分組成:生成器g

gg(用於生成樣本)、判別器d

dd(用於和g對抗)、分類器q

qq(用於恢復c

cc)。分類器q

qq的任務是猜測樣本是由什麼樣的c

cc控制生成的,它要求g

gg不能把一些無意義的東西塞進c

cc裡,這裡g

gg和q

qq的組合其實有點像autoencoder。然而,g

gg有可能直接把c

cc拼在輸入的某處直接送給q

qq,為了避免這樣的情況,判別器d

dd要求g

gg必須生成足夠真實的樣本。

cc 有12位,前10位是one-hot過的標籤,用於控制類別,後2位是隨機數,控制屬性未知,需要網路學習。

有些gan的實現裡,生成器最後一層加了sigmoid或tanh,我這裡沒有任何啟用函式,也能生成。

樣本處理成[n,

182,2,

1][n,182,2,1]

[n,182

,2,1

]尺寸能生成,[n,

182,1,

2][n,182,1,2]

[n,182

,1,2

]不能。

儘管c

cc中有類別,生成的樣本並不是與給定的類別一致的。例如在c

cc中編碼字元a,原本是希望能生成a的樣本,但實際上生成的可能是b的樣本。然而幸運的是,儘管類別是亂序的,但編碼了某個類別後,生成的必然是某一類的樣本,不會是多類的。原本我以為是我**寫錯了,但github上乙個高star**的結果也是亂序的,應該不是我的問題。

mnist做資料集時,c

cc的最後兩位可以控制寬度和旋轉角度,而在時序序列的生成任務裡,似乎效果不顯著,可能有這樣的效果:增大c

cc的數值,字元的尾巴會變長。其實infogan原**裡也只是說作者發現改變這兩位剛好對應了不同寬度和旋轉的mnist數字,要是能夠在訓練前就指定好某一位就是控制寬度、某一位就是控制旋轉就好了。

tensorflow-generative-model-collections

timeseries_gan

序列生成 RNN對抗序列生成

摘要 證明了文字的對抗樣本可以干擾rnn的分類結果。介紹 兩種方法 the fast gradient sign method the forward derivative method 主要貢獻 形式化對抗樣本優化問題 將對抗擾動加到其他輸入中 評估了文字對抗樣本表現 2.關於迴圈神經網路 機器學...

VESA時序之自生成動條紋

vesa時序之自生成動條紋 關於fpga學習之vesa時序自生成動條紋,實驗所達到的效果就是在自生成純色圖的基礎上讓某一寬度的條紋在純色圖上移動 本實驗以白色背景黑色條紋為例,分別講述橫著動條紋和豎著動條紋 對於怎樣實現橫著動條紋,其主要思想就是先設定變數pos用來確定橫著動條紋的位置,然後在完成每...

MATLAB篇 時序資料模擬生成

本文目的是介紹如何模擬實際資料中具有特徵的時間序列資料。基於本文提供的模擬資料方法為以後闡述不同時頻分析方法提供資料支撐。均勻且正態分佈的白雜訊 可以通過函式rand 均勻分布 和randn 通常為gaussian分布 生成雜訊。這些函式的輸入指定所得矩陣的大小。yu rand 1000,1 yn ...