in

AI モデルが育つには、どのくらいのデータが必要?

文/Flow AI Blog 編集部

【要約】AI導入のスターターガイド:
1. データ量に関わる3つの要素を知ろう
2. 概念実証 (Proof of Concept)から始め、データへの直感を養おう
3. 事業目標に合わせてプロジェクトを修正することも大事

企業はAIプロジェクトの性質を明確にし見極めた後、まず直面する問題は、データ収集とモデル作成の成果をどんな基準で評価すべきかになります。

今回は、元トレンドマイクロ社のベテランITマネージャーであるチャールズ・チャン氏による現場でのチームマネージメントとプロジェクト実行の経験についてお話したいと思います。

AIモデルが育つには、どのくらいのデータが必要?

モデルのトレーニングを行う際、互いにに影響し合う3つの要素について考える必要があります。「問題の複雑性」、「モデルの複雑性」と「データの複雑性」です。

とはいえ、想像だけでAIの出した結果とデータ量を評価するのは難しいので、AI開発の第一歩は、まず概念実証(Proof of Concept, POC)のプロセスを通して正解を見つけることです。

AIモデルにおけるPOC概念実証の進め方

簡単に言うと、解決したい問題に合わせて異なる複雑性のモデルを使用し、理想の結果が出るまでテストし続けることです。

一般的に問題の複雑性が高い場合、それに応じて複雑性の高いモデルが使用されることが予想できます。しかし、もしデータ量が足りなかったら、複雑なモデルよりシンプルなものを使ったほうが逆にいい結果を出せることもあります。(上のグラフの左上と右上は、それぞれ複雑性10と50の問題を示しています。複雑モデルの曲線は学習用データセットに近いのですが、テスト用データセットだと誤差値Eoutは簡単モデルよりだいぶ悪い結果となっています。)

上図の左上と右下は、それぞれ違う複雑性のモデルを使ってPOCを実施した結果のグラフです。青い線は学習データ(Training Data)の結果で、赤い線はテストデータ(Testing Data)の結果です。理想的なPOC目標は、この2つの曲線ができるだけ 近く、位置は低ければ低いほど良いという仕様になっています。

よく見れば、左下のグラフの曲線は近いのですが、データ量を増やしても誤差を小さくすることはできませんでした。つまりモデルの偏り誤差(バイアス)が高いという意味で、改善するにはモデルの複雑性を高める必要があります。

複雑性を高めると右下のグラフのようになります。青い線(学習データ)の数値は低いのですが、学習データが不足している状況(グレイ部分)で赤い線(テストデータ)は高く上へ向いています。これはモデルのばらつき誤差(バリアンス)が大きいということを示していて、学習データの量を追加しなければなりません。徐々にモデルの複雑性と学習データ量を増やしていけば、最終的に理想的な結果(2つの曲線が互いに近く、位置が低い)を達成することができるでしょう。

データはどこから?AIの前にデータパイプラインを構築しよう

以前の記事でも触れましたが、AIモデルの開発に急ぐ必要はありません。AIプロジェクトが成功する3つの鍵の一つは、データの準備ができているかどうかを確認することです。もしこの能力を備えていなければ、AI導入を考えるのは早計と言わざるを得ません。

データ収集の最大の課題は、課題の種類によって異なるデータ需要が発生するため、データパイプラインの構築、データ処理とアノテーションのやり方やプロセスも変わってきます。

AI開発の前に、もしデータ収集、処理、モデル学習までスムーズに進めるデータパイプラインを確立できるなら、モデルをトレーニングする際の手間を大幅に省くことができるでしょう。

データ不足、もしくは多すぎた場合は?

Google社の機械学習講座は、「機械学習を使わないことを恐れるな」(Don’t be afraid to launch a product without machine learning)の一文から始まります。

製品や業務に機械学習が必要でなくデータもない場合は、あえて使わないのが得策です。機械学習というものは、データがあって初めて選択肢に入れるべきです。しかし業界では、「データはないわけではないが、量が足りない」という場合がほとんどだと思います。こういう時はまず細かな部分をPOCすることから着手することをお勧めします。

