アンビグラム自動生成
東大1S情報αでやってみたい気持ち
- 余裕があれば音声のアンビグラムも
例えば、GANで人の顔を生成する時、そのまま版 & 上下逆版の両方を毎回Discriminatorに投げれば、人の顔写真のアンビグラム(?)が出来る
同じ事を、Conditional GANでやれば文字の生成も可能?
@nbaji9: 文字と絵が連動するアナグラム「dear / read」
#アナグラム絵 https://t.co/wmuFtsGaTV
- こういうやつの生成にも使える様なモデルがいいな
ログ 20220606
- たぶんデータ変えてもDCGANじゃないと厳しいので、とりあえずMNISTでDCGANを成功させる
- その後、notMNISTってのが良さそうなので試す
- DCGAN
- 順転のみの時はうまくいく
- アンビグラムすると、全然ダメなところで停滞してしまう
- 汎化できていないと言う事だと思うので、Dropout高めてみる
- 0とか1とか2みたいな簡単なのだとどうなる?
- 0は成功
- 1も2回中1回成功
- MNISTと違って、常に右には傾いていないのはうまくいっている証拠
- notMNIST + DCGAN
- 1000iter
- まあ良い
- 5000iter
- 色々なスタイルが出ているのでnonMNISTを使った甲斐があった
- これでアンビグラムをすると?
- 全然無理
- 何が問題なんだろう
- https://gangango.com/2018/11/16/post-322/
- Discriminatorの頭が良すぎて、Generatorが学べる勾配が消滅してしまっている感じ?
- これっぽいな
- Discriminatorをアホにすれば良いのかな
- Discriminatorの頭が良すぎて、Generatorが学べる勾配が消滅してしまっている感じ?
- https://gangango.com/2018/11/16/post-322/
ログ 20220523
- とりあえず、MNISTで「9」を生成するGANを訓練してみる
- 400
- できた✅
- その上で、generaterの出力を半分上下反転でDiscriminatorに投げる様にしてみる
- Data Augmentationに使ったRandomFlipを使えば楽にできるな
- RandomFlipをGeneratorの最後に
- あれ、おかしいな
- 1500
- 普通に一方向だけの9が出てる..?
- 両方でうまくいくのを諦めて、半分だけ9を出して50%で成功するところに落ち着いてしまった?
- いや、そんなことはないわ
- だとしても半分はひっくり返った9が出ているはず
- https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomFlip
During inference time, the output will be identical to input. Call the layer with training=True to flip the input.
- これっぽい
- 他のやり方を見つけた
- 3500
- うーん…w
- 努力は認める
- 他の数字でも試す
- 5
- 5
- DCGANでも試す
- 普通の5:
- まあ調整は必要そう
- アンビグラム5:
- 全然ダメだw
- 普通の5:
- あれ、おかしいな
- RandomFlipをDiscriminatorの最初に
- これは、つまり上下反転の9も9と認識する様になる
- まあそうなるわな
- どっちでも良いので、片方を出す様になる
- これではだめ
- とりあえずDCGANは放置して、普通のGANでデータセット増やす
- LRDS
https://paperswithcode.com/dataset/letter
- ダメっぽい
- これは文字画像ではなく、文字画像の特徴を抽出したデータセットっぽい
- LRDS
https://paperswithcode.com/dataset/letter
- とりあえず、MNISTで「9」を生成するGANを訓練してみる
#実装するかも