1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【画像生成】AutoencoderでDLの記憶について遊んでみた♬

Posted at

DLの記憶について、Autoencoderでいろいろ遊んでみました。

・DLの記憶に挑戦

ここまでで一応、DLの記憶に挑戦する準備ができました。
それは、どうしてもLatent空間の大きさを変化させてその様子を見たいと考えているためです。
まず、z_meanを二次元とします。
最初に7を100epoch学習します。
以下のようにいろいろな種類の7が並びます。
autodetect_100_7.jpg
そして、その7を学習したweightを使って、8を100epoch学習します。
以下のようにいろいろな8が並びました。
autodetect_epoch100.jpg
つまり、7を学習したのに8を100epoch学習したら、すっかり7を忘れてしまいました。

ということで、これは学習しすぎということで、epoch数を減少していきます。
5epoch
autodetect_epoch5.jpg
上記のとおり、たかだか5epochで、もう8しか覚えていません。

2epoch
autodetect_epoch2.jpg
どうにか2epoch以下なら7の記憶があるようです。
そして、次に4を学習します。なんと1epochの学習で記憶がすべて4になってしまいました。
autodetect_epoch1.jpg
やんぬるかなw

ここで、方針転換します。

Latent空間が小さいので記憶喪失に陥っていると仮定します。
つまり、Latent空間を大きくしていきます。
z_mean=3次元として、7を100epoch学習し、その後8を2epoch学習すると以下のようにまだ7を覚えています。
autodetect_epoch2.jpg
しかし、8を10epoch学習すると、またまたすべて8になってしまいました。
autodetect_epoch10.jpg

z_meanの次元が上がると。。。

そして、さてということで、z_mean=10次元として100epoch学習すると以下の絵が得られました。
autodetect_epoch100L10.jpg
この絵を見ると、なんとなく7以外の数字も覚えているように見えます。
ということで、Latent空間の次元を徐々に増やして、2,3,5,10,20,100、そして1000次元で7を学習してみました。
その結果が以下のとおりになりました。
autodetect_epoch100_Latent-dim.gif
つまり、学習していないはずの数字までAutoencoderで再現できてしまいました。
最後のz_mean=1000の時の画像を貼っておきます。
autodetect_epoch100L1000.jpg

まとめ

・潜在空間の次元が小さいとDLはすぐ忘れる
・潜在空間の次元が大きいと、明示的に学習していないことも覚える

・このとき何が起きているかを次回の記事にしたいと思います

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?