機械学習(AI)をやる前に非エンジニアが知っておきたい4つの答え

たつひこです。

ここに書かれた事実を知っていれば、機械学習エンジニアや、AIソリューションを提供する会社とも円滑なコミュニケーションが取れるはずです。

Q1. データ数はどれくらいあればいいの?

機械学習ライブラリのScikit-learnのチュートリアルによれば、最低でも50くらいは必要です。

わたしは画像処理が得意です。限られたタスク(※1)であれば100くらいでもそこそこな結果を出せます。

(※1セマンティックセグメンテーション)

Q2. 機械学習(AI)ってかなり遅いんでしょう?

結論からいうと、一般的なソフトウェアよりも遥かに遅いです。しかし、何をやるにしても何時間も何日もかかるわけではありません。

機械学習(AI)には、学習フェーズと予測フェーズがあります。学習フェーズは数時間から数日単位必要(※2)です。一方、予測フェーズは数百ミリ秒から数秒です。

(※2 学習するマシンスペックによっては早くなることも遅くなることもあります)

学習フェーズは、データからパターンを見つけて予測に備えるフェーズです。良い結果を出すために、試行錯誤やPDCAが必要になります。学習自体に数時間から数日かかるため、開発が長期になりやすいです。

1. 手元にあるデータを取捨選択したり、学習しやすいように変換
2. 機械学習(AI)の種類(※3)の選定・実装
3. 学習
4. 学習結果の評価

(※3 アルゴリズムのことです)

予測フェーズは、学習結果を使って実際に予測するフェーズです。OCRサービスやGoogle Cloud Visionの表情認識APIなどは、この部分だけを提供しています。数百ミリ秒から数秒程度で、結果が手に入ります。

Q3. 100%の正解は無理なの?

機械学習(AI)だけで100%の正解は、現実的ではありません。現実的には、人にも手伝ってもらうのが良いでしょう。機械学習(AI)によって得られた結果を人が最終判断を下せば、大きな誤り限りなく小さくできます。しかし、これでも100%には程遠いでしょう。

100%目指せないなら発想を替えて、過剰検出を少なくするのか、見逃しを少なくするのかはっきりさせるのが良いでしょう。

リスクを分析したり、どこまでリスクを許すのかというスキルは、ビジネスでとても大事なスキルですね!

過剰検出と見逃しを理解するには、表を書くことをおすすめします。試しに、以下のような表を作ってみましょう。「100%」と言っている方は、見逃しや過剰検出の区別がついていないことが多いです。

実際に、書いてみるとこのような感じになります。この結果は、過剰検出が多いですが、ほとんどの場合人が写っているときの判定は当たっていますね。

エンジニアにこの表を要求してみてください。機械学習(AI)の性質がよく理解できるでしょう。

Q4. データを大量に集めればなんとかなるの?

さきほど、データ数の質問がありました。機械学習はデータに大きく依存した動作をします。データの品質が良くなければ、決していい結果が出ることはありません。

データの品質とは、データに含まれているノイズの量やラベル付けミスの量で決まります。

特に画像のラベルは、ラベル付け作業を通じて作業者の中での基準が大きく変わってしまいます。基準をマニュアル化したり、複数人がチェックしてミスを発見する仕組みづくりが大事になります。

このような高品質なデータを用意するために、外注ではなく自社でラベル付けを行っているところが珍しくありません。ラベル付けチームのマネージャー求人も存在するくらい、データの品質は重要なのです。

まとめ

ひとえに機械学習(AI)で解決!と言っても、そうはいきません。しかし、この記事に書かれたことがわかっているとわかっていないとでは、大違いです。

ここに書かれた事実を知っていれば、機械学習エンジニアや、AIソリューションを提供する会社とも円滑なコミュニケーションが取れるはずです。

この記事が気に入ったらサポートをしてみませんか?