人工知能(AI)の開発と応用の観点から見たアルゴリズムテストのテスト戦略

人工知能(AI)の開発と応用の観点から見たアルゴリズムテストのテスト戦略

人工知能の発展と応用に伴い、AI テストは徐々に私たちの視野に入ってきました。従来の機能テスト戦略はアルゴリズム テストには不十分であり、人工知能 (AI) の品質保証要件を満たすことができません。

[[269473]]

この記事では、顔検出および検索アルゴリズムに関するテストの探索と実践のプロセスを組み合わせて、次の側面から人工知能 (AI) アルゴリズムのテスト戦略を紹介します。

  • アルゴリズムテストセットデータの準備
  • アルゴリズム機能テスト
  • アルゴリズムパフォーマンステスト
  • アルゴリズム効果テスト(モデル評価指標)
  • アルゴリズム指標結果分析
  • アルゴリズムテストレポート

上記のポイントは、アルゴリズムテストプロセスにおけるいくつかの核心的なリンクであり、当社のアルゴリズムテスト戦略を構成するものです。ここでは、参考までに共有したいと思います。

アルゴリズムテストセットデータの準備

テスト セットの準備は、アルゴリズムの全体的なテストにとって非常に重要です。通常、テスト セットの準備プロセスでは、次の点を考慮する必要があります。

  • テストセットの範囲
  • テストセットの独立性
  • テストセットの精度

テストセットの範囲

テスト セットの準備がテスト データをランダムに選択するだけの場合、テスト結果に歪みが生じやすく、アルゴリズム モデルの評価結果の信頼性が低下します。

たとえば、当社の機能テストでは、機能テスト設計に従って、テスト範囲に対応するデータを構築します。アルゴリズムのテストでも同様です。顔検出アルゴリズムでは、正のサンプルと負のサンプルの選択を考慮するだけでなく、顔の比率、ぼかし、照明、姿勢(角度)、完全性(オ​​クルージョン)などの顔の特徴が正のサンプルにどの程度含まれているかも考慮する必要があります。

対応するテスト データを選択した後、後の指標計算と結果分析のために、データにラベルを付ける必要があり、対応する特徴にラベルを付ける必要もあります。顔検出を例にとると、次の図に示すように、ツールを使用して顔アイコンの顔座標ボックスを描画し、対応する特徴を記録して保存します。

データ機能の範囲だけでなく、データソースの範囲も考慮し、実際のアプリケーション環境やシナリオのデータに基づいてデータのシミュレーションや準備を行う必要があります。例えば、公共の場のカメラの下で顔を検索する場合、一般的に画像はぼやけており、照明の強度も変化します。そのため、データを作成する際には、このシナリオに基づいてデータをシミュレーションする必要もあります。一般的に言えば、実際の本番環境のデータをテストデータとして使用し、データの特徴分布に応じてそこからテストデータを選択するのが最適です。

また、テストデータの量については、一般的に言えば、テストデータが多ければ多いほど、アルゴリズムの真の効果を客観的に反映できます。ただし、テストコストを考慮すると、すべてを使用することはできません。一般的には、実際の本番環境を参考にして 20% を選択します。本番環境のデータ量が膨大な場合は、1% ~ 2%、またはそれより少ない量を選択します。弊社の実稼働環境には膨大なデータがあり、テストコストを考慮して、テスト用に約 20,000 枚の画像を選択しました。

テストセットの独立性

テスト セットの独立性は、主にテスト データ セットの相互干渉によってテスト結果が歪むリスクを考慮します。

顔検索を例に挙げてみましょう。200組の顔テストデータを用意しました。各組は、同じ人物の異なる時期または角度での顔写真10枚で構成されています。顔検索アルゴリズムのモデル指標を計算する際、たとえばTOP10の精度を計算する際、データベース内に上記200組の人物の他の写真がある場合、指標の計算結果に影響します。たとえば、200組の顔にはジャックが含まれていますが、データベースにはジャックの10枚の写真に加えて、ジャックの他の8枚の写真があります。アルゴリズム マイクロサービス インターフェイスによって返される TOP10 の写真に、テスト セット内のジャックの写真が 6 枚、テスト セットにはないがデータベース内にあるジャックの写真が 2 枚、ジャック以外の写真が 2 枚含まれている場合、テストの精度はどのように計算すればよいでしょうか。テスト セット (ラベル付き) によると、精度は 60% ですが、実際の精度は 80% であり、精度インジケーターの計算結果が歪んでしまいます。

