ZenOneのAI技術紹介 -時系列データの特徴抽出-
当社が提供している運用保守DXプラットフォーム「ZenOne(ゼンワン)」で使用しているAIの技術紹介をします。今回は時系列データの特徴抽出を中心に解説していきます。
みなさん、こんにちは。東京エレクトロンデバイス(以下TED)で開発エンジニアをしているbegipyです。
今回はTEDが提供している「運用保守DXプラットフォームZenOne(ゼンワン)」のAIに関する内容になります。
時系列データとは
時間とともに変動しているデータを時系列データと呼びます。身の回りには様々な時系列データが存在しています。
- 気温、気圧
- 株価、為替
- 血圧、脈拍数
- 地震の波動
- 自動車の速度、加速度
ZenOneでは、エージェントが対象の機器からCPUやメモリなどのメトリック情報を取得し、AIが解析を行っています。これらのデータも時間とともに変動しているため、時系列データと呼ぶことができます。
時系列データの解析は以下のステップに分解できます。以下のステップを経て予測・異常検知のAIモデルを構築し、その後に意思決定・制御を行います。
このうち、5ステップ目の「見方を変える」部分を「特徴抽出」と呼びますが、時系列データの解析においては重要なポイントなりますので、この特徴抽出を中心に解説します。
時系列から情報を取り出すとき、どんな情報を取り出したいかによって分析方法が異なります
長期的な傾向を捉えたい
- 短期的な変動を無視して長期的な傾向を推定する
短期的な傾向を捉えたい
- 長期的な変動を無視して短期的な傾向を推定する
ノイズ
時系列データのうち、取り出したい情報以外の不要な情報のことをノイズと呼びます。ノイズは取り出したい情報が何かによって変わります。
トレンドを捉えたいとき
- トレンドが必要な情報、短期的な傾向がノイズ
短期的な傾向を捉えたいとき
- 短期的な傾向が必要な情報、トレンドがノイズ
移動平均
時系列データにおける長期的な傾向のことを「トレンド」と呼びます。
トレンドの推定方法の一つである移動平均ついて解説していきます。
移動平均は以下の式で表現されます。
T_n=1/(2k+1) (y_(n-k)+⋯+y_n+⋯+y_(n+k) )
- 移動平均は、n番目のデータとその前後k個のデータの合計2k+1個のデータの平均で表されます。
- K=2k+1を項数と呼びます。
- 項数Kを増やすことで時系列データは滑らかになりますが、適切な項数Kを客観的に定めることが難しいため、予測モデルを構築する学習過程での試行錯誤が必要となります。
階差
階差は時系列データから長期的な傾向を無視し、短期的な傾向を取り出す方法の一つです。
1階階差は以下の式で表現されます。
∆y_n=y_n-y_(n-1)
- 1階階差は、1時点前のデータとの差で表されます。
- 差分とも呼ばれます。
ZenOneが対象とするプロダクトのうち、急激なトラフィックの増減をメトリック情報の短期的な傾向から捉えるための方法として、時系列データの特徴抽出に階差を採用しています。階差を採用することで、長期的な傾向を無視し、異常と思われる短期的な変動を捉えやすくしています。一方で、長期的な傾向で生じる絶対値的な異常についてもZenOneに実装されているAIとは別に、独自の検知ルールによって異常を検出できるような工夫がなされています。
今回は時系列データの特徴抽出について解説し、ZenOneのAI技術との関わりをご紹介しました。今回紹介しきれなかった特徴抽出の手法や、可視化や予測におけるモデル構築など、次の機会にご紹介できればと思います。