解析アルゴリズムを現実世界でテストする重要性

Timo Sachse

理想的な「ラボ」条件下で開発、テストされたものが、現実世界で低いパフォーマンスを示す場合があります。たとえば、理論上完璧な風洞試験の結果が出ると、設計者は世界最高のF1カーを開発したような気になるかもしれませんが、4月の風の強い日にポルトガルの海岸で、テストマシンが風に吹き飛ばされることもあります。

これは、ビデオ分析においてもまったく同じであり、機械学習アルゴリズムを特定の用途やシナリオ向けに有効なものにするには、現実のユーザー環境でのアルゴリズムのテストは欠かせません。

 

テスト前の訓練

ビデオ分析において物体の検知や認識に使用する機械学習アルゴリズムには、現実世界でのテストに先立った開発と訓練が必要です。

深層学習や機械学習をベースとする解析アプリケーションを開発するには、大量のデータを収集する必要があります。ビデオ監視の場合、データは一般に、対象となる人間や車両などの物体の画像やビデオクリップから構成されます。ビデオ分析では、対象となる物体は幅広いため、必要なデータセットは巨大なものになる傾向があります。

マシンやコンピューターがデータを認識できるようにするには、関連する物体を分類してラベル付けするデータ注釈プロセスが必要です。注釈付けするデータは、解析アプリケーションが使用される状況に関連があり、十分に多様なサンプルを網羅したものでなければなりません。残念ながら、データの注釈付けは主に手作業で行われる、労働集約的な作業です。

注釈付きデータをアルゴリズムモデルにフィードし、訓練フレームワークを使用して、要求される品質に達するまでモデルの修正と改良を繰り返します。つまり、定義済みのタスクを解決できるようになるまで、モデルを最適化するということです。

 

機械学習の訓練手法

機械学習ベースのアルゴリズムの訓練には、主に以下3通りの手法があります。

  1. 教師あり学習: モデルが正確な予測を行えるよう学習する
  2. 教師なし学習: モデルがクラスターを識別できるよう学習する
  3. 強化学習: モデルが誤りから学習する

教師あり学習は、現在機械学習で最も広く用いられている手法であり、「例題による学習」と説明することができます。訓練データには、明確に注釈が付けられています。入力データはすでに、望ましい出力結果と対になっています。教師あり学習では、非常に大量の注釈付きデータが必要であり、訓練後のアルゴリズムがどれほどのパフォーマンスを上げるかは、訓練データの品質に左右されます。

教師あり学習では、実際の導入先で生じるすべての入力データのデータセットを使用することが重要です。物体検知アルゴリズムの場合、開発者はさまざまな物体の種類、向き、大きさ、光の状態、背景、妨害物を含む多種多様な画像を使用してアルゴリズムを訓練する必要があります。目的とする用途の代表的な訓練データを使用しないと、最終的な解析アプリケーションは、新しいデータを処理したときに正確な予測を行うことができません。

教師なし学習では、アルゴリズムは、ラベルが付けられていないデータセットを解析し、グループ化します。この訓練手法は、監視業界では一般的ではありません。モデルの品質がまだ予測不可能な段階から、較正とテストを大量に行う必要があるからです。データセットは解析アプリケーションに関連あるものでなければなりませんが、明確にラベルやマークが付けられている必要はありません。

教師なし学習では、手作業による注釈付けは不要ですが、訓練に用いる画像やビデオの数を桁違いに増やす必要があります。訓練段階では、訓練の対象となるモデルは、訓練フレームワークに支えられながら、データセットに含まれる共通の特徴を識別します。これにより、導入段階では、パターンに従ってデータをグループ化するとともに、学習済みのグループのどれにも属さない変則性を検知することもできるようになります。

強化学習は、ロボット、産業オートメーション、ビジネス戦略プランニングなどで利用されていますが、必要なフィードバックの量が膨大なため、監視においては、今のところ多くは使われていません。強化学習とは、特定の状況で得られる効果が最大になるよう、適切なアクションを実行することであり、モデルが正しい選択をすると、効果が大きくなります。アルゴリズムの訓練にデータやラベルは使用せず、環境との対話を通じてアルゴリズムの判断をテストしながら効果を測定し、アルゴリズムを最適化します。目標は、効果の最大化に役立つアクションを行うためのポリシーを学習することです。

 

デプロイメント前のテストと現実世界での使用

モデルの訓練後は、徹底的にテストを行う必要があります。このテストは一般に、自動化されたテストと、現実の導入先の状況における広範なテストを組み合わせて行います。自動化されたテストでは、訓練中にモデルが見たことのない新しいデータセットを使用してアプリケーションのベンチマーク評価を行います。結果が期待通りではない場合、プロセスは最初からやり直しです。新しい訓練データを収集し、注釈を付けるか改良した上で、モデルの再訓練を行います。

期待されるレベルの品質に達した時点で、フィールドテストを開始します。このテストでは、アプリケーションが現実のシナリオにさらされます。テストの量とバリエーションは、アプリケーションの有効範囲であるスコープによって異なります。スコープが狭いほど、テストする必要があるバリエーションは少なくなり、スコープが広いほど、より多くのテストが必要になります。テスト後、再びテスト結果の比較、評価を行い、要求される結果が出なかった場合には、やはりプロセスを最初からやり直すことになります。もうひとつの可能性として、前提条件を定義する場合もあります。前提条件とは、アプリケーションの使用を推奨しないか、部分的にしか推奨しない既知のシナリオを説明したものです。

解析アプリケーションを現実のシナリオにさらすのは、アプリケーションの現実世界での実行とは異なります。「推論」、「予測」とも呼ばれるデプロイメントは、訓練済みの機械学習モデルを、実際に現場の監視システム上で実行し、アルゴリズムが訓練段階での学習成果を利用して、望ましいアウトプットを生成するかをテストするプロセスです。デプロイメントでは、開発とテストで使用していた「クリーン」なデータが、品質面で大きな逸脱もありうる現実のデータに置き換えられます。この段階になって初めて、アルゴリズムが当初の目的に適っているかが判明します。

 

見落とされることが多い分析機能のテスト

お客様は、おそらく、プロセッサーや分析機能の「インテリジェンス」が高まっているという認識から、分析機能は「入手してすぐに使える」最初から完璧なものと思い込んでいる場合があります。しかし、その考えは適切ではありません。現実世界におけるテストは極めて重要であり、分析機能の導入費用としてあらかじめ計上しておく必要があります。

ビデオ監視分析機能は今後も進歩を続け、精度や有効性が向上しますが、アルゴリズムは多くの場合、完璧な条件下で開発されています。アルゴリズムが現実世界の不完全さに太刀打ちできなくなる場合があり、こうした不完全さを背景とするテストは必要不可欠です。

不完全さの原因は必ずしもアプリケーション自体にあるとは限らず、期待とのずれが原因である場合が多いという傾向があります。そのため、テストは、欠陥や制約の発見に役立つだけでなく、ビデオ分析の全般的な機能に対する理解を大幅に深める上でも有益です。これは、検知器であるカメラをできる限り適切に準備することにもつながり、照明など、撮影場所自体の修正につながる場合もあります。

ビデオ分析におけるAIの使用の詳細については、Axisのホワイトペーパー(英語)をご覧ください。

ホワイトペーパーをダウンロードする