2017年6月24日土曜日

少数のデータで強力な分類能力を有するモデルを作成してみる その1。(Building powerful image classification models using very little data. part 1)

オリジナルモデル

はじめに

表題のとおり、少ないデータで識別能力の高いモデルを作成してみる。オリジナルは、この記事
また、この記事をベースとした日本語版 VGG16のFine-tuningによる犬猫認識 の記事

最初に、日本語版をみて概要を掴み、オリジナルの記事に従って順番に試していくのがよいと思う。

この記事では、データのオーギュメンテーションの方法を最初に説明し、3段階のステップを踏んで、80%,90%,95%と正答率を向上さえてゆく。

オーギュメンテーションの方法は、別の機会とし、最初は、フルスクラッチのモデルを試してみた。
上部の画像は、モデルの構成を出力したのである。

準備

kaggleに登録し、ここから学習用データをダウンロードする

学習には、オリジナル記事の用なフォルダー構成と画像データを必要とする。
上記記事の作者がスクリプトを提供してくれているのでありがたく使用させていただいた。

画像の分類を終えたなら、オリジナルに掲載されている、コードをそのまま写経し実行する。

当方の構成では、最初のエポックをのぞき1回のエポックに11秒かかった。
50エポックにかかった時間は、約10分であった。正答率は79%となった。

学習時の正答率

このデモを実行しても、上記の用に学習の経過が表示されるだけであり、実行結果は、重みとして最後に保存される。
日本語版の記事では、途中の経過をhistoryに記録するように修正されている。

メモ

なお、オリジナルは、3月に修正されKeras 2.0のAPIにあわせて書き直されている。

Note: all code examples have been updated to the Keras 2.0 API on March 14, 2017. You will need Keras version 2.0.0 or higher to run them.


日本語版は、keras 1.2なので注意

第2段階は次回に

0 件のコメント:

コメントを投稿