さまざまな種類のデバイスからなる大規模なインフラストラクチャがあり、それらのデバイスを定期的に保守したり、周囲の環境に危険を及ぼさないようにしたりする必要があると想像してください。
これを達成する 1 つの方法は、定期的にすべての場所に人を派遣して、すべてが正常かどうかを確認することです。これはなんとか実行可能ですが、かなりの時間とリソースがかかります。また、インフラストラクチャが十分に大規模な場合は、1 年以内にすべてをカバーできない可能性があります。
もう 1 つの方法は、そのプロセスを自動化し、クラウド内のジョブに検証させることです。そのためには、次のことを行う必要があります。
👉 デバイスの写真を取得する方法に関する簡単なプロセス。すべてのデバイス検証プロセスを実行するのと同様に、画像だけを実行する方がはるかに速いため、これは依然として人が行うことができます。車やドローンから撮影した写真によっても行うことができ、その場合、写真収集プロセスがより高速かつより自動化されます。
👉 次に、取得したすべての写真をクラウド内の 1 つの専用の場所に送信する必要があります。
👉 クラウドでは、写真を取得し、デバイスの損傷や異常を認識するように訓練された機械学習モデルを通じて処理する自動化されたジョブが必要です。
👉 最後に、問題のあるデバイスの修理をスケジュールできるように、必要なユーザーに結果が表示される必要があります。
AWS クラウド内の写真から異常検出を実現する方法を見てみましょう。 Amazon には、その目的に使用できる事前構築された機械学習モデルがいくつかあります。
視覚的異常検出用のモデルを作成する方法
視覚的な異常検出用のモデルを作成するには、いくつかの手順に従う必要があります。
ステップ 1: 解決したい問題と検出したい異常の種類を明確に定義します。これは、モデルのトレーニングに必要な適切なテスト データセットを決定するのに役立ちます。
ステップ 2: 正常な状態と異常な状態を表す画像の大規模なデータセットを収集します。画像にラベルを付けて、どれが正常でどれが異常を含んでいるかを示します。
ステップ 3: タスクに適したモデル アーキテクチャを選択します。これには、事前トレーニングされたモデルを選択して特定のユースケースに合わせて微調整することや、カスタム モデルを最初から作成することが含まれる場合があります。
ステップ 4: 準備されたデータセットと選択したアルゴリズムを使用してモデルをトレーニングします。これは、転移学習を使用して事前トレーニングされたモデルを活用するか、畳み込みニューラル ネットワーク (CNN) などの技術を使用してモデルを最初からトレーニングすることを意味します。
機械学習モデルをトレーニングする方法
視覚的な異常検出のために AWS 機械学習モデルをトレーニングするプロセスには、通常、いくつかの重要な手順が含まれます。
#1. データを収集する
最初に、正常な状態と異常な状態の両方を表す画像の大規模なデータセットを収集してラベルを付ける必要があります。データセットが大きいほど、モデルをより適切かつ正確にトレーニングできます。ただし、モデルのトレーニングに費やす時間も大幅に長くなります。
通常、良いスタートを切るには、テスト セットに約 1000 枚の写真が必要です。
#2. データを準備する
機械学習モデルが画像データを取得できるようにするには、まず画像データを前処理する必要があります。前処理には次のようなさまざまな意味があります。
- 入力画像を別のサブフォルダーに整理し、メタデータを修正します。
- モデルの解像度要件を満たすように画像のサイズを変更します。
- より効果的かつ並列処理するために、それらを小さな画像の塊に分散します。
#3. モデルを選択してください
適切な仕事を行うために適切なモデルを選択してください。事前トレーニングされたモデルを選択するか、モデル上の視覚的な異常検出に適したカスタム モデルを作成できます。
#4. 結果を評価する
モデルがデータセットを処理したら、そのパフォーマンスを検証する必要があります。また、結果がニーズを満たしているかどうかも確認する必要があります。これは、たとえば、入力データの 99% 以上で結果が正しいことを意味する場合があります。
#5. モデルをデプロイする
結果とパフォーマンスに満足したら、特定のバージョンのモデルを AWS アカウント環境にデプロイして、プロセスとサービスがそのモデルの使用を開始できるようにします。
#6. 監視と改善
さまざまなテスト ジョブと画像データ セットを実行して、検出の正確さに必要なパラメーターがまだ適切に設定されているかどうかを常に評価します。
そうでない場合は、モデルが間違った結果をもたらした新しいデータセットを含めてモデルを再トレーニングします。
AWS 機械学習モデル
次に、Amazon クラウドで活用できる具体的なモデルをいくつか見てみましょう。
AWS 認識
Rekognition は、顔認識、物体検出、テキスト認識など、さまざまなユースケースに使用できる汎用の画像およびビデオ分析サービスです。ほとんどの場合、検出結果の最初の生の生成には Rekognition モデルを使用し、特定された異常のデータ レイクを形成します。
トレーニングなしで使用できるさまざまな事前構築済みモデルが提供されます。 Rekognition は、画像とビデオを高精度かつ低遅延でリアルタイム分析することもできます。
Rekognition が異常検出に適している典型的な使用例をいくつか示します。
- 画像やビデオの異常の検出など、異常検出の汎用ユースケースを用意します。
- リアルタイムの異常検出を実行します。
- 異常検出モデルを Amazon S3 、 Amazon Kinesis 、または AWS Lambda などの AWS のサービスと統合します。
Rekognition を使用して検出できる異常の具体例をいくつか示します。
- 正常範囲外の表情や感情の検出など、顔の異常。
- シーン内のオブジェクトが見つからない、または置き忘れられている。
- 単語のスペルが間違っていたり、テキストの異常なパターン。
- シーン内の異常な照明条件または予期しないオブジェクト。
- 画像またはビデオ内の不適切または攻撃的なコンテンツ。
- 動作の突然の変化または予期しない動作パターン。
AWS Lookout for Vision
Lookout for Vision は、製造や生産ラインなどの産業プロセスにおける異常検出のために特別に設計されたモデルです。通常、画像または画像の具体的な切り抜きの前処理と後処理のカスタム コードが必要で、通常は Python プログラミング言語を使用して実行されます。ほとんどの場合、画像内の非常に特殊な問題に特化しています。
異常検出用のカスタム モデルを作成するには、正常な画像と異常な画像のデータセットに対するカスタム トレーニングが必要です。それほどリアルタイムに焦点を当てたものではありません。むしろ、精度と精度に重点を置いて、画像のバッチ処理用に設計されています。
以下を検出する必要がある場合に Lookout for Vision が適している典型的な使用例をいくつか示します。
- 製造された製品の欠陥、または生産ラインの機器の故障の特定。
- 画像またはその他のデータの大規模なデータセット。
- 工業プロセスにおけるリアルタイムの異常。
- Amazon S3 や AWS IoT などの他の AWS サービスと統合された異常。
Lookout for Vision を使用して検出できる異常の具体例をいくつか示します。
- 製造上の欠陥、傷、へこみ、その他の欠陥は、製品の品質に影響を与える可能性があります。
- 遅延や安全上の問題を引き起こす可能性のある、壊れた機械や機能不全に陥った機械の検出など、生産ラインでの機器の故障。
- 生産ラインにおける品質管理の問題には、必要な仕様や公差を満たしていない製品の検出が含まれます。
- 生産ラインにおける安全上の危険には、作業者や機器に危険を及ぼす可能性のある物体や材料の検出が含まれます。
- 生産ラインを通る材料や製品の流れにおける予期せぬ変化の検出など、生産プロセスにおける異常。
AWS セージメーカー
Sagemaker は、カスタム機械学習モデルを構築、トレーニング、デプロイするためのフルマネージド プラットフォームです。
これは、より堅牢なソリューションです。実際、これは、AWS Step Functions と同様に、複数のマルチステップ プロセスを 1 つのジョブ チェーンに接続して実行し、次々に実行する方法を提供します。
ただし、Sagemaker は処理にアドホック EC2 インスタンスを使用するため、AWS Step Functions の AWS ラムダ関数の場合のように、単一ジョブの処理に 15 分の制限はありません。
Sagemaker を使用して自動モデル チューニングを実行することもできます。これは間違いなく、際立ったオプションとなる機能です。最後に、Sagemaker はモデルを実稼働環境に簡単にデプロイできます。
SageMaker が異常検出に適している典型的な使用例をいくつか示します。
- 事前構築されたモデルや API ではカバーされていない特定のユースケース、および特定のニーズに合わせてカスタム モデルを構築する必要がある場合。
- 画像やその他のデータの大規模なデータセットがある場合。このような場合、事前に構築されたモデルには事前処理が必要ですが、Sagemaker では事前処理なしで実行できます。
- リアルタイムの異常検出を実行する必要がある場合。
- モデルを他の AWS サービス (Amazon S3、Amazon Kinesis、AWS Lambda など) と統合する必要がある場合。
Sagemaker が実行できる典型的な異常検出は次のとおりです。
- 異常な支出パターンや通常の範囲外の取引など、金融取引における不正行為の検出。
- 異常なデータ転送パターンや外部サーバーへの予期せぬ接続など、ネットワーク トラフィックにおけるサイバーセキュリティ。
- 腫瘍の検出など、医療画像による医療診断。
- 振動や温度の変化を検知するなど、機器の性能の異常。
- 製品の欠陥の検出や、期待される品質基準からの逸脱の特定など、製造プロセスにおける品質管理。
- エネルギー使用の異常なパターン。
モデルをサーバーレス アーキテクチャに組み込む方法
トレーニングされた機械学習モデルは、バックグラウンドでクラスター サーバーを使用しないクラウド サービスです。したがって、既存のサーバーレス アーキテクチャに簡単に組み込むことができます。
自動化は AWS Lambda 関数を介して実行され、AWS Step Functions サービス内の複数のステップのジョブに接続されます。
通常、最初の検出は、画像を収集し、S3 バケットで前処理した直後に必要になります。ここで、入力画像に対してアトミック異常検出を生成し、その結果を、たとえば Athena データベースで表されるデータ レイクに保存します。
場合によっては、この初期検出では具体的なユースケースには十分ではありません。別のより詳細な検出が必要になる場合があります。たとえば、初期 (認識など) モデルはデバイス上の何らかの問題を検出できますが、それがどのような種類の問題であるかを確実に特定することはできません。
そのためには、異なる機能を備えた別のモデルが必要になる場合があります。このような場合、最初のモデルで問題が特定された画像のサブセットに対して、他のモデル (Lookout for Vision など) を実行できます。
これは、写真のセット全体に対して 2 番目のモデルを実行する必要がないため、コストを節約する良い方法でもあります。代わりに、意味のあるサブセットに対してのみ実行します。
AWS Lambda 関数は、内部で Python または Javascript コードを使用するこのような処理をすべてカバーします。それはプロセスの性質と、フロー内に含める必要がある AWS lambda 関数の数によって異なります。 AWS Lambda 呼び出しの最大継続時間の 15 分の制限により、そのようなプロセスに必要なステップ数が決まります。
最後の言葉
クラウド機械学習モデルを扱うのは非常に興味深い仕事です。スキルやテクノロジーの観点から見てみると、多種多様なスキルを持ったチームが必要であることがわかります。
チームは、モデルが事前に構築されているか、最初から作成されているかにかかわらず、モデルをトレーニングする方法を理解する必要があります。これは、結果の信頼性とパフォーマンスのバランスをとるために多くの数学または代数が関与することを意味します。
また、高度な Python または Javascript コーディング スキル、データベース、SQL スキルも必要です。そして、すべてのコンテンツ作業が完了したら、それをパイプラインに接続して、デプロイと実行の準備が整った自動ジョブにする DevOps スキルが必要です。
異常の定義とモデルのトレーニングは別のことです。しかし、モデルの結果を処理し、エンドユーザーに提供するために効果的かつ自動化された方法でデータを保存できる 1 つの機能チームにすべてを統合するのは困難です。
次に、企業向けの顔認識についてすべて確認してください。