LINEで送る
Pocket

農作物の等級分類のAIが入り始めていますね。

 

有名なところでは、きゅうりのAIがあります。

 

AIを用いてきゅうりの等級分類を行うものです。

 

さて、以前、試しに作ってみたのですが、

学習の経過に応じて

学習データでは損失関数の値が減少していくものの、

評価用データではロスが途中から増加していく、

いわゆる「過学習」が起きました。

 

原因として考えられるのは、

・そもそもデータ数が少ない

・画像サイズが小さい

・ニューラルネットの構成が適切でない

といったことです。

(きゅうりのデータはネットから拾って加工したもの)

 

こういった問題にたいしては、転移学習を用いるのが良いであろうと気づきました。

 

転移学習の場合は、既に大規模データで学習済みのモデルを使います。

 

しかも、多くのモデルはいわゆる「深い」モデルです。

 

「深い」モデルでは、入力データが層と経過していくに従い、

特徴が抽出されていきます。

 

特に、大規模なデータで学習を行ったモデルは、

特徴抽出器として、大きな威力を発揮します。

 

今回、VGG16というモデルを使用してAIを作成してみてます。

なお、VGG16は、下の図のような感じのモデルです。

 

この図の緑色の部分が、全結合層になっています。

この、緑色の部分は、画像の特徴量を抽出した後で、

その特徴量をもとにそれが何であるのかを判断する層です。

 

VGG16はImageNetの画像を学習していますので、

分類はその1,000分類です。

 

しかし、実用面では、

その1,000種類に名札に分類できる必要は必ずしもなくて、

実際に使うカテゴリにのみ分類できれば良いのです。

 

その部分は、おそらく、ニューラるネットワークのうち、

最後の全結合層で行われています。

 

今回の転移学習では、

その全結合層の部分のみを入れ替え、学習を行います。

 

コメントを残す

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