Keras版CNNによるCIFAR-10データセットの学習

CIFAR-10は一般的な物体画像のデータセットであり、画像検出のテストとしてよく利用されます。

そこで今回はKerasを用いて畳み込みニューラルネットワーク(CNN)を作成し、CIFAR-10の学習を行いました。

 

 

 

CIFAR-10

CIFAR-10は飛行機、鳥、犬などの一般的な物体画像のデータベースです。

 

The CIFAR-10 dataset

 

CIFAR-10の画像数は60000枚であります。そのうち50000枚は学習用のセットであり、10000枚はテスト用のセットです。

画像サイズ縦32×横32のRGB画像で、画像のクラス数はMNISTと同様に10クラスです。

CIFAR-10は80 Million Tiny Imagesのサブセットです。元となる80 Million Tiny Imagesは画像数8000万枚の巨大なデータセットです。

 

CIFAR-10はMNISTと同様非常に有名であり、ニューラルネットワーク等のテストとしてよく用いられます。

 

KerasからCIFAR-10へのアクセスは次のように行います。

 

作成モデル

使用した多層パーセプトロンのモデルを示します。

 

CNNの構造

 

  • 階層は畳み込み層2、全結合層2としました。
  • 活性化関数はRelu関数を使用
  • 出力層にはソフトマックスを使用
  • 誤差関数には交差エントロピー誤差関数を使用

 

 

コード

使用したコードを下記に示します。実行はPython 3.6、TensorFlow 1.8、Keras 2.2.2を用いました。

 

 

多層パーセプトロンの場合と同様Kerasを使用すれば、TensorFlowと比べ簡単にモデルを作成することができました。

 

実行結果

実行結果を示します。

 

学習の結果判定率は67.2 %となりました。
この判定率自体は低い値となってしまいましたが、原因としてはネットワークの階層が浅く、学習方法も単純なものを選んだからだと思います。

今後は学習方法やネットワークの深さを変えて行い、判定率が向上するか見てみたいと思います。

 

まとめ

  • 一般的な物体の画像データセットとしてCIFAR-10がある
  • Keras版CNNを作成し、CIFAR-10データセットの学習を行った
  • 学習の結果判定率は67.2 %となった
  • 今後ネットワークの深さや学習方法を変更し、判定率の向上をめざす

 

関連記事

ニューラルネットワーク・ディープラーニングのまとめ

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA