異常検知とは、データから通常とは異なるパターンや値を見つける技術のことです。この記事では、異常検知の概要やメリット、手法などをわかりやすく解説します。活用事例なども紹介しますので、ぜひ参考にしてください。
異常検知とは
![]()
異常検知とは、膨大なデータ群の中から、平常時の振る舞いと大きく異なる兆候を自動で見つけ出す技術です。たとえば、数値の急上昇や振動パターンの乱れ、アクセス頻度の急増などが対象になります。一般的には、モデルが正常状態のデータの傾向を学習し、そこから統計的に大きく外れた点や区間を「異常」として判定します。
人間の目では見逃しやすい小さな変化や初期兆候を検知できることから、異常検知は製造設備の予知保全、クレジットカードの不正取引検知、医療モニタリングなどで活用されることがあります。
異常検知の種類
異常検知には、以下3種類があります。
| 異常検知の種類 | 内容 |
|---|---|
| 変化点検出 | ● 時系列データの平均値・分散・トレンドなどがある時点で急激に変わる区間を検出する手法 ● 変化点の前後で統計的性質が異なるかを判定する |
| 外れ値検出 | ● 全体の分布から単発で大きく外れた値を見つける手法 ● 各データ点の距離・密度・再構成誤差などを指標に異常度を算出する |
| 異常部位検出 | ● 時系列をウィンドウまたはセグメントに分割し、異常が続く区間そのものを抽出する手法 ● 部分系列(サブシーケンス)単位でスコアを付ける |
変化点検出は、時系列データを用いて異常検知をする手法で、統計的な性質やパターンがある時点を境に急激に変化した「変化点」を検出します。システム負荷の監視などで用いられることがあります。
外れ値検出は、著しくかけ離れた異常値を見つけ出すことができます。外れ値があると平均値が大きく変わり、分析精度が下がる恐れがあります。そのため、入力ミスや測定エラーなどの発見に活用されます。
異常部位検出は、連続した時系列データの中から「異常が発生している区間(部分時系列)」を抽出する手法です。たとえば心電図の計測で不整脈が表れている区間を特定したり、監視ログから特定の時間帯に集中した不正アクセスを検出したりできます。
異常検知に用いられる学習方法とモデル
![]()
異常検知に使用される機械学習には、学習データの与え方や学習方法の違いによって、いくつかの種類があります。これらは画像認識や自然言語処理など幅広い分野で活用されています。ここでは、代表的な学習方法に加えて、関連するモデルの考え方についても解説します。
教師あり学習(Supervised Learning)
教師あり学習とは、あらかじめ「正常」「異常」の判定ラベルをつけたデータで学習をさせ、ラベルのついていないデータを正常か異常か判定させる学習手法です。
学習プロセスでは、判定ラベルをつけたデータを用いてモデルを学習させることで精度を高めます。判定プロセスでは、学習済みモデルを異常検知システムに実装し、正常か異常かを判断させます。
高い精度が期待できる一方で、いくつか課題があるため注意が必要です。まず、学習用データに判定ラベルを付与する必要がある点です。異常データは正常データに比べて収集が難しく、時間的コストも発生します。また、異常データが明確に決まっている場合は問題ありませんが、今まで発生してこなかった異常データが発生しても、対応できない可能性があるでしょう。
教師なし学習(Unsupervised Learning)
教師なし学習は、判定ラベルを使用せずにデータの分布や構造を学習させ、そこから外れたものを異常と捉えさせる方法です。
事前にデータから特徴を学習させる点は教師あり学習と同じですが、ラベル付けを行わない点が大きな違いです。学習したデータの分布やパターンから外れるものを「異常」と判断する特長があり、異常データが十分に用意できない場合や、未知の異常も検知したい場合に用いられます。
半教師あり学習(Semi-supervised Learning)
半教師あり学習は、少量のラベル付きデータと、大量のラベルなしデータを組み合わせて学習させる手法で、教師あり学習と教師なし学習の中間に位置づけられます。ラベル付けコストを抑えながらモデル精度を高められる点が特長です。
異常検知の分野では、入手しやすい正常データだけにラベルを付け、異常データはラベルなし(もしくはデータなし)状態で学習させるケースが多く、このような手法は英語では「Semi-supervised anomaly detection(セミスーパーバイズド異常検知)」と呼ばれます。
また、近年では、自己教師あり学習(Self-supervised Learning)を用いて、ラベルのない正常データから特徴表現を学習させ、その表現をもとに異常を検知する手法も増えています。自己教師あり学習は、人手によるラベル付けを行わずに学習データを生成できるため、大規模データを扱う異常検知と相性がよい点が特長です。
強化学習(Reinforcement Learning)
強化学習とは、AIが環境の中で行動し、その結果に応じて与えられる報酬をもとに、最適な行動を学習する手法です。AIが何をすべきかの明示的な指示をするのではなく、試行錯誤を通じて報酬を最大化する方針を獲得していきます。その特長から、自動運転や産業ロボットなどで活用されています。
強化学習は、異常検知そのものよりも、アラート後の対応や運用最適化といった周辺領域で組み合わせて用いられることがあります。たとえば株取引などの分野で利用されています。
生成モデル(Generative Model)
ここまで紹介した学習方法に加えて、異常検知ではデータの分布を学習する「生成モデル」も活用されます。生成モデルは、学習データの分布をもとに、元データと似た特徴を持つデータを生成できるモデルです。
異常検知では、正常データの分布を学習し、そこから大きく外れるデータを異常として検知する目的で利用されます。代表的な生成モデルには VAE(変分オートエンコーダ)や GAN(敵対的生成ネットワーク)があります。なお、異常検知ではオートエンコーダ(AE)を用い、再構成誤差を異常度として評価する手法も広く利用されています。近年では、これらを応用した時系列データ向けの深層生成モデルや、トランスフォーマー(Transformer)を用いた手法も増えています。
なお、近年では、異常検知モデルそのものに加えて、大規模言語モデル(LLM)を活用し、検知結果の要因分析やアラート内容の要約・説明を自動化する取り組みも進んでいます。LLMは主に分析や運用を支援する補助的な役割として活用されています。
異常検知に使用される代表的な手法
![]()
ここまで、異常検知に用いられる学習方法について説明してきました。続いて、そうした学習を前提として、実際に異常をどのように検知・判定するのかという、代表的な手法について解説していきます。
なお、同じ手法が異なるモデルの文脈で用いられる場合もあります。
ホテリングのT²法
ホテリングのT²法は、異常検知に用いられる統計的手法で、主に外れ値の検出に利用されます。平均と分散(共分散)を考慮し、対象のデータが平均からどれだけ離れているかを評価し、事前に設定したしきい値を超えた場合に異常と判定します。
この手法は「母集団が多変量正規分布に従うこと(母集団のデータが複数のグループに分かれず、1つの中心にまとまった分布に従うこと)」「平均ベクトルと共分散行列が時間とともに変化しないこと(データの平均的な状態や、ばらつき方が時間とともに大きく変化しないこと)」という前提に基づく点に注意が必要です。データが多峰性を持つ、強く歪んでいる、あるいは時系列で平均や共分散がシフトする場合には、誤検知や見落としが生じやすくなります。そのようなケースでは、ロバスト統計や時変共分散モデルなど、別の手法の併用を検討する必要があります。
k近傍法
k近傍法は、本来ラベル付きデータを分類する教師あり学習アルゴリズムですが、異常検知ではラベルを用いず、データ同士の「近さ」を手がかりに外れ値を見つける手法として利用されます。
各データ点について最も近いk個の近傍までの距離や近傍点の局所的な密度を算出し、その値が全体の分布から大きく外れているものを異常と判定します。なお、距離の定義としてよく使われるのは次の3種類です。
- ユークリッド距離
- マンハッタン距離
- マハラノビス距離
シンプルで直感的な手法である一方、設定するkの値によって検知結果が変わりやすい点や、データ量が増えると計算コストが大きくなる点には注意が必要です。
主成分分析
主成分分析は、多次元データをより少ない次元のデータ(主成分)に圧縮(次元削減)する、教師なし学習の手法です。たとえば、商品の重さや色、長さといった複数の特徴量をまとめ、次元削減によってデータの主要な変動要因を抽出します。正常データを元に主成分空間での分布を学習し、その範囲から大きく外れたデータや再構成したときの誤差の大きいデータを異常として検知します。
主成分分析は、製造業での設備監視や金融分野での取引監視など、比較的構造が安定したデータを扱う場面で用いられることがあります。
局所外れ値因子法(LOF法)
局所外れ値因子法は、データ同士の密集度(周囲にどれくらい点が集まっているか)を比べることで、周囲よりポツンと離れている点(外れ値)を見つける手法です。固定のしきい値を設けず、データの密度に着目している点がほかの手法と異なります。
まず各データ点について、近くにあるk個のデータを調べ、その点のまわりの密度と近傍の密度を比べてスコアを計算します。スコアが1より大きいほど周囲よりまばらに位置しており、値が大きいほど異常度が高いと判断できます。
あらかじめ固定のしきい値を決めなくても使えるため、クラスタごとに密度が違う複雑なデータでも適用しやすい点がメリットです。一方で、近傍数kの設定によって結果が変わりやすいことや、データ量が多いと距離計算に時間がかかることには注意が必要です。
サポートベクターマシン(SVM)
サポートベクターマシンとは、データを2つのグループに分類するために、それらを分ける境界線を引くアルゴリズムです。境界線に最も近いデータをサポートベクトルと呼び、これらとの距離が最大になるように境界を決定します。各データはこの境界線からの距離に基づいて分類され、異常検知に応用することが可能です。
基本的なサポートベクターマシンでは直線(線形)による分類を行いますが、直線では分離できないデータに対しては、カーネルトリックと呼ばれる仕組みを用いることで、曲線状の非線形な境界を扱うことも可能です。
また、SVMの中でも、異常検知に特に用いられる代表的な手法として、One-Class SVMがあります。One-Class SVMは、正常データのみを用いて学習し、その分布から外れたデータを異常と判定する手法で、異常データを事前に十分収集できないケースでも有効に機能します。
異常検知の導入メリット
![]()
異常検知の導入をすると、さまざまなメリットがあります。ここでは異常検知の導入メリットを解説します。
エラーの早期発見につながる
異常検知を導入すると、人が見落としがちな微細な変化を早期に発見できます。異常検知システムでは、データをさまざまなパターンで監視・分析することが可能です。システム異常や製品不良、不正行為などに、深刻な状態になる前に気づき対応できるでしょう。
人件費を削減できる
人の手で行っていた点検や検査を、異常検知を導入すれば自動化もでき、その分人件費を削減できます。たとえば、夜間監視など人が複数常駐していた業務では、異常検知の導入により人的リソースを削減できるでしょう。そのほか人による目視確認でダブルチェックをしていた業務も、一部を異常検知で代行でき、その分コスト削減を図れます。
このように、異常検知はさまざまなシーンで人の代わりとして稼働できます。
ヒューマンエラーの防止ができる
手作業によるチェックは、集中力が必要なほか、精神面や経験などによっても精度が変動します。そのため、見間違いや見落としを完全になくすのは難しいのが現状です。
一方で異常検知システムを導入すれば、集中力などに影響されず作業の精度を統一できます。24時間稼働しているような業務であっても、よいパフォーマンスを維持できるでしょう。
属人化を解消できる
高度な判断が求められる業務や判断が必要な業務内容において、ベテラン社員の経験に依存している場合もあるでしょう。少子高齢化に伴い、技能を継承できる従業員も減るなか、スキルの継承に時間がかかり後継できる従業員が育たないことも課題の一つです。
そこで、熟練社員の知識やノウハウを、異常検知システムとしてモデルを学習・活用させれば、誰でもAIを活用して高い精度で業務を行えるようになり、属人化の解消ができます。
作業を自動化しコア業務に集中できる
異常検知システムを使うことで、チェックや監視の自動化が可能です。その結果、リソースを確保できるためその分コア業務に集中できます。
反復的な業務はAIに任せ、創造性や戦略性が必要なコア業務に注力できるようになるため、生産性の向上や品質の向上に期待できるでしょう。
異常検知の活用事例
![]()
異常検知は応用しやすいため、さまざまな分野で活用されています。ここでは、異常検知の活用事例を紹介します。
スパム検知
メールやSNSでは、迷惑メールや迷惑投稿などのスパムが多くあるでしょう。これらスパムを検知し排除する方法として、異常検知が活用されています。
異常検知では、通常のメールや投稿パターンを用いてモデルを学習させ、異なる特徴をもつものを異常(スパム)と判断させることが可能です。不要な情報は迷惑メールフォルダなどに振り分け、トラブル防止やセキュリティの向上が期待できます。
設備不良の発見
設備不良などの発見にも、異常検知は活用できます。稼働中の設備による振動や音などのセンサーデータを24時間監視し、通常と異なる変化があった場合に検知が可能です。それにより故障前のわずかな変化を検知し、事前に対処できるようになります。
従来は故障したことにより生産ラインを一時的に停止させる必要があったり、突然の故障の修理費用がかさんだりしましたが、異常検知を導入することで未然に防げるようになるでしょう。
不正利用検知
クレジットカードの不正利用やWebサイトへの不正アクセスなどは、後を絶ちません。このような不正取引においても、異常検知は役に立ちます。異常検知では、不正利用の特徴をもとにモデルを学習させることで、システム内で不審な取引やアクセスをリアルタイムに判定できる場合があります。具体的には、IPアドレスの監視や生体認証などの本人確認、購入履歴の蓄積などをします。
普段利用していない国外のIPアドレスではないか、同じIPアドレスから大量購入されていないか、などを確認できます。そのほか、過去の取引データから過去に不正利用があった配達先や通常使用していない時間帯などを不正利用として検知可能です。このように、クレジットカードなどの不正利用を常に監視できるようになるため、より迅速な対応ができます。
疾病の早期発見
医療分野においても、疾病の早期発見に活用されています。たとえば、CTや電子カルテの情報を用いてモデルを学習させると、病気特有のパターンを検出し、病変を見つける手助けが可能になります。そのほか、バイタル確認をリアルタイムで行い、異変を察知することもできるでしょう。
このように、疾病の早期発見の支援や病状変化のリアルタイム把握に役立つ可能性があります。
まとめ
異常検知とは、膨大なデータの中から、平常時と異なる兆候や通常の分布から外れるデータを見つける技術です。異常や不正を早期に発見し、トラブル防止や業務効率の向上につながる可能性があります。
機械学習の方法には、教師あり・教師なし・半教師あり学習などがあり、異常検知の手法も多岐にわたります。さまざまな分野で活用されている異常検知システムは、自社の課題解決の一つになり得るでしょう。
(by あなたのとなりに、決済を 編集チーム)
※本コンテンツ内容の著作権は、GMOペイメントゲートウェイ株式会社に属します。