MSAT++
MSAT++ (Memory Saving Anomaly Tracker ++) は、 KB オーダーでの実装が可能な超軽量・逐次学習型異常検知アルゴリズムです。 従来のアルゴリズムと比べ、大幅なメモリ量の削減と逐次学習型学習器であることを両立することで、異常検知アルゴリズムの実装に必要な機器、および時間のコストを削減します。 さらに、教師あり学習・教師なし学習が使い分け可能という特徴も持っています。
本ページでは MSAT++ の 3 つの特徴について紹介します。

特徴① 非常に軽量なAIモデルである

MSAT++はAIモデルのサイズを指定して学習を行うことが可能であり、非常に小さなAIモデルサイズで異常判定を行うことができます。 そのため、使用可能メモリが少なく、従来の異常検知アルゴリズムの搭載が難しいようなマイコンに対しても、異常検出システムを搭載することが可能になります。
また、搭載可能なモデルサイズや要求される精度といった要件に応じて柔軟にモデルサイズを定めることが可能です。
ここでは、以下のようなテストデータで MSAT++ を含む 3 種類のアルゴリズムのモデルサイズを比較します。テストデータに続いて、各アルゴリズムのモデルサイズ/異常度判定結果の比較図を掲載しています。

テストデータ:入力データは中央の集団と周辺の散発的なデータからなる

アルゴリズム毎のモデルサイズと判定結果の比較

入力データに対するMSAT++および、既存のアルゴリズム(LOF、IsolationForest)の異常度の判定結果とモデルサイズ。青が正常、赤が異常という判定を表す。どのアルゴリズムも、概ね学習データのクラスターの存在する周辺を正常と判定している。

特徴② 教師あり学習、教師なし学習が共に可能

先ほどの例では、テストデータの各点にラベル(該当データが、正常値であるか異常値であるかの答え)がついていないものとして、 教師なし学習を行いました。一般に異常検知においては、教師なし学習が主流ですが、教師あり学習が可能な場合も存在しています。 教師なし学習を前提としている既存アルゴリズムでは、ラベル付けが可能なデータに対しても教師あり学習を行うことが出来ません。 一方MSAT++では、そのようなデータに対しては、ラベルを付与した教師あり学習を行うことも可能です。 すなわち、2つの学習方法を、ラベル付けがすでに行われているかどうかで使い分けることができます。
先ほど学習させたテストデータに、ラベル付けが行われていた場合を考えます。 MSAT++ではラベル有りとして学習方法を変更しますが、LOFやIsolationForestにおいてはそのような対応は出来ません。 ここでは、ラベル有りで学習させたMSAT++と、他のアルゴリズムの異常度判定結果の比較を以下の図に示します。

テストデータ:青三角のデータ群が正常、赤丸のデータ群が異常であると分かっているとして学習させる

アルゴリズム毎の判定結果の比較

ラベル付きの入力データに対するMSAT++および、既存のアルゴリズム(LOF、IsolationForest)の異常度の判定結果。 青が正常、赤が異常という判定を表す。ラベルを適切に学習したMSAT++では、異常データ群の分布していた、 中央右上領域の異常度を高く判定している。(画像をマウスオーバーすると学習データと重ねた表示になります。)

特徴③ 逐次学習が可能

AIモデルには、逐次学習型学習器とバッチ学習型学習器という分類が存在します。逐次学習型学習器とは、今まで学習したデータに加えて、運用中に得られたデータを追加で学習したい場合、 「新しいデータのみを追加で学習させる」という運用に対応したAIモデルのことを言います。 対して、バッチ学習型学習器に新たなデータを反映させたい場合、「今までの学習済みデータも含めて全データを再度 1 から学習させる」ことが必要です。

MSAT++ は逐次学習型学習器であることから、初期の学習時にデータが不十分であった場合や、正常データの傾向に経年変化が生じる場合にも、運用中のデータも逐次学習することで精度の改善が可能です。また、この際に MSAT++ では、正常/異常のラベルを付与して学習させることが可能です。このことにより、運用当初は見抜くことが難しかった異常に対しても、効果的な学習が可能となります。(通常の異常検知アルゴリズムと同様に、ラベルを付与せずに学習させることも可能です。)

以下に、MSATの追加学習によって異常度判定結果が更新されていく様子を、2種類のデータセットに対してそれぞれ動画で示します。1つ目の動画がラベル無しでの追加学習、2つ目の動画がラベル有りでの追加学習に対応しています。

追加学習の様子(ラベル無し)

MSAT++による追加学習の様子。上部の Additional Learn Record が追加学習したデータ量を示す。中央付近のデータを学習した状態からスタートし、主に右上領域に分布するデータをラベル無しで追加学習している。AIを搭載した機器の個体差によるデータ傾向の違い等に適応する様子を示す一例である。

追加学習の様子(ラベル有り)

MSAT++による追加学習の様子。上部の Additional Learn Record が追加学習したデータ量を示す。特徴②の検証と同じデータのうち、2800データをラベル無しで学習した状態からスタートし、その後200データをラベル付きで学習している。追加学習によって、運用当初に見抜けなかった異常を見抜くことが出来るようになる様子を示す。
記事発行日: 2021年11月16日 最終更新日: 2021年11月16日