Skip to content

Instantly share code, notes, and snippets.

@bilzard
Last active May 17, 2019 00:06
Show Gist options
  • Save bilzard/b8020ae9514befb59418839f597781f3 to your computer and use it in GitHub Desktop.
Save bilzard/b8020ae9514befb59418839f597781f3 to your computer and use it in GitHub Desktop.
数式を読むにはMathJaxに対応したブラウザのプラグインが必要です. https://chrome.google.com/webstore/detail/mathjax-plugin-for-github/ioemnmodlmafdkllaclgeombjnmnbima

『深層学習』本の落ち穂拾い的なやつ - 第2章 線形代数

はじめに

この本を読んで理解しずらかった部分を掘り下げています. ページ数を記載してあるものは、「原文」の方を指します.

2章 線形代数

行列の結合則の証明

  1. $A(B+C)=AB+AC$
  2. $(AB)C=A(BC)$

Proof

行列 $A, B, C$ の各要素をそれぞれ $a_{i,j}, b_{i,j}, c_{i, j}$ とおく.

$$ \left(A(B+C)\right)_{i,k} $$

$$ = \sum_{j}a_{i,j}\left(b_{j,k}+c_{j,k}\right) $$

$$ = \sum_j\left(a_{i,j}b_{j,k}\right)+\sum_{j}\left(a_{i,j}c_{j,k}\right) = \\ AB + AC $$

$$ \left[(AB)C\right]_{i,l} $$

$$ = \sum_{k}\left(\sum_{j}a_{i,j}b_{j,k}\right)c_{k,l} $$

$$ = \sum_{j}a_{i,j}\left(\sum_{k}b_{j,k}c_{k,l}\right) \\ = \left[A(BC)\right]_{i,l} $$

ここで、1行目の右辺と2行目の右辺で等号が成り立つ理由は、 $a_{i,j}$ がインデックス $k$ に束縛されていないため、$\sum_k$ の和の外に出せることと、$\sum_k$と$\sum_j$が交換可能であることによる.

(ここまで厳密な証明はこの本の内容を理解する上では不要であると思われる.)

$\mathbf{A}\mathbf{x}=\mathbf{b}$ の解の個数について

連立方程式 2.11 の解 $\mathbf{x}$ を求める.

$\mathbf{A}\mathbf{x}=\mathbf{b} \tag{2.11}$

以降、ゴシック体にするのが面倒くさいので、通常のイタリック体でベクトルや行列を表す.

$A^{-1}$ が存在するためには、2.11式はすべての $b$ に対してちょうど1つの解をもつ必要がある (p.37)

この理由についての説明は本文中には見当たらない.

2.11式の解が2個以上存在する場合は、無限個存在する (p.37)

proof

2.11式の異なる2つの解をそれぞれ $x, y$ とすると、 $$z=\alpha x + (1-\alpha)y \tag{2.26}$$ もまた2.11式の解になる. じっさい、 $$Az=A \left( \alpha x + (1-\alpha)y \right) = \alpha (Ax - Ay)+Ay \ = \alpha (b-b) + b = b$$ と表せる.

2.11式が $b \in \mathbb{R}^m$ のすべての範囲に対して解をもつためには、$A$の列空間が $\mathbb{R}^m$ と一致する必要がある. (p.38)

2.11 式の左辺 = $\sum_{i}x_iA_{:,i}$$A$ の列空間であることから自明. もし $b$$A$ の列空間よりも真に小さければ、その差集合に含まれる点 $\beta = \sum_{i}x_iA_{:,i}$ に対しては2.11式は解をもたない.

$A$ が 3 x 2 行列の場合、$x$ を $\mathbb{R^2}$ 内で動かすと、 $b$$\mathbb{R}^3$ 内の平面上を動く (p.38)

例) 3 x 2 行例のケースで考える.

$$\begin{bmatrix} a_{1,1} & a_{1,2} \ a_{2,1} & a_{2,2} \ a_{3,1} & a_{3,2} \end{bmatrix} \begin{bmatrix} x_1 \ x_2 \end{bmatrix} = \begin{bmatrix} b_1 \ b_2 \ b_3 \end{bmatrix}$$

$\mathbf{a_1} = \left[a_{1,1}, a_{2,1}, a_{3,1}\right]^{t}, \mathbf{a_2} = \left[a_{1,2}, a_{2,2}, a_{3,2}\right]^{t}$ とおくと、 $$\mathbf{b}=\sum_jx_j\mathbf{a_j}$$ と表せるので、 $\mathbf{b}$$\mathbf{a_1}$$\mathbf{a_2}$ が張る空間上を動く. 2つのベクトルの一次結合によって貼られる空間は平面である.

ノルム

$L^2$ ノルムの二乗の各要素 $x_i$ での微分は、$x_i$ にのみ依存するため、数学的にも計算的も扱いやすい (p.39)

$L^2$ ノルムの二乗は $$|\mathbf{x}|^2 = \sum_i |x_i|^2$$ と表せるので、両辺を $x_i$ で偏微分すると、 $$ \frac{|\mathbf{x}|^2}{\partial{x_i}} = \frac{\sum_j |x_j|^2}{\partial{x_i}} = 2x_i $$ となり、 $x_i$ のみに依存する. 一方で、$L^2$ ノルムを $x_i$ で偏微分すると、 $$ \frac{|\mathbf{x}|}{\partial{x_i}} = \frac{\sqrt{\sum_j |x_j|^2}}{\partial{x_i}} = \frac{x_i}{\sqrt{\sum_j |x_j|^2}} $$

となり、 $x_i$ 以外の要素にも依存している.

$L^2$ ノルムの二乗は原点の近くで非常にゆっくりと増加するため、多くの文脈で望ましくない場合がある (p.39)

$L^2$ノルムの二乗の $x_i$ での偏微分は、 $2x_i$ に等しく、原点に近づくほど変化率が少なくなる. なお、 $\mathbf{x}$ が二次元の場合、 $y=x_1^2 + x_2^2$ のグラフは放物面を描く.

一方、$L^1$ノルムの $x_i$ での偏微分は、 $1$ or $-1$ に等しく、$\mathbf{x}$ のどの点においても一定である.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment