aspuru-guzik-group / ORGANIC

Code repo for optimizing distributions of molecules.
GNU General Public License v3.0
127 stars 63 forks source link

rollout update_params issues #2

Open Yuanpengli opened 7 years ago

Yuanpengli commented 7 years ago

Using the GANS for generating smiles is great idea. I have read all of the code. I just wondering why updating the parameters when we run the rollout. Corresponding to the one line code. organic.py line987: self.rollout.update_params() Because the values of generator trainable parameters are same with the value of rollout trainable parameters. All update the parameter is updated by using the formula: rollout.parameter = self.update_rate roll.parameter + (1- self.update_rate)generator.parameter But all the value of roll.parameter are same with generator.parameter. Maybe I misunderstand the code. Could you please help me figure it out? Thank you very much.

Yuanpengli commented 7 years ago

Could I ask the second question about pretrain? Why using the 'pretrain' before the ORGANS train? Using The Unsupervised Training could get good initialization for ORGANS? Thank you very much.

couteiral commented 7 years ago

Hi Yuanpegli.

(1) The parameters for the rollout and the generator are not, in general, the same. The rollout is updated slowly to ensure that it is stable against fluctuations.

(2) The pretraining ensures that both the generator and the discriminator know something before the actual training process starts. In absence of it, the generator would spit out senseless strings that could not be trained in any practical way. Think of it as teaching something to someone who cannot speak any language.

Please feel free to ask if anything is unclear.

Regards, Carlos