エンジニアじゃなくてもできる凄い機械学習
初めまして。note初投稿です。
本日Googleの技術発表会議でAutoML Visionというエンジニアじゃなくても簡単に機械学習のモデルが作成できるツールが提供されたので、早速使って見ました。
機械学習ってすげー難しいんだろ?って思ってる人にも本当に簡単にできてしまうツールなので是非試して、会社の人にドヤ顔して見てください。
出来ること
画像の自動分類をしてくれる学習モデルを作ること
例)どの店のラーメン二郎かを分類する
そんなことできんの!?って感じですが、41店舗あるラーメン二郎を95%くらいの精度で識別できるらしいです。
事前準備
① GoogleCloudPlatformの登録
※ クレジットカード登録が必須ですが無料の範囲で試せます。
② 最低200枚の画像データ
※ 1ラベルにつき最低100毎以上の画像用意が必要で、最低ラベル数は2です。
僕が用意したのは画像105枚ずつの2ラベルで、
食事の写真とそうじゃない写真を分けてみようと思いました。
食事の写真を Food、 食事じゃない写真を Non_foodとラベリングしました。
学習モデル
事前準備が終わったら、早速学習をするというボタンを押して見ます。
・・・
待つこと7分ほど(人によってここは違うと思います)
ご丁寧にも学習終わりましたよーってGoogleがメールくれました。
管理画面を見てみると、下記のような学習モデルが出来上がっています。
学習モデルを見る時に大事な指標は三つです。
threshold:閾値(0〜1の値)
Precision:精度
Recall:カバーできる範囲
上の例だと、閾値を0.5とした時の学習精度が93.8%で、その精度で93.8%がカバーできるよって意味合いです。
大事なところなのでもうちょっと突っ込んで見ていきます。
見てもらうとわかるんですが、
僕の場合は閾値を0.4まで下げるとカバー範囲は100.0%になりました。
もちろんその分精度は落ちます。
逆に、閾値を0.8まで上げると精度が100.0%になりました。
もちろんその分カバー範囲は落ちます。
予測テスト
では、せっかく作った学習モデルなので、本当にちゃんと分類できるのかを見てみましょう!
PREDICTというところで「UPLOAD IMAGES」から画像を選択すればもう勝手に予測してくれます。
しっかりと分類されていることがわかります。
ちなみに、この右の数値は正解であると思われる確率です。下の画像であれば、88.4%の確率でFoodに分類されるよ!って意味です。
まとめ
本当に簡単に凄い機械学習できちゃいました。
画像を用意したり手動でラベリングをしたりするのはもちろん手間がかかりますが、それはエンジニアに依頼する時にも結局踏まなければならないステップです。
そう考えると、こんな感じに分類できたらいいんだけどなーっていう構想からすぐにそれを学習モデルに落とし込むことができるなんて夢のようなツールです。
React社では機械学習に力入れて取り組んでるので、このツールも積極的に活用していこうと思ってます。
注意点
最初の学習(正確には1時間以内の学習)については無料ですが、使っていけば当然お金はかかりますので、実際に使われる際にはかかるコストを計算して使ってください。
Appendix
- 画像を1000毎以上用意するとより精度の高い強化版学習が可能
- ラベリングが面倒の場合はGoogleに外注可能
- Firebaseを利用して学習モデルをインポートすることが可能
この記事が気に入ったらサポートをしてみませんか?