日記(7/23)
時刻 | 行動 |
---|---|
6:00 | 起床 |
9:45 | 大学着 |
10:30 | グラフィック表現論期末試験 |
11:25 | 昼食 |
13:00 | 非線形工学期末試験 |
14:45 | 電気機器システム期末試験 |
17:00 | 帰宅 |
19:00 | 日課(Youtube) |
22:00 | 日課(Twitter) |
期末考査
想定以上に簡単だった気がする.特に非線形工学で履修した事柄はなんか他のことにも役立てそうではある.
実際にSpectral Norm GANでも行列のノルムを操作し,Lipschitz制約を満たすようにDiscriminatorの重みを変更している.
どうやらノルムは行列を作用素と見たときに自然に定義されるノルムらしく(詳しくはわからない),重みを逐一で割ってやることでDiscriminator全体が1-Lipschitzを満たすことができるようだ.
こう考えるとスペクトルノルムの導入はなかなか自然な感じがする.
実装
前に殴り書きした論文のまとめです.
Kerasではいまいち動的にレイヤのパラメータ自体を操作させる方法が分からなかったので,どうにか調べていたらPytorchでの実装を発見した.
PytorchはChainer(この論文を書いたPFNが開発している!)同様,Define-by-Runが特徴のNNライブラリらしい.(というよりChainer経験者なら4時間くらいで凡そ理解できそうなくらい似てると思う)
今回は上のソースをほぼ写経したうえ,の 枚のアニメの顔画像をバッチサイズ,潜在次元数で学習を実行させた.
1エポックに大体5時間半掛かり,5エポック終わらせるのにおおよそ1日要した.
その結果,以下のようになった.なお潜在変数は固定した.その方がなんか学習してる感が出やすいと思ったので.
しかしこれだと既存のGANと比べてどうすごいのかいまいちわかんないなあ.
夏休みに入ったら学習結果の評価手法とかの論文も読み漁ってみたい所存