そのため、テストセットデータを準備する際には、データ干渉を考慮し、テスト準備段階でデータベース内の他のテストデータを評価する必要があります。たとえば、200組の顔テストデータに対して予備テストを実施し、類似性が非常に高いデータを分析して同一人物かどうかを判断します。同一人物である場合は、写真を削除するか、その人物を200のテストセットから除外しません。

テストセットの精度

データ セットの精度は比較的理解しやすいものです。一般的には、データ注釈の精度を指します。たとえば、ジャックの写真をトムとしてラベル付けしたり、写真のぼやけた部分を鮮明としてラベル付けしたりすべきではありません。データのラベル付けが間違っていると、アルゴリズム モデル インジケーターの計算結果に直接影響します。

テストセットの作成に関しては、テストセット作成の効率化と再利用性の向上を図るため、アルゴリズムテストデータを取得するための統一されたエントリポイントとして、データ(画像)のオンライン注釈と保存を実現するアルゴリズムデータウェアハウスプラットフォームの構築を試みた。

アルゴリズム機能テスト

私が現在使用している人工知能システムでは、アルゴリズムが、Baidu AI オープン プラットフォームと同様に、マイクロサービス インターフェイスの形式で外部にサービスを提供しています。


そのため、アルゴリズムマイクロサービスインターフェース上で機能検証を行う必要があります。例えば、アプリケーションシナリオに基づいて、必須、非必須、パラメータの組み合わせ検証の正と負のテストカバレッジを、機能性、信頼性、保守性の観点から実行できます。通常の API インターフェース テスト戦略と同じなので、ここでは詳細には説明しません。

アルゴリズムパフォーマンステスト

マイクロサービスインターフェースのパフォーマンステストは誰もがよく知っています。アルゴリズムマイクロサービスも、ベンチマークテスト、パフォーマンステスト(パフォーマンス指標が満たされているかどうかを確認する)、長期および短期の安定性パフォーマンステストなどのパフォーマンステストを受ける必要があります。これらはすべて、アルゴリズムマイクロサービスの各バージョンでテストする必要があるコンテンツです。同時に、バージョン間のパフォーマンスの水平比較が作成され、パフォーマンスの変化が認識されます。よく注目される指標としては、平均応答時間、95% 応答時間、TPS などがあります。同時に、GPU やメモリなどのシステム リソースの使用状況にも注目します。

Jmeter は通常、インターフェースのパフォーマンス テストに使用されます。しかし、実際のアプリケーションでは、アルゴリズム マイクロサービス インターフェイスの機能テストとパフォーマンス テストを統合して、自動テストの開発、使用、学習のコストを削減し、持続可能性を向上させるために、Python Request モジュールと Locust モジュールを使用して、キーワード駆動型テストとデータ駆動型テストのアイデアに基づいて機能およびパフォーマンスのカスタム キーワードの開発を実装します。各テストラウンドの終了後、アルゴリズム マイクロサービス機能が自動的にテストされます。機能が正常に実行されると、さまざまな実行戦略に対応するパフォーマンス テスト ケースが自動的にプルアップされます。各テスト実行の結果はデー​​タベースに保存され、アルゴリズム マイクロサービス インターフェイスのさまざまなバージョンのさまざまなパフォーマンス指標の比較結果が出力されます。

アルゴリズムモデル評価指標


まず、異なるタイプのアルゴリズムは、異なるアルゴリズム モデル評価指標に重点を置いています。

たとえば、顔検出アルゴリズムは、精度、再現率、正確度、誤報率などの指標を使用して評価されることが多く、顔検索アルゴリズムは、TOPN 精度、再現率、上位 N 連続精度を使用して評価されることが多いです。

第二に、同じタイプのアルゴリズムは、異なるアプリケーション シナリオで異なるアルゴリズム モデル評価指標に重点を置いています。

例えば、高速鉄道駅での顔照合(重要人物検索)のシナリオで顔検索を使用する場合、再現率はあまり重視されませんが、間違った人物を捉えて公共の場で混乱を引き起こすことを避けるために、正確率に対する要件は多くあります。ただし、大量の顔検索のアプリケーション シナリオでは、再現率を向上させるために精度をある程度犠牲にする必要があるため、このシナリオでは盲目的に精度を追求することはできません。