POCで具体的な成果を出すためには、プロジェクトと実験の評価指標(メトリクス)をきちんと設定することはもちろん、何より重要なのは達成すべき指標を明確に定義することです。ゴールを先に設定してこそ、ビジネス目標に合った成果を得られるというものです。

データが多すぎた場合の進め方は? 

トレーニングを行う時、「データサイズ」と「データ数」を減らすことをおすすめします。

過去に、データ数が2億ほどのプロジェクトに取り組んだことがあります。最初の実験では、データを全てモデルに投入して 結果を出しましたが、二回目の実験では、前回のデータの中から代表的な5百万件のデータを選出してトレーニングに使いました。

すると、2回の実験のパフォーマンス差は、なんとわずか1%未満という結果になりました。

この例からわかるように、もしデータの質と量にある程度の自信と根拠があるのであれば無理やり全てのデータをモデルに与える必要はなく、代表的なデータだけをトレーニングに使用すればいいのです。また、データの分類は市販されているクラスタリングツールを利用すれば、時間と労力もそれほど吸い取られません。

トレーニングを行いつつ、事業目標に合わせて修正することもお忘れなく

企業がAIを開発する目的は、やはり事業目標の達成とビジネス価値の創造にあります。

そのため、モデルトレーニングを行う際、もし開発チームがどの指標がモデルの学習にとって大事なのかを判断できない場合、振り出しに戻って「このプロジェクトの目的は何か」について改めて確認するといいでしょう。

例えば、トレンドマイクロ社がコンピューターウィルスを識別できるAIを開発したいとします。一口にウィルスと言っても、ランサムウェアとアドウェアでは被害の規模は同じではありません。この場合、エンジニアはこの問題に対してAIモデルに異なる種類のウィルスデータを与え、それぞれのウィルスの深刻性について学習させます。判断ミスが許されない悪質なウィルスはどれか、比較的に無害なのはどれかを区別できれば、必ずしも100%正確である必要はありません。

よく使われるトレーニング方法として、目的関数(Cost Function)というものがあります。トレーニングが終わってからモデルの評価(Rating)を調整し、正解なら加点、不正解なら減点という採点方式でAIに学習結果の良し悪しを教えます。

この採点ルールの設定基準は、企業のビジネス価値と密接に関係しているため、一般的にはPMチームがどの項目が重要かを判断し、データサイエンティストによって上記の目的関数に組み込まれるやり方となっています。

AI開発は完璧でなければならないと考えている人も多いと思いますが、我々の経験上、モデルの性能が許容範囲内(60~70点程度)で予算に収まっている、且つコスト削減にも貢献できれば「事業目標達成」と認定しても構いません。逆に、モデルのパフォーマンスが90点以上と非常に良い結果を出しても、コストオーバーになってしまったらAIの導入は見送ったほうがいいかもしれません。

また、POCの段階では何度も実験が行われ、安定した比較可能な基準を2つ用意してA/Bテストに備える必要があるため、土台をしっかり整えることも重要になります。

仮に1つのチームに3人のエンジニアがいても、それぞれが出した結果が比較不能なものであれば実験が意味を成さなくなり、AIの導入は更に困難になるでしょう。

👉AI豆知識:メトリクス(Metrics)
モデル実験を行う際、一般的に混同行列(Confusion Matrix)の4つの評価指標が使用される:
TP(True Positive)、TN(True Negative)、FP(False Positive)、FN(False Negative)、それからCount、UniqueとAccuracyなどの関数でモデルのパフォーマンスを評価します。

TPとTN值は、モデルの判定結果は正解で、予想と一致していることを示します。例:モデルが「これは猫である」、「これは猫ではない」と判断できている。FPとFNの場合は、モデルの判定ミスを示しています。例:「猫なのに、違うと言っている」、「猫じゃないのに、猫だと認識している」。

関連記事
・AIプロジェクトが行き詰まる理由は?
・データ特徴とアルゴリズムの選び方

AI プロジェクトが行き詰まる理由は?

データ特徴とアルゴリズムの選び方