[AI・機械学習の数学]線形代数の固有値・固有ベクトルをマスター:AI・機械学習の数学入門(3/3 ページ)
連載の通常の流れとは別の番外編。前回の行列式に続いて、今回は固有値と固有ベクトルについて、ポイントを押さえて見ていく。名付けて「挫折しない固有値・固有ベクトル」というお話(にするつもり)。統計学や機械学習のさまざまな手法の背景にあるこれらの考え方に触れてみよう。
固有値と固有ベクトルを利用して対角化という操作を行うと、行列のべき乗が超簡単に求められます。その方法と、マルコフ過程の確率を予想する応用例を最後に紹介します。
ポイント5 応用〜行列の対角化とマルコフ過程
結論だけ先に書くと、行列Aのn乗は、
という式で簡単に求めらます。DはAの固有値を対角成分として並べた行列、PはAの固有ベクトルを行列として表したもの、P−1はその逆行列です。なので、これまでに見た方法で簡単に求められます。
ここでキモとなるのは、Dが対角成分だけからなる行列(対角行列)であるということです。対角行列では、成分のべき乗を求めるだけで行列のn乗が求められます。
とすると、
です。一般的な行列では単純に成分を何乗かしても行列のべき乗は求められません。べき乗を求めるには、積(内積)の計算が必要ですが、かなり面倒です。次元や指数が増えるとなおさらですね。しかし、対角行列の場合は、こんなに簡単にできてしまいます。
続きは具体的に見ていきましょう。これまで見てきた以下の行列で考えます。
とすると、Aの固有値は、λ1=3,λ2=2でした。これらを対角成分とする行列Dを作っておきましょう。
次に、それぞれの固有値に対応するAの固有ベクトルについても、それらを縦に並べた行列Pを作ります。λ1=3に対する固有ベクトルは(2,−1)、λ2=2に対する固有ベクトルは(−1,1)だったので、Pは以下のようになります。
Pの逆行列P−1も求めておきましょう。逆行列の求め方を忘れた方は、番外編4「[AI・機械学習の数学]線形代数の行列式をマスター」を参照してください。
ここからが面白くなります。P−1APを求めてみてください。どうなるでしょうか。
おっと、成分ごとに計算するのはちょっと待ってください。以下の式が成り立つことを利用すれば、計算は一切不要です。
左辺は固有ベクトルの行列PをAによって一次変換したもの、右辺は固有ベクトルの行列に固有値を掛けて定数倍したものです(これらが等しくなるのは、ポイント1で見た通りですね)。これを(7)式に代入します。P−1PはPに逆行列を掛けたのものなので単位行列Eになります。従って、
となります。成分を計算するまでもなく、P−1AP=Dとなることが分かりました。つまり、
となるわけです。このような計算を行って対角行列を作成することを対角化と呼びます。
対角化するととてもうれしいことがありました。それは行列のべき乗が、以下のように成分をそのままべき乗するだけで表せるということでしたね。
さらにステキなことに、(P−1AP)nはP−1AnPに等しくなります。(P−1AP)nは、P−1APをn回掛けたものなので、以下のように展開するとPとP−1がうまく打ち消し合ってくれるからです。
この式に左からPを、右からP−1を掛けると、Anが出てきます!
しかも、(P−1AP)n=P−1AnP=Dnなので、
が得られます。つまり、Aのn乗は、固有値で作った行列Dnに、左から固有ベクトルの配列Pを掛け、右からその逆行列のP−1を掛けるだけで求められるのです。Dnは(8)式で見た通り、対角成分をn乗するだけで求められるので、計算がとても簡単になります。
最後に、ちょっとした応用です。次の状態の確率が直前の状態からのみ決まり、それより前の状態の影響を受けないような確率過程をマルコフ過程と呼びます。例えば、前日株価が上がったときに、翌日株価が上がる確率が0.6で、下がる確率が0.4だとします。逆に、前日株価が下がったときに、翌日株価が上がる確率は0.3で、下がる確率が0.7だとします(表1)。
| 前日に上昇 | 前日に下落 | |
|---|---|---|
| 翌日に上昇 | 0.6 | 0.3 |
| 翌日に下落 | 0.4 | 0.7 |
翌日の株価は前日の状態(上昇したか、下落したか)によってのみ決まるものとする。
この表を行列Aとして表します。
このとき、前日の状態Xn−1と翌日の状態Xnの関係は以下のようになります。
例えば、今日をn=1として、前日に株価が上昇したとします。つまりX0=(1,0)だとします。このとき、今日の株価が上昇する確率と下落する確率は、以下のようにして求められます。
明日(n=2)の株価が上昇する確率と下落する確率は以下のようになります。
(11)式に(10)式を代入すると、
となります。このことから、一般に、
であることが分かります。n日目の株価が上昇する確率と下落する確率はAnで求められるというわけです。というわけで、例えば、10日後の株価について上昇する確率と下落する確率を求めてみましょう。ここでは、細かな計算は省いて、結果だけ示します。
Aの固有値を求めると、λ1=0.3,λ2=1になります。そこで、
とします。
それらに対する固有ベクトルはv1=(1,−1),v2=(0.3,0.4)です。従って、
となり、その逆行列P−1を計算すると、
になります。
という結果が得られます。上昇する確率は0.429、下落する確率は0.571だというわけです。さすがに最後のべき乗の計算はパソコンを使わないと無理な気がしますが、nが大きくなると、0.3nは0に近づくので、0で近似できます。とすると、上の式は以下のように簡単に計算できます。
なお、前日の株価が上昇した場合、つまりX0=(1,0)から始めても、下落した場合、つまりX0=(0,1)から始めても、n=10ぐらいでこれらの値に収束します(もちろん、株価はさまざまな要因で決まるので、これで完璧な予測はできませんが)。
番外編4と番外編5では線形代数の重要なキーワードである、行列式、固有値、固有ベクトルについて説明しました。前々回の連載本編や番外編から少し(かなり)時間が空いてしまいましたが、これからも、折に触れて、AIや機械学習と関連するトピックがあれば取り上げていこうと思っています。
Copyright© Digital Advantage Corp. All Rights Reserved.