上記のアルゴリズム モデル評価指標に加えて、アルゴリズム モデルの有効性を測定するために ROC 曲線や PR 曲線もよく使用されます。


アルゴリズム マイクロサービス機能とパフォーマンス テストにキーワード駆動型テストとデータ駆動型テストのアイデアを導入し、Python Request モジュールと Locust モジュールを使用して、それぞれ機能とパフォーマンスのカスタム キーワードの開発を実装しました。テスト技術スタックの統一性と再利用性を考慮して、上記の設計に基づいてアルゴリズム モデル評価指標のカスタム キーワードの開発を実装し、各実行で同じテスト セット内の異なるバージョンのモデルの評価指標の水平比較を出力します。

もちろん、比較モデルの異なるバージョンの評価指標を比較することに加えて、条件が許せば、同様のアルゴリズムが市場に与える影響の違いを比較し、お互いの長所と短所を学ぶために、一定の競争比較も行う必要があります。

アルゴリズム指標結果分析

アルゴリズムモデル指標を評価した後、異なるバージョンにおけるアルゴリズムモデル評価指標の違いを認識することに加えて、特定のアルゴリズムモデルの最適化の方向性を得るためにさらなる分析を行うことも望んでいます。このとき、データのラベル情報に基づいて詳細な分析を行い、アルゴリズムがどのデータ特性にどの程度影響を受けるかを調べる必要があります。たとえば、データ機能を組み合わせたり、一部の機能の一貫性を制御したりすることで、他の機能がアルゴリズムの効果に与える影響を把握できます。

現時点では、一般的にはいくつかのスクリプトを開発して分析プロセスを実装し、アルゴリズム マイクロサービス インターフェイスの応答本体とデータ準備フェーズでマークされたデータ機能に基づいて分析スクリプトを開発します。

また、指標結果のさらなる分析もアルゴリズム設計と組み合わせる必要があります。たとえば、顔検索アルゴリズムの場合、各画像の検索プロセスは「入力画像の顔検出」->「入力画像の顔特徴抽出」->「類似特徴検索」です。この検索プロセスを通じて、顔検索の全体的な精度が上記の3つのリンクによって影響を受けることは難しくありません。したがって、指標結果に基づく詳細な分析も、これらの3つのレベルから開始する必要があります。

アルゴリズムテストレポート

一般的なアルゴリズム テスト レポートは、次の要素で構成されます。

  • アルゴリズム機能テスト結果
  • アルゴリズム性能テスト結果
  • アルゴリズムモデル評価指標結果
  • アルゴリズム指標結果分析

アルゴリズム マイクロサービス テストの複雑さは通常のサービス インターフェースよりも高いため、レポートは簡潔にする必要があります。

<<:  この記事は人工知能を始める上で強力な助けとなるでしょう

>>:  6つのチャットボット構築プラットフォーム

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

すべてのデータ サイエンティストが知っておくべき 19 の機械学習アルゴリズム

【51CTO.com 速訳】機械学習アルゴリズム入門機械学習アルゴリズムの分野では、分類には通常次の...

AI時代のITリーダーに必要な6つのソフトスキル

人工知能は組織内で大きな変化をもたらしますが、変化とともに、AI が仕事を奪ってしまうのではないかと...

...

...

...

止まらないAIブームに一部の企業は慌てている

AMD は、世界中の IT リーダーを対象にした新しい調査の結果を発表し、多くのリーダーが最近の人工...

IoT、エッジコンピューティング、AIプロジェクトが企業にもたらす利益

[[385209]]ビル・ホームズは、象徴的なフェンダー・ストラトキャスターとテレキャスターのギター...

4つの業界は人工知能がもたらす混乱に注意を払う必要がある

2020 年には、AI と機械学習のテクノロジーが新興産業に継続的な影響を与え、企業だけでなく消費者...

...

速報です!画像AI企業「Huiyi Huiying」がハッキングされ、COVID-19研究成果が公開された

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

中国の科学者によるこの命を救うAIは海外のホットリストに載った

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

大規模な言語モデルはデータアシスタントとして機能し、浙江大学のデータコパイロットはデータを効率的に呼び出し、処理し、視覚化します。

金融、気象、エネルギーなどのさまざまな業界では、毎日大量の異種データが生成されます。人々は、このデー...

...

スタートアップ企業の皆様、人工知能は本当に必要ですか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...