« 自撮り用に最適!LEDが42個ついて懐中電灯代わりにもなるiPhoneケース”iFlash” | トップページ | 次のiPhone 7(仮)はFeliCa搭載か!? »

2016年8月27日 (土)

TensorFlowにてクラウン14世代分の機械学習をやらせてみた

先日の「TensorFlowで歴代「クラウン」の画像を判別させてみた: EeePCの軌跡」の記事の続きです。

14代すべてのクラウンの学習用データを作ってみました。

プログラム的には前回の記事から変わってません。前回のコードで「NUM_CLASSES」の値を15に変えた(クラウン14代分+その他の車)だけです。

なお、今回はラベル”0”をクラウン以外の車、”1”~”14”をそれぞれ初代~14代目のクラウンが出るようにしてます。その方がわかりやすいですし。

「その他の車」についても画像データを収集しなおしました。「国産車」でググった画像データを使用。

前回同様、「クラウン ○代目」でググった画像をダウンロードして、一つ一つ正方形にカットするという作業を実施。

・・・と書くと、あまりにあっさりしてますけど、実際はめちゃくちゃ鬱になりそうな作業に。

というのも、特に6代目~10代目がサムネイルでは前後世代の画像と全く区別できないという罠に陥りまして。

クラウンって、5代目あたりから「角目ライト」「真四角なグリル」の顔に固定されてしまい、世代間の違いがほとんどわからなくなるんですよね。

大きく変わるのは12代目の「ゼロ クラウン」から。ようやくここから違いが分かるようになります。

おかげで、5~11代目あたりを選別・切り出しをやってると、くらくらしてきます。

「ライトとグリルを枠に入れてクリック、ライトとグリルを枠に・・・」

エヴァの射撃訓練しているシンジ君のようです。

途中で歴代クラウンではなくスカイラインにしておけばよかったかなぁと後悔したくらい。

しまいには「クラウンとは何か!?」などと哲学的な思考を巡らせながら画像データをいじる羽目に。

で、ようやく作った720枚余りのデータ。

初代クラウンのあたり

Ts_crown_all01

このへんはまだわかりやすい。

でも6~11代目のあたりは

Ts_crown_all02

皆同じように見えます。

こんなんで、ほんとに大丈夫か!?

これを使って、トレーニングを実施します。

Ts_crown_all03

が、ここで問題発生。

学習の精度を示す”training accuracy”の値が1サイクル目から15%程度で頭打ちになります。

もしかしたら、私が苦しんだ「5代目~11代目の違い」がなさすぎるのが原因か!?

それとも単にラベル数が多すぎるのか!?

考えたら、学習時には画像サイズを28×28のサイズにしてますからね。

このサイズでは、歴代クラウンなんて”同じような”形にしか見えないのかもしれません。

てことでいろいろ試行錯誤した結果、11代目とよく似た5~10代目と、12代目に似ている13代目を除いた”7世代”分のデータにすると

Ts_crown_all04

50%程度ですが、まあまあの精度になります。

が、初代クラウンの画像を読み込ませたら

Ts_crown_all05

ありゃりゃ・・・”4代目”と認識されました。

いくつかやってみましたが、ほとんど当たりません。

”7世代”分はちょっと無理があるようですね。

で、徐々に世代数を減らしていくと、何とか使えるレベルになったのは前回の記事と同じ「1~4世代の一つ+14代目+その他の車」の3種類にしたとき。

つまり、前回記事で完成形だったということに。

このコードのアルゴリズムではせいぜい3種類くらいの判別が限界のようです。

まあ、これでも○○かそうでないかの2者択一をさせるなら使えそうです。

やっぱり、ちゃんと勉強しないといけませんね。使いこなせてません。

てことで「Python機械学習プログラミング」という本を買いました(Kindle版)。

いろいろな無料サンプルを読んでみましたけど、この本は機械学習の手法と対応するサンプルコードが併記されており、私的には読みやすそうだったので購入。

どちらかというと、コードなり物なりから理屈を理解するタイプなので、サンプルコードがあるのはわかりやすい。

ちょっとづつ、読み進めております。

いずれ、TensorFlowの本も買って、そちらも深めていこうかと。

しばらくはまりそうですね、人工知能。なんとかもうちょっとものにしたいところです。

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

« 自撮り用に最適!LEDが42個ついて懐中電灯代わりにもなるiPhoneケース”iFlash” | トップページ | 次のiPhone 7(仮)はFeliCa搭載か!? »

Raspberry Pi・Arduino・電子工作」カテゴリの記事

数値解析系」カテゴリの記事

科学・技術」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/510034/64091365

この記事へのトラックバック一覧です: TensorFlowにてクラウン14世代分の機械学習をやらせてみた:

« 自撮り用に最適!LEDが42個ついて懐中電灯代わりにもなるiPhoneケース”iFlash” | トップページ | 次のiPhone 7(仮)はFeliCa搭載か!? »

当ブログ内検索

  • カスタム検索

スポンサード リンク

ブログ村

無料ブログはココログ