差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | 次のリビジョン両方とも次のリビジョン | ||
intro:researches:machine [2023/05/29 17:30] – [クリティカルバッチサイズの推定] Naoki SATO | intro:researches:machine [2023/05/29 18:22] – [クリティカルバッチサイズの推定] Naoki SATO | ||
---|---|---|---|
行 201: | 行 201: | ||
ここまでのことを踏まえて、『学習が収束するまでに必要なステップ数$N$』を、『十分に低いFIDを達成するまでに必要なステップ数$N$』と読み替えます。 | ここまでのことを踏まえて、『学習が収束するまでに必要なステップ数$N$』を、『十分に低いFIDを達成するまでに必要なステップ数$N$』と読み替えます。 | ||
LSUN Bedroomデータセットを使って、DCGANを訓練する場合、FIDの極限は41.8程度です。学習の不安定性を考慮して、今回の実験では、FID=70を十分に低いFIDだとして、FID=70を停止条件にします。\\ | LSUN Bedroomデータセットを使って、DCGANを訓練する場合、FIDの極限は41.8程度です。学習の不安定性を考慮して、今回の実験では、FID=70を十分に低いFIDだとして、FID=70を停止条件にします。\\ | ||
+ | |||
+ | {{ : | ||
\\ | \\ | ||
3. 学習率\\ | 3. 学習率\\ | ||
行 211: | 行 213: | ||
{{ : | {{ : | ||
+ | |||
+ | なお、$\beta_1$と$\beta_2$は一般的な値を使用します。\\ | ||
+ | \\ | ||
+ | それでは、いよいよバッチサイズを変えて、『FID=70を達成するまでに必要なステップ数』を計測していきましょう。 | ||
+ | バッチサイズは大きければ大きいほどGPUをたくさん使用するので、計算機の都合上、今回の実験では、$b=[4, | ||
+ | $Nb-b$グラフを作ると、次のようになります。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 予想通り、全てのoptimizerで凸関数になっています。このグラフの最小値をとるような$b$が、それぞれのクリティカルバッチサイズです。これで、Adamのクリティカルバッチサイズの測定値は$2^5=32$であることが分かりました。これを使って、未知数$\sigma_G^2 / \epsilon_G^3$を逆算しましょう。Adamの推定式をもう一度掲載します。 | ||
+ | \begin{align} | ||
+ | b_G^\star \geq | ||
+ | \frac{\sigma_G^2}{\epsilon_G^3}\frac{\alpha^G}{(1-\beta_1^G)^3 \sqrt{\frac{\Theta}{1-\beta_2^G} \frac{1}{|S|^2}}} | ||
+ | \end{align} | ||
+ | これを未知数$\sigma_G^2 / \epsilon_G^3$について書き直して、既知のパラメータに使用した値を代入すると、 | ||
+ | \begin{align} | ||
+ | \frac{\sigma_G^2}{\epsilon_G^3} \leq 788.7 | ||
+ | \end{align} | ||
+ | とできます。これを使えば、AdaBeliefとRMSPropの推定値を計算できます。さらに、生成器のモデルにDCGAN architectureを採用している場合は、この比$\sigma_G^2 / \epsilon_G^3$を適用できるので、別のGANでDCGAN architectureを採用している場合にもこの推定式は有効です。実際、WGAN-GPでCelebAデータセットを訓練する場合にも、推定値と測定値は近くなります。 | ||