線形変換の定義みても重要性がいまいちわからん。線形変換と行列ってどんな関係なの?
何で線形変換を特別扱いしなきゃいけないんだろう・・・
と考えたことないだろうか?
線形変換とは、次のような性質を満たす変換のことだ。
線形変換(※)
$$
f(a \mathbf{x} + \mathbf{y}) = a f(\mathbf{x}) + f(\mathbf{y})
$$
日本語で言うと、線形変換 は、
「入力値を線形重ね合わせした後に を作用させた結果は、各々の入力にを作用させた出力値を線形重ね合わせたものと同じになるような変換」である。
・・・で、こんな特殊な変換が一体何の役に立つのか? と疑問に思っている人も多いと思う。
それは、初めて線形代数を学ぶときに持つ疑問の一つだ。
逆に言うと、線形変換の重要性を「大事だよなあ」としみじみ思えるような人は、この投稿を読んでいないだろう。
さて、前口上はこの辺にして、一体、この性質のどこが大事だというのであろうか。
また、この性質が、行列やベクトルとどのような関係があるというのだろうか。
多変数の線形変換:入出力の関係を記述せよ
突然だが、次のような(アホらしい)例を考えてみよう。
あなたの目の前には、3つのつまみがついたAVアンプがある。
そのAVアンプには、テレビとスピーカーが接続されており、
これらのつまみを回すと、音のボリュームと画面の明るさが変化するようにできている。
普通の人間なら、どれかのつまみが音のボリュームに対応し、もう片方が画面の明るさに対応していると考えるはずだ。
しかし、このアンプはそうでなかった。
どこか頭のイカれた開発者は、その操作を混ぜあわせてしまったのだ。
3つのつまみを、それぞれ、つまみA,つまみB,つまみCと呼ぶことにすると、
つまみAだけを回してもボリュームと画面の明るさの両方が変化してしまうのだ。
つまみB、つまみCを回しても、ボリュームと画面の明るさの両方が変化してしまうが、その変化の仕方はそれぞれ違うようだ。
ただし、入出力が線形関係であることは間違いない(つまり、つまみの回転量と変化の程度とが比例しており、つまみA、つまみB、つまみCによる変化を足し合わせたものが、全体の変化となる)。
さて、この厄介な入出力関係の数学的な記述を考えてみよう。
変換を数式で記述
まずはこの状況を数学的に記述したい。 そのための道具は 基底 である。 つまみAを時計回りに1度回転させることを基底1として と書き、 同様に、 つまみBを時計回りに1度回転させることを基底2: 、つまみCを時計回りに1度回転させることを基底3: と書こう。 そして、基底のスカラー倍でツマミの角度を何倍かにすることとすると、つまみの取りうるすべての状態は、 の形に書くことができる。
さらに、この入力に対してボリュームと明るさという出力が決まるのだから、出力側の状態にも基底を導入しよう。今回は、音量が1で明るさが0 である状態を基底 、音量が0で明るさが1である状態を基底 とする。これらの基底のスカラー倍は、ボリュームと明るさの程度の倍率を表すことにすると、出力側の任意の状態は の形で書ける。
入出力関係は、線形変換(と呼ぼう)で結ばれているのだから、これを式で書くと、
となる。
線形変換とは、どのような変換であったかというと、線型結合した入力を変換して出力したものは、それぞれの入力を変換した結果を線型結合したもので表せるという関係式(※)を満たすことであった。つまり、
である。
この意味するところは、「基底 、基底 、基底 のそれぞれの変換先、 を知っていれば、任意の入力についての変換先(左辺)は、右辺のように と と の線型結合で計算できてしまいますよ」ということだ。
これはすごい!
これが研究者やエンジニアが 線形性 を重宝する理由のひとつだ。
今回の例の場合は、3つの基底に対応するつまみの状態に対して、その出力を調べてメモっておけば(たった3回の実験でよい)、あとはどんなツマミの状態であったとしても、メモにある基底の変換先をブレンド(線型結合)するだけで、答えが求まってしまうということである。
式で書くならば、
の変換先 が、実験によって
$$
\begin{align}
T(\mathbf{e}_1) &= t^{1}_1 \mathbf{E}_1 + t^{2}_1 \mathbf{E}_2, \\
T(\mathbf{e}_2) &= t^{1}_2 \mathbf{E}_1 + t^{2}_2 \mathbf{E}_2, \\
T(\mathbf{e}_3) &= t^{1}_3 \mathbf{E}_1 + t^{2}_3 \mathbf{E}_2
\end{align}
$$
であると分かってしまえば、
入力 に対する変換先は、
$$
\begin{align}
& T(a^{1} \mathbf{e}_1 + a^{2} \mathbf{e}_2 + a^{3} \mathbf{e}_3) \\
&= a^{1} T(\mathbf{e}_1) + a^{2} T(\mathbf{e}_2) + a^{3} T(\mathbf{e}_3) \\
&= a^{1} (t^{1}_1 \mathbf{E}_1 + t^{2}_1 \mathbf{E}_2) + a^{2} (t^{1}_2 \mathbf{E}_1 + t^{2}_2 \mathbf{E}_2) + a^{3} (t^{1}_3 \mathbf{E}_1 + t^{2}_3 \mathbf{E}_2) \\
&= (a^{1} t^{1}_1 + a^{2} t^{1}_2 + a^{3} t^{1}_3) \mathbf{E}_1 + (a^{1} t^{2}_1 + a^{2} t^{2}_2 + a^{3} t^{2}_3) \mathbf{E}_2
\end{align}
$$
と計算できてしまう。
さらに行列で記述
上の計算を見通しよく記述する方法、それが行列記法である。 まず、それぞれの基底を数ベクトルと対応づけしよう。 入力側の(つまみAを時計回りに1度回転)を、数ベクトル: に対応付けし、(つまみBを時計回りに1度回転)を数ベクトル:、(つまみCを時計回りに1度回転)を数ベクトル:と対応付けする。 出力側も同様に、 (音量が1で明るさ0)を 、 (音量が0で明るさ1)を に対応付けすると、 まえの小節で計算した結果から、このAVアンプの入出力関係は $$ \left( \begin{matrix} b^1 \\ b^2 \end{matrix} \right) = \left( \begin{matrix} t^1_1 & t^1_2 & t^1_3 \\ t^2_1 & t^2_2 & t^2_3 \end{matrix} \right) \left( \begin{matrix} a^1 \\ a^2 \\ a^3 \end{matrix} \right) $$ と書ける。 これは、3つのつまみの回転という入力を、音量と明るさという出力へ変換する関係を行列で表したものである。
さて、ここで少し豆知識というか、当たり前かもしれないことを書いておこう。
上の行列表現、特に、変換行列
$$
\left(
\begin{matrix}
t^1_1 & t^1_2 & t^1_3 \\
t^2_1 & t^2_2 & t^2_3
\end{matrix}
\right)
$$
を見た時、複雑に見えるというか、あまりピンと来なかった人もいるかもしれない。
「確かにこう書けることは検算できるけど、この形に書けることをよく思いついたよね」とか、思っている人がいると思う。私もそう思った時があった。
しかし、この数値の並び方、導出過程に立ち返ると、ほとんど自明なのである。
もともとは、変換式を基底を明示して下のように書いた。
$$
b^1 \mathbf{E}_1 + b^2 \mathbf{E}_2 = a^1 T(\mathbf{e}_1) + a^2 T(\mathbf{e}_2) + a^3 T(\mathbf{e}_3)
$$
これを、成分で書いてみよう。
$$
\left(
\begin{matrix}
b^1 \\
b^2
\end{matrix}
\right)
= a^1 \left(
\begin{matrix}
t^1_1 \\
t^2_1
\end{matrix}
\right)
+ a^2 \left(
\begin{matrix}
t^1_2 \\
t^2_2
\end{matrix}
\right)
+ a^3 \left(
\begin{matrix}
t^1_3 \\
t^2_3
\end{matrix}
\right)
$$
上の表記はかなり分かりやすいと思う。
これをもう一回コンパクトに書きなおしたものが、
$$
\left(
\begin{matrix}
b^1 \\
b^2
\end{matrix}
\right)
= \left(
\begin{matrix}
t^1_1 & t^1_2 & t^1_3 \\
t^2_1 & t^2_2 & t^2_3
\end{matrix}
\right)
\left(
\begin{matrix}
a^1 \\
a^2 \\
a^3
\end{matrix}
\right)
$$
という表記である。
変換行列の第1列目 は、入力側の基底 の変換先を、出力先の基底で成分表記したものである。
第2列目、第3列目も同様に、入力側の第2基底、第3基底の変換先を成分表示で縦に並べたものにすぎない。行列・ベクトル積の解釈のひとつは、このように、それぞれの基底の変換先を縦ベクトルで並べてあって、それを入力側の成分の重みで足し合わせている、と見ることである。
基底と成分はいつでもセットで考えて!
行列表現には、ひとつ重要な注意点がある。 行列にすると、単に成分という数値を並べ立てたものであるため、基底がなんであったかの情報が完全に見えなくなってしまう。だから、結果を解釈する際には、入力側と出力側の基底がどのようにとられているのかを思い出す必要がある。また、同様の注意であるが、基底を定めているから成分が決まっているのであり、成分の数字だけでは何の意味もないのである。基底の決め方を変えてしまえば、その成分の値も対応して変わってしまうのだ。 例えば、今回の例で言えば、基底1を、「つまみAを時計回りに1度回すこと」から、「つまみAを時計回りに2度回すこと」と変えてしまえば、基底1に対する変換行列の成分()は半分に変えなければならない。 しかし、基底の取り換えに伴って成分の値は変化するかもしれないが、もともとあるAVアンプの入出力の関係自体が変わるわけではない。基底を取り替えたために、表現行列の数値(成分)が変わっただけなのだ。 大切なことなのでしつこく繰り返すが、成分の値だけでは何の意味もないのだ。常に基底とセットにして、初めて意味がある値だということを心に留めておいてほしい。