3Blue1Brown で学ぶ線形代数

最近は YouTube で数学の解説が上がっていたりする。質の高いコンテンツも多く、独学勢にとってはありがたい時代である。なかでもスゴいのが 3Blue1Brown の動画。チャンネル登録者数400万人も納得のクオリティである。

今回は 3Blue1Brown の線形代数(Linear Algebra)のシリーズを見てみる。何年か前にも見たことあって線形代数の気持ちをかなり理解できた記憶がある。こういうのは何度見ても発見があるのでもう一回見てみる。シリーズの動画は以下。

www.youtube.com

この記事では、各動画の中で重要そうなところをメモる。

0. Essence of linear algebra preview

まずはこのシリーズの目的について述べている。線形代数といえば行列計算など計算手順に重きを置いて説明されがちだが、本シリーズは直感な(幾何的な)理解に重きを置いた構成になっているとのこと。

実際、この意図はかなり効果的で、シリーズを通して見ると線形代数の各構成要素がどういう操作に対応しているのか分かるようになる。そういう意味で板書ベースの大学の講義より線形代数の意義を理解しやすい。

1. Vectors, what even are they?

ベクトルの説明について。ベクトルには、ベクトルを足し算する操作とスカラー倍する操作が重要。例を使いながらその直感的な意味を説明している。ここまでは普通の線形代数の導入といった感じ。

2. Linear combinations, span, and basis vectors

単位ベクトルとして x 軸方向の  \hat{i} と y 軸方向の  \hat{j} を導入する。これらのベクトルは basis vectors(基底ベクトル)であり、基底ベクトルのスカラー倍の和として任意のベクトルを表現できる。これは基底ベクトルの liner combination(線型結合)と呼ばれる。ただし、基底ベクトル同士が同じ方向を向いていたり、零ベクトルだった場合は、線型結合が任意のベクトルを表現できるわけではない。線型結合で表現できるベクトルの集合を span と呼ぶ。

3. Linear transformations and matrices

行列とベクトルの積についての直感的な説明をしている。

transformation(変換)とはベクトルを入力としてベクトルを出力するものである。ベクトルを動かすと捉えることもできる。任意のベクトルに対する変換を考えるため、座標系に張った格子が変換によってどう変形されるのかを見てみる。さまざまな変換が考えられるが、liner transformation (線形変換)は原点の位置が変わらず、格子の直線が等間隔の直線のままであるような変換である。

ここで線形変換の重要な性質がある。ベクトルを動かすのが変換であったが、線形変換の前後で基底ベクトルを用いた表現は保たれるということである。たとえば、変換前後で以下の関係が成り立つ。

変換前: \vec{v} = -1 \hat{i} + 2 \hat{j}

変換後: \text{Transformed}\ \vec{v} = -1 (\text{Transformed}\ \hat{i}) + 2 (\text{Transformed}\ \hat{j})

ここで Transformed は変換後のベクトルを示している。つまり、線形変換によって得られるベクトルを計算するには、それぞれの基底ベクトルがどこに動くのかだけ求めればよい。個々のベクトルの動きを求める代わりに、その空間を張る基底ベクトルの動きを追えばよいということである。

そして、線形代数は行列に対応する。具体的に以下のような行列を考える。

 \begin{bmatrix}
 3 & 2 \\\
-2 & 1
\end{bmatrix}

実は、1列目の  \begin{bmatrix}
 3  \\
-2
\end{bmatrix}
が変換後の  \hat{i} であり、2列目の  \begin{bmatrix}
 2  \\
 1
\end{bmatrix}
が変換後の  \hat{j} を示している。そのため、この線形変換によってベクトル  \begin{bmatrix}
 5  \\
 7
\end{bmatrix}
がどう変換されるのかは以下のように考えればよい。

\begin{align} \text{Transformed}\ \begin{bmatrix} 5 \\ 7 \end{bmatrix} & = 5 (\text{Transformed}\ \hat{i}) + 7 (\text{Transformed}\ \hat{j}) \\ & = 5 \begin{bmatrix} 3 \\ -2 \end{bmatrix} + 7 \begin{bmatrix} 2 \\ 1 \end{bmatrix} \\ & = \begin{bmatrix} 29 \\ -3 \end{bmatrix} \end{align}

この動画を通して、高校数学でも習う行列計算の意味が理解できる。線形変換では座標系全体(基底ベクトル)を動かしているというイメージが大切。

4. Matrix multiplication as composition

行列と行列の積について説明している。前回の話が理解できていれば、行列と行列の積は線形変換の合成に対応することが分かる。結局のところ、2つの線形変換を通して基底ベクトル  \hat{i} \hat{j} がどこに移るのか計算しているに過ぎない。

5. Three-dimensional linear transformations

これまで2次元の話を扱っていたが、3次元についてもここで扱う。2次元の場合と同様に、3次元の場合は 3×3 の行列によって線形変換が表現される。

6. The determinant

determinant(行列式)は線形変換ごとに定まる値であり、その線形変換によって平面上の面積が何倍になるかを表す。線形変換では、座標系上のどこにある領域でも変換前後の面積の比が一定であるため、行列式のような定数として計算できる。なお、行列式の値が負になる場合は軸の向きが逆転したことを示す。3次元の場合も同様で、空間上の体積の変化を示す。

行列式の計算方法は色々あるが、それは線形代数の理解には本質的ではないと言っている。100回くらい頷きたい。大学の線形代数の授業はここらへんの手計算に重きを置きすぎなんだよな。

7. Inverse matrices, column space and null space

行列計算の有名な応用として、多元一次方程式を解く方法を例に挙げている。この例を通して、行列の逆行列・column space・ランク・カーネルなどの考え方を紹介。要するに、線形変換を分類する方法として、その結果として得られる空間(column space)が重要だと思えばよさそう。たとえば行列式が0のときは空間が潰れる。

8. Nonsquare matrices as transformations between dimensions

これまで n×n 行列(正方行列)のみ扱って来たが、線形変換はベクトルを動かす操作に対応していた。m×n 行列の場合は、n 次元のベクトルを m 次元のベクトルに変換するような線形変換に対応する。たとえば、 [1\ 2] は2次元ベクトルを1次元ベクトルに変換する行列であり、2次元空間の基底ベクトル  \hat{i},  \hat{j} をそれぞれ 1, 2 に移すような線形変換である。

9. Dot products and duality

ベクトルとベクトルの dot product(内積)についての説明。内積がベクトルの射影を表しているというのはお馴染みの内容。ここで面白いのが、内積と 1×2 行列による線形変換が対応しているという点である。具体的には、ベクトルをあるベクトルの方向について射影する計算と、基底ベクトルを1次元に埋め込む線形変換が対応している。こういう異なるものが対になる関係を duality(双対性)という。

10. Cross products

ベクトルとベクトルの cross product(外積)についての説明。ベクトル  \vec{v},  \vec{w}外積  \vec{v} \times \vec{w} はベクトル  \vec{p} であり、 \vec{p} \vec{v} とも  \vec{w} とも垂直かつ、 \vec{p} の大きさは  \vec{v} \vec{w} がなす平行四辺形の面積と一致する。この平行四辺形の面積は行列  [\vec{v}\ \vec{w}]行列式として計算できるのであった。

11. Cross products in the light of linear transformations

外積の計算方法とその幾何的な意味について。行列式の値(体積)と外積の結果の整合性が取れていることを確認しているように思われる。この章は内容がややこしいのでスキップ。

12. Cramer's rule, explained geometrically

方程式を解くための Cramer's rule(クラメルの公式)の幾何的な説明。例として、二元一次方程式を次の線形変換  A として捉える。

\begin{align} \begin{bmatrix} 2 & -1\\ 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} 4\\ 2 \end{bmatrix} \end{align}

このとき、変換前の \hat{i}(x, y) がなす平行四辺形の面積は  y であるため、変換後の面積は \text{det}(A) \times y で得られる。ここで \text{det}(A) は線形変換 A による面積の変化を表していることに注意する。他方、変換後の面積は  \text{Transformed}\ \hat{i} (4, 2) がなす平行四辺形を考えると以下で計算できる。

\begin{align} \text{det}( \begin{bmatrix} 2 & 4\\ 0 & 2 \end{bmatrix} ) \end{align}

変換後の面積に関するこれら2つの式を等号で並べたのがクラメルの公式である。要するに、変換前後の平行四辺形の面積の関係を考えることが本質と言える。

13. Change of basis

基底ベクトル(座標系)の変換について。Chapter 3 で学んだ通り、線形変換は基底ベクトルを移動することに相当する 。線形変換 A によって座標系を変えたら  A^{-1} によって元の座標系に戻せる。つまり、線形変換と逆変換によって座標系を行ったり来たりできる。 A^{-1}MA のような行列計算を見たら、線形変換 M を行うため一時的に座標系を変えていると思えばよい。

14. Eigenvectors and eigenvalues

固有ベクトル固有値について。線形代数といえばこのあたりの話がややこしい。

線形変換は、格子を平行に保ったまま等間隔に拡大するような操作であった。このとき、ある特別なベクトルは変換前後で方向が変わらない。このようなベクトルを固有ベクトルと呼ぶ。ただし、固有ベクトルの大きさは変化する可能性があり、その倍率を固有ベクトル固有値と呼ぶ。たとえば、固有値が2であれば固有ベクトルの大きさは変換によって2倍になる。

固有値固有ベクトルの求め方についても説明がある。これはよくある流れで、 (A - \lambda I ) \vec{v} = \vec{0} を満たす  \vec{v}固有ベクトルであり、 \lambda固有値である。 \vec{v} は零ベクトルではないので、この式を満たすためには線形変換  A - \lambda I が次元を下げるようなものでないといけない。これは変換後の面積が0になる、つまり行列式が0となる必要がある。よって、 \text{det}(A - \lambda I) = 0 を解くことで固有値が求まる。

これ自体は教科書的な流れだが、線形変換がもつ意味や行列式が0になるときの変換の様子がイメージできているだけで固有ベクトル固有値が何であるのかよく理解できる。

15. A quick trick for computing eigenvalues

2×2行列の固有値を求める簡単な方法について。テクニック的な話なのであまり重要ではないと思った。

16. Abstract vector spaces

ベクトルや線形変換を一般化した線形空間について。

  • Additivity:  L(\vec{v} + \vec{w}) = L(\vec{v}) + L(\vec{w})
  • Scaling:  L(c\vec{v}) = c L(\vec{v})

の2つの規則を満たすとき線形性があると言える。線形性のあるものの例として多項式微分が挙げられている。多項式微分が線形性を持つのは当たり前だが、微分に対応する線形変換を行列として表現できることを説明しているのが面白い。

所感

久しぶりに線形代数を勉強した。ある操作があるとして、対象を直接操作するときと、対象をいったん分解してそれぞれ操作をした後に合体したときに同じものが得られるというのが線形代数の本質的なところ。この様子を視覚的にイメージできるようになるのがこのシリーズの目的であり、それを達成するのに十分なコンテンツを提供している。大学の授業はこれ見せとけばいい。