シンプルな深層学習モデルでは精度は0.6台前半でした。
CNNを使うと結果は、精度がなんと0.8116と跳ね上がりました。データの数が足りないので、ここまでの精度は全く期待していませんでしたが、さすがCNN。CNNの特徴を一言でいうと、特徴量の全部を見るのではなくて、特徴のあるとことだけを際立たせて、どうでもいいところは捨ててしまうといったイメージです。
重回帰分析を学び始めた当初は、特徴量を増やすほど精度が上がるので、特徴量はたくさんあったほうがいいような気がします。僕も学び始めたころはそう思っていました。でも今回の結果のとおりで、意味のない特徴量というのはあるだけ無駄どころか、あること自体が精度の低下につながります。
今回書いたコードを載せておきます(大したものではありませんが...)。
この本を参考にしています。これは確か安間先生のゼミでテキストとして使ったものだと思います(間違っていたらごめんなさい)。
結果をよく見ると、学習曲線のとおりでやや過学習しています。繰り返す回数は7回でよかったようです。
予測の結果の内訳は、
正解 予測 数
シータ シータ 30
キキ 5
ナウシカ 5
キキ シータ 7
キキ 51
ナウシカ シータ 9
ナウシカ 31
まとめると、シータは40中30正解、キキは58中51正解、ナウシカは40中31正解となりました。また、キキとナウシカを間違えたものはありませんでした。
やはりCNNは画像を扱うタスクでは欠かせない技術です。