birdx0810 / timegan-pytorch

This repository is a non-official implementation of TimeGAN (Yoon et al., NIPS2019) using PyTorch.
MIT License
80 stars 35 forks source link

Dear author, I‘ve got some questions about Time-GAN. #9

Closed BaeHann closed 1 year ago

BaeHann commented 1 year ago

敬愛的作者您好。由於您可能是臺灣人且我的英文並不流利,我就首先用中文問了。(下方還有英文的翻譯版。)我想請教您兩個問題:1. NIPS論文中對於supervised loss的定義好像和代碼中不太一樣,因為代碼中單獨多出一個叫supervisor的對象。而且論文中似乎supervised loss是要向generator輸入噪聲才能算,而您是用supervisor在x的特征層H上算的。所以有些不解這個supervisor的功能是什麽? 2.Time-GAN的一大優勢是能夠計算並匹配stepwise conditional distribution,我想問一下conditional distribution是如何通過RNN和MSE loss實現的呢?或者說為什麽按照代碼中那樣就實現了Time-GAN的功能呢?謝謝您

  1. I am a little confused by the presence of the "supervisor" since in the original paper, the supervised loss seems to be carried out on the Generator. Furthermore, the input of "Supervisor" doesn't entail the noise Z at all, which may conflict with the formula in the paper.
  2. I can hardly distinguish which part of the model corresponds to the calculation of conditional distribution and the matching of these conditionals. The Time-Gan features the calculation of "capture the stepwise conditional distributions in the data" and the matching of them. Are these conditional distributions calculated by means of MSE and the RNN modules?(If so, How? If not, Who?) Thank you a lot!

屏幕截图 2023-03-16 193806

luoxia-wen commented 1 year ago

我也对这个supervisor有疑问,好像官方实现里也有superviser。 我看论文感觉是嵌入层的隐变量和生成器的隐变量之间求loss,不知道作者啥时候能解答一下😭

BaeHann commented 1 year ago

我也对这个supervisor有疑问,好像官方实现里也有superviser。 我看论文感觉是嵌入层的隐变量和生成器的隐变量之间求loss,不知道作者啥时候能解答一下😭

我先看看,要是我能看明白就好了。话说老哥是研究什么方向的,为什么看这个?

luoxia-wen commented 1 year ago

时序分析

birdx0810 commented 1 year ago

抱歉小弟這麼晚回复。

  1. 據原作而言,你可以視 Generator = (Generator + Supervisor) ref。雖然在存訓練 Supervisor 的時候是沒有依賴 Z 去更新,但是生成 X_hat 的時候 backpropagation 會影響到模型的權重。我個人覺得是可以針對這些細節做調整,說不定會比原作的更好。

  2. Stepwise Conditional Distribution 是希望學習到真實資料時間上變動的過程,所以會希望 H_hat_supervise 跟 H 越接近越好。並且這樣,在生成的過程中,Generator + Supervisor 就會更加有效詮釋資料分佈。所以,沒錯,就是接著 MSE,以 H_hat_supervise_t 跟 H_t-1 的相似度作為 Loss,讓 Supervisor 學習這是資料的 “時間分佈”。

至於對論文跟程式碼的落差,也有人提過這個問題,但我找不到具體文章。我就不多評論了,我沒有什麼資格批評。

BaeHann commented 1 year ago

抱歉小弟這麼晚回复。

  1. 據原作而言,你可以視 Generator = (Generator + Supervisor) ref。雖然在存訓練 Supervisor 的時候是沒有依賴 Z 去更新,但是生成 X_hat 的時候 backpropagation 會影響到模型的權重。我個人覺得是可以針對這些細節做調整,說不定會比原作的更好。
  2. Stepwise Conditional Distribution 是希望學習到真實資料時間上變動的過程,所以會希望 H_hat_supervise 跟 H 越接近越好。並且這樣,在生成的過程中,Generator + Supervisor 就會更加有效詮釋資料分佈。所以,沒錯,就是接著 MSE,以 H_hat_supervise_t 跟 H_t-1 的相似度作為 Loss,讓 Supervisor 學習這是資料的 “時間分佈”。

至於對論文跟程式碼的落差,也有人提過這個問題,但我找不到具體文章。我就不多評論了,我沒有什麼資格批評。

谢谢您,我再理解一下。有问题再请教,打扰您了!