像、核、次元定理#

\[ % 太字のalias \newcommand{\b}[1]{\boldsymbol{#1}} % 演算子の定義 \DeclareMathOperator{\im}{ \text{Im} } \DeclareMathOperator{\rank}{ \text{rank} } \DeclareMathOperator{\span}{ \text{Span} } \DeclareMathOperator{\Ker}{ \text{Ker} } \]

\(\text{Im}\)#

Aで移れる範囲を像\(\im A\)という。値域(range)と言うこともあるらしい。より正確には:

集合\(X\)から集合\(Y\)への写像

\[ f: X \longrightarrow Y \]

における\(X\)定義域\(Y\)値域という。

\(x \in X\)\(y \in Y\)が対応するとき、\(y\)\(f\)による\(x\) といい、

\[ y = f(x) \]

と書く。

\(x\)\(X\)のすべての元をわたるとき、\(f(x)\)全体の作る\(Y\)の部分集合を\(f\) といい、\(\text{Im} f\)と表す。

\[ \mathop{\text{Im}} f = \{f(x) \mid x \in X \} \]

\(\mathop{\text{Im}} f = Y\)のとき、\(f\)全射 であるという。また\(x_1, x_2 \in X, x_1 \neq x_2\)に対して\(f(x_1) \neq f(x_2)\)が成り立つとき、\(f\)単射 であるという。

定義:像

\(n\)次元ベクトル空間\(V^n\)から\(m\)次元ベクトル空間\(V^m\)への写像\(f: \boldsymbol{x} \to A \boldsymbol{x}\)があるとする。ここで\(A\)\(m\times n\)行列である。

\(V^n\)\(f\)による像になっている\(V^m\)のベクトル全体の集合、すなわち

\[ \{ \boldsymbol{y} \mid \boldsymbol{y} \in V^m, \boldsymbol{y} = A\boldsymbol{x} (\boldsymbol{x} \in V^m) \} \]

\(V^m\)の部分空間となり、これを という。

Im = Span#

\(x_1, \dots, x_n\)を色々な値にしたときの線形和\(x_1 \b{a}_1 + \cdots + x_n \b{a}_n = A \b{x}\)\(\im A\)であり、\(\b{a}_1, \dots, \b{a}_n\)が張る線型部分空間\(\span \{ \b{a}_1, \dots, \b{a}_n \}\)でもある

\[ \im A = \span \{ \b{a}_1, \dots, \b{a}_n \} = x_1 \b{a}_1 + \cdots + x_n \b{a}_n = A\b{x} \]

例:最小二乗法

最小二乗推定量\(\hat{\boldsymbol{\beta}} = (X^\top X)^{-1} X^\top \boldsymbol{y}\)\(\hat{\boldsymbol{y}} = X \hat{\boldsymbol{\beta}}\)に代入すると

\[ \hat{\boldsymbol{y}} = \underbrace{ X (X^\top X)^{-1} X^\top }_{P} \boldsymbol{y} = P \boldsymbol{y} \]

つまり、ベクトル\(\boldsymbol{y}\)を行列\(P = X (X^\top X)^{-1} X^\top\)で射影したものとみなすことができる。

この行列\(P\)は対称行列で、\(P^2=P\)となる。対称行列で\(P^2=P\)となる行列を射影行列という。

射影行列は、\(X\)の列空間\(\im X\)にベクトルを正射影するという性質がある。\(\boldsymbol{y}\)\(\im X\)への射影が\(\hat{\boldsymbol{y}}\)で、垂線の足が誤差\(\boldsymbol{u}\)となる。

最小二乗法は\(\boldsymbol{y}\)から\(\im X\)への射影を求める操作であると捉えることができる。

#

\(A\boldsymbol{x} = \boldsymbol{0}\)に移ってくるような\(\boldsymbol{x}\)の集合を\(A\)核(kernel) あるいは 零空間(null space) と呼び、\(\mathop{ \text{Ker} } A\)と書く

\[ \mathop{ \text{Ker} } A = \{ \boldsymbol{x} \mid A\boldsymbol{x} = \boldsymbol{0} \} \]

核はベクトル空間であり、その次元は 退化次数(nullity)とも呼ばれる(つまり、\(\dim \Ker A = \mathop{\text{nullity}} A\)

幾何学的な解釈としては、カーネルは写像\(A\)で結果がぺちゃんこに潰される方向。 ぺちゃんこに潰れない行列の場合、\(\Ker A\)\(0\)次元(原点\(\boldsymbol{0}\)のみ)

定義:核

\(n\)次元ベクトル空間\(V^n\)から\(m\)次元ベクトル空間\(V^m\)への写像\(f: \boldsymbol{x} \to A \boldsymbol{x}\)があるとする。ここで\(A\)\(m\times n\)行列である。

\(f\)によって\(V^m\)の零ベクトルに写されるような\(V^n\)のベクトル全体の集合、すなわち

\[ \{ \boldsymbol{x} \mid \boldsymbol{y} \in V^n, \ A \boldsymbol{x} = \boldsymbol{0} \} \]

\(f\)(または\(A\))の といい、\(\Ker A\)または\(f^{-1}(\boldsymbol{0})\)または\(A^{-1}(\boldsymbol{0})\)と表す。

ランク#

\(m\times n\)行列\(A\)に対し、\(A\)が定義する線形写像

\[ A: \mathbb{R}^n \to \mathbb{R}^m \]

の像空間の次元のことを ランク(階数) といい、\(\rank A\)と表す。

\[ \rank A := \dim \im A = \dim \span\{ \boldsymbol{a}_1, \dots, \boldsymbol{a}_n \} \]

\(A \in \mathbb{R}^{m\times n}\)なら、\(m\)次元の定義域から\(n\)次元の値域に移す写像なので、

\[\begin{split} \rank A \leq m\\ \rank A \leq n\\ \therefore \rank A \leq \min (m,n) \end{split}\]

ランクの同値な定義

\(m\times n\)行列\(A\)のランク\(\operatorname{rank} A\)は、以下と一致する

  1. \(A\)の列ベクトルの中から選び得る1次独立なベクトルの最大個数

  2. \(A\)の行ベクトルの中から選び得る1次独立なベクトルの最大個数

  3. 行列\(A\)\(t\)次の小行列式の中には0でないものがあり、\(t+1\)次以上の小行列式はすべて0であるときの\(t\)

  4. \(A\)の行ベクトルが生成する\(\mathbb{R}^n\)の部分空間の次元

  5. 行列\(A\)を行基本変形して階段行列を作ったとき、零ベクトルでない行の数

ランクの求め方#

線形写像を定める行列に行基本変形を行って階段行列を作ったとき、零ベクトルでない行の数がランクに相当する。

例(ランクの求め方)

\(3\)次実正方行列\(A\)により定められる線形写像\(f(x) = Ax \ (x\in \mathbb{R}^3)\)があるとする。

ここで\(A\)

\[\begin{split} A = \begin{pmatrix} 1 & 2 & 3\\ 2 & 3 & 4\\ 3 & 4 & 5\\ \end{pmatrix} \end{split}\]

とする。この線形写像\(f\)のランク(行列\(A\)のランク)を求めたいとする。

1. 行基本変形で階段行列を作る

1行目を2倍して2行目から引く

\[\begin{split} \begin{pmatrix} 1 & 2 & 3\\ 0 & -1 & -2\\ 3 & 4 & 5\\ \end{pmatrix} \end{split}\]

1行目を3倍して3行目から引く

\[\begin{split} \begin{pmatrix} 1 & 2 & 3\\ 0 & -1 & -2\\ 0 & -2 & -4\\ \end{pmatrix} \end{split}\]

2行目を2倍して3行目から引く

\[\begin{split} \begin{pmatrix} 1 & 2 & 3\\ 0 & -1 & -2\\ 0 & 0 & 0\\ \end{pmatrix} \end{split}\]

階段行列になった。

2. 零ベクトルでない行ベクトルの数を数える

零ベクトルでない行の数は2であるので、\(\operatorname{rank} f = \operatorname{rank} A = 2\)

import numpy as np

A = np.array([
    [1, 2, 3],
    [2, 3, 4],
    [3, 4, 5],
])

np.linalg.matrix_rank(A)
2

次元#

ベクトル空間の1次独立なベクトルの最大個数を次元という

次元定理#

\(m\times n\)行列\(A\)について、

\[ \dim \Ker A + \dim \im A = n \]

が成り立つ。

\[ \begin{align} \underbrace{ n }_{元の次元} - \underbrace{ \dim \Ker A }_{ぺちゃんこに潰れる次元} = \underbrace{ \dim \im A }_{残った次元} \end{align} \]

次元定理(線形写像ver.)#

\(n\)次元ベクトル空間\(X\)\(m\)次元ベクトル空間\(Y\)があるとして、

\[ f: X \to Y \]

を線形写像とすると、次元定理は以下のように表される。

\[ \dim \mathop{\text{Im}} f + \dim \mathop{\text{Ker}} f = \dim X \]

また

  • \(\mathop{\text{rank}} f = \dim \mathop{\text{Im}} f\)

  • \(\mathop{\text{nullity}} f = \dim \mathop{\text{Ker}} f\)

  • \(n = \dim X\)

から、同値の定理として

\[ \mathop{\text{rank}} f + \mathop{\text{nullity}} f = n \]

とも表される