今回の実験の目的: 敵対的生成ネットワークをデータ拡張に応用できるのか試してみる。
敵対的生成ネットワークから生成された画像のみを使って分類器を訓練し、その性能を観察してみました。
- データを訓練データ、検証データ、テストデータに分割します。
- 訓練データのみを用いて各数字を生成するネットワークを訓練します。
- 各数字を生成するネットワークから生成された画像を用いて分類器を訓練します。
訓練データに対する精度: 99~100%
検証データに対する精度: 70~75%
テストデータに対する精度: 70%
訓練データに対する精度: 99%
検証データに対する精度: 98%
テストデータに対する精度: 98%
※このページ末尾に今回学習させた分類器の結果と、同様の条件の下で元の画像を用いて学習させた分類器の結果の画像を掲載してあります。以上の結果から、敵対的生成ネットワークから生成される画像に偏りがあると予想しました。
敵対的生成ネットワークをデータ拡張に応用するには生成されるデータに幅を持たせる必要があるかもしれません。
generated_imagesフォルダには各数字を生成するネットワークが実際に生成した画像を格納してあります。
画像の末尾についている数字は、その画像を生成した時のイテレーション回数です。
modelsフォルダには敵対的生成ネットワークにおける生成者と識別者のモデルを格納してあります。
discriminatorが識別者、generatorが生成者です。
訓練データに対する精度 訓練データに対する損失 検証データに対する精度 検証データに対する損失 訓練データに対する精度 訓練データに対する損失 検証データに対する精度 検証データに対する損失