「機械学習」を使ったアプリケーション開発

「機械学習」の仕組み

機械学習では、コンピューターで扱うために、画像の情報をまず数値に変換します。

そのためには、「画像はどのような数値で表現されるのだろうか?」という情報、つまりデータの特性が分かっていないと、そもそも機械学習を使うまでに至ることができません。ちなみに、画像はRGB(Red/Green/Blue)で表される光の三原色に対する光の強さ(輝度)を定量評価することで数値に落とし込むことができます。

教科書で紹介されていることはあまりありませんが、こういったデータの特性を考えることは、機械学習を実装していく上で非常に重要なため、「身の回りの現象を定量評価するにはどうするのか?」といった観点で、物事を見る練習をしてみましょう。

AIの性能評価と分析設計

前回作成した顔認証アプリケーションでは、10枚の写真を教師データとしました。
しかし、検証に使用した写真によって予測精度にバラつきがあったのではないでしょうか。

AIシステムを構築するときは一発で完璧なものになることはありません。
求める性能を実現させるために試行錯誤が必要となります。
その際,仮説検証サイクルを意識することが大切です。

仮説検証サイクル

データを分析する目的は大きく分けて2つあります。「データの傾向や仮説の候補を発見すること」と「立てた仮説を検証すること」です。

仮説検証サイクルでは,まずは得られたデータをもとにそこからわかることを考察して仮説を立て,その仮説を検証するためにはどんな実験やシミュレーションをすればいいかを考えます。
そして仮説の検証を行った結果を踏まえて,必要に応じて仮説を再検討する,という作業を繰り返すのです。

AIシステムの構築においては,その性能を見ながら,満足いく性能が出ていない場合には,それが学習データの量の問題なのか,あるいはデータの質の問題なのか,それともモデルの問題なのか,といった仮説を立ててそれを検証していくことになります。

教師データの編集・追加

予測精度が低いということは、学習が足りないということです。
入力と出力の関係をたくさん教えることで、AIはいろいろな写真のパターンを覚えられます。
つまり、教師データをつくる段階で様々なパターンを学習させることで、予測精度を向上させることが出来るのです。

精度を向上させるためには以下のような方法があります。

・データクレンジング
・データを増やす(Data augmentation)
・転移学習

今回は、教師データを増やす方法を使って予測精度が向上するか検証してみましょう。

<ポイント>


・データを増やすといっても、どんなデータでもいいわけではない
・同じ写真でも、反転・回転させたり明るさやコントラストを変えることで別の写真として扱われる
・検証・運用で使うデータを意識して、どんな場合に対応させるかを考える


第2回の講義と同じようにグループメンバーの顔写真を撮影しましょう。
※写真のサイズが大きいと転送に時間がかかります。撮影サイズを”VGA”に設定してください。
今回は1人15枚以上撮影し,写真はすべて「train」のフォルダに分類して入れてください。

検証・推論

このプロジェクトの検証を行ってください。
「test」フォルダの写真を使って、それぞれの写真の予測結果を見てみましょう。
予測精度は向上しているでしょうか?

このプロジェクトがどんなところに応用できるか考えてみましょう!

Back

to_top