指数平滑移動平均の直感的な説明

直感的にわかる指数平滑移動平均の解説' (Chokanteki ni wakaru shisū heikin idōheikin no kaishaku)

勾配降下法内で使用される基本アルゴリズムのロジックを理解する

はじめに

時系列分析では、直前の値を考慮に入れて、数列の傾向方向を理解する必要があります。数列の次の値の近似値は、シンプルな基準線や高度な機械学習モデルの構築など、さまざまな方法で行うことができます。

指数(重みづけ)移動平均は、これら2つの方法のバランスのとれたトレードオフです。シンプルな再帰的なメソッドを使用することで、アルゴリズムを効率的に実装することができます。同時に、非常に柔軟性があり、ほとんどのタイプの数列に適応することができます。

本記事では、この方法の動機づけ、ワークフローの説明、および近似におけるバイアスの問題への効果的な対策であるバイアス補正について説明します。

動機

時間の経過に伴って変化する特定のパラメータの近似問題を想像してみましょう。各イテレーションで、すべての直前の値を把握しています。目的は、以前の値に依存する次の値を予測することです。

単純に直近のいくつかの値の平均を取るというのは、特定のケースでは機能するかもしれませんが、パラメータが最近の値により依存している場合にはあまり適していません。

この問題を克服するための1つの方法は、最近の値により高い重みを割り当て、以前の値にはより少ない重みを割り当てることです。指数移動平均は、まさにこの原則に従う戦略です。最近の値が次の値の形成においてより前の値よりも貢献するという仮定に基づいています

指数移動平均がどのように機能するかを理解するために、再帰的な方程式を見てみましょう:

Exponential moving average formula
  • vₜは与えられた変数を近似する時系列です。そのインデックスtはタイムスタンプtに対応しています。この式は再帰的であるため、初期タイムスタンプt = 0の値v₀が必要です。実際には、v₀は通常0とされます。
  • θは現在のイテレーションでの観測値です。
  • βは0から1までのハイパーパラメータであり、前回の平均値vₜ-₁と現在の観測値θの間で重みの重要性をどのように分散するかを定義します。

最初のいくつかのパラメータ値に対してこの式を書いてみましょう:

Obtaining formula for the t-th timestamp

結果として、最終的な式は次のようになります:

Exponential moving average for the t-th timestamp

最も最近の観測値θは重み1を持ち、直前の2番目の観測値には重みβ、3番目の観測値には重みβ²などが割り当てられます。0<β<1なので、乗算項βᵏはkの増加とともに指数的に減少します。したがって、観測値が古くなればなるほど重要性が低くなります。最後に、すべての和の項には(1−β)が乗算されます。

実際には、βの値は通常0.9に近い値が選ばれます。

Weight distribution for different timestamps (β = 0.9)

数学的解釈

数学解析から有名な第2のすばらしい極限を使用することで、次の極限が証明可能です:

β = 1 – x という置換を行うことで、次の形で書き換えることができます:

また、指数加重平均の式では、各観測値はβᵏという項で乗算されます。ここでkは観測値が計算されたタイムスタンプからどれだけ前かを示しています。基礎となるβが両方の場合に等しいため、両方の式の指数を等しくすることができます:

この方程式を使うことで、選択したβの値に対して、重みの項が1 / e ≈ 0.368に到達するまでの時間スタンプtを近似的に計算することができます。つまり、過去のtイテレーションで計算された観測値は、重みの項が1 / eより大きく、より直近のtタイムスタンプ範囲外で計算された観測値は1 / eより小さい重みを持ち、はるかに重要度が低いことを意味します。

実際には、1 / e以下の重みは指数加重平均にほとんど影響を与えません。そのため、「与えられたβの値に対して、指数加重平均は最後のt = 1 / (1 – β)の観測値を考慮に入れます」と言われるのです。

式の感覚をつかむために、異なるβの値を代入してみましょう:

例えば、β = 0.9とすると、およそt = 10のイテレーションで、重みが1 / eに減衰し、現在の観測値の重みと比べておおよそ10回の観測値のみに依存するようになります。

バイアス補正

指数加重平均の一般的な問題は、ほとんどの問題では最初の系列値をうまく近似できないことです。これは初期のイテレーションに十分な数のデータが存在しないためです。例えば、以下の時系列のシーケンスが与えられたとします:

指数加重平均を使ってこれを近似することが目標です。しかし、通常の式を使用すると、最初のいくつかの値はv₀(0)に大きな重みを置くことになりますが、散布図上のほとんどの点は20以上です。その結果、最初の重み付き平均のシーケンスは元のシーケンスを正確に近似するにはあまりにも低くなります。

単純な解決策の一つは、v₀の値を最初の観測値θ₁に近づけることです。このアプローチは一部の状況ではうまく機能しますが、与えられたシーケンスが不安定な場合には完璧ではありません。例えば、θ₂がθ₁とあまりにも異なる場合、2番目の値v₂を計算する間に重み付き平均は通常、直前の傾向v₁に比べて現在の観測値θ₂にはるかに重要度を置くことになります。その結果、近似度は非常に低くなります。

より柔軟な解決策は、「バイアス補正」と呼ばれる手法を使用することです。計算された値vₖを単に使用する代わりに、(1 — βᵏ)でそれらを割ります。βが0.9–1に近い値が選択されていると仮定すると、この式はkが小さい初期のイテレーションでは0に近くなります。そのため、最初のいくつかの値をゆっくりと蓄積する代わりに、それらは比較的小さい数で除算され、より大きな値にスケーリングされます。

バイアス補正あり・なしでの指数移動平均計算の例

一般的に、このスケーリングは非常にうまく機能し、最初のいくつかの項に正確に適応します。kが大きくなるにつれて、分母は徐々に1に近づき、このスケーリングの効果を徐々に省略します。なぜなら、あるイテレーションからは、アルゴリズムは追加のスケーリングなしで直近の値に高い信頼性を持って頼ることができるからです。

結論

この記事では、時系列データの近似に非常に役立つ技術について取り上げました。指数加重平均アルゴリズムの頑健性は、特定のタイプのシーケンスに適合するように調整できるハイパーパラメータβによって主に実現されます。それ以外にも、導入されたバイアス修正メカニズムにより、情報があまりにも少ない早期のタイムスタンプでもデータを効率的に近似することが可能です。

指数加重平均は、時系列分析において広範な応用範囲があります。さらに、収束加速のための勾配降下法のバリエーションに使用されます。その中でも最も人気のあるのは、ディープラーニングのモメンタムオプティマイザで、最適化された関数の不要な振動を除去し、より正確にローカルミニマムに整列させることです。

著者による画像(特に断りがない限り)

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more