[DL輪読会]Deep Learning 第2章 線形代数

112 Views

June 01, 18

スライド概要

2017/11/06
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Deep Learning 輪読会 2017 第2章 線形代数 東京大学 2017.11.06 松尾研究室 リサーチエンジニア 曽根岡侑也

2.

構成 2章 線形代数 2.1 スカラー, ベクトル, 行列, テンソル 2.7 固有値分解 2.2 行列とベクトルの乗算 2.8 特異値分解 2.3 単位行列と逆行列 2.9 ムーア・ペンローズ擬似逆行列 2.4 線形従属とスパン 2.10 トレース演算子 2.5 ノルム 2.11 行列式 2.6 特殊な行列とベクトル 2.12 例:主成分分析

3.

はじめに • 前章までの議論:DeepLearningの立ち位置とその歴史 – 機械学習・表現学習などから見たDeepLearningの立ち位置 – DeepLearningが注目されるまでの歴史ときっかけ • 本章の議論:深層学習の理解に必要な線形代数 - 行列の基礎、演算、ノルム - 固有値分解・特異値分解 - 行列式・トレース演算子 - 基礎知識を用いた主成分分析の導出

4.

2.1 スカラ, ベクトル, 行列, テンソル • スカラ:単一の数 (表記:イタリックの小文字 s) - 定義するときはどんな種類なのか(実数, 自然数等)を明示する • ベクトル:数値の配列(表記:イタリックの太字の小文字 x) - 順番に対応したインデックスを用いて個々の要素を表す - 格納できる数値の種類も明示する R n - ベクトル自体は右のような列で書き表す - ベクトルは空間上の点を表しているとみなせる x1 x2

5.

2.1 スカラ, ベクトル, 行列, テンソル • 行列:2次元の数値配列(表記:イタリックの太字の大文字 A) - 格納できる数値の種類と高さや幅も明示する A ∈R m×n - 行と列のインデックスで要素を表す Am,n - 要素を明示的に書くときは右のようになる • テンソル:3つ以上軸を持つ配列(表記:太字の大文字 A) - 同様にインデックスで要素を表す A m,n,l - 軸の数が可変

6.

2.1行列の演算 • 転置:対角線上で鏡像にあたる行列 • 可算:要素ごとの足し算 - 同じ形の行列は要素同士の足し合わせができる ただし、 • ブロードキャスティング:行列とベクトルの加算方法 - 行列とベクトルの加算が可能で、bを各行に追加する

7.

2.2 行列とベクトル演算 • 行列の積:2つの行列の掛け算 - Aの列数とBの行数が同じ必要がある - 線形方程式を下記のように書き表すことができる • アダマール積:要素ごとの積 - 同じ形をしている必要がある

8.

2.2 行列の積の法則 • 分配法則:満たしている • 結合法則:満たしている • 交換法則:満たさない は必ず成立するわけではない

9.

2.3 単位行列と逆行列 • 単位行列:対角線の要素が1でそれ以外は全て0となっている行列 - 任意のベクトルに掛け合わせても変化させないような行列 (例) • 逆行列:ある行列に掛け合わせると単位行列が得られる行列 - 必ず存在するわけではないが、存在する場合求める計算方法がある - これを用いることで線形方程式を解くことができる ⇒

10.

2.4 線形従属とスパン • Aの逆行列を持つためには - どんなbに対しても解が1つだけである - 連立方程式の解がない or 無限にある では✕ • 線形結合:ベクトルの線形和 - Ax は 下記のようにAの列ベクトルをスカラー倍して足し合わせ • スパン(列空間):行列の列ベクトルの線形結合でカバーされている空間 - a の全てで解を持つには、Aのスパンが になる必要がある

11.

2.4 線形従属とスパン • 線形独立 - ベクトルの集合において、どのベクトルも他のベクトルの線形結合で 作ることができない状態 - できる状態を線形従属といい、その正方行列を特異という • Aが逆行列を持つために必要十分条件 - 正方行列 - 全ての列が線形独立なベクトルを持つこと

12.

2.5 ノルム • ノルム:ベクトルの大きさ Lp - ベクトルを非負の値に写像する関数で原点から点xまでの距離 • ノルムの性質

13.

2.5 ノルム • L2ノルム:ユークリッドノルム - 原点からxまでのユークリッド距離と同値 - 計算的に扱いやすい二乗の値を使うこともよくある • L1ノルム - 機械学習ではゼロと非ゼロを区別することが重要なことがあり、 数学的な単純性を保持したL1ノルムも使うことが多い • 最大値ノルム - 要素の最大値を取る

14.

2.5 行列のノルム • フロベニウスノルム - 行列のサイズでよく使う、L2ノルムに近いノルム • ノルムによるベクトルの内積表現 - 下記で表すことができる

15.

2.6 特殊な行列とベクトル • 対角行列:対角線上以外は0な行列 - 単位行列は全ての対角成分が1の対角行列 - ベクトルvが対角成分のものを と書き、計算効率がいい - 正方行列である必要はないが、その場合逆行列を持たない • 対称行列: 転置行列が元の行列と同じもの - 2つの引数を取る関数によって作られるもので出てくる(ex:距離) • 単位ベクトル:L1ノルムが1 • 直交:ベクトルの内積が0 - 互いに90度の角度である - ベクトルが単位ベクトルのとき正規直交という

16.

2.6 特殊な行列とベクトル • 直交行列 - 正方行列で、その行も列も互いに正規直交となる行列 - 逆行列は転置行列になるため簡単に計算ができる

17.

2.7 固有値分解 • 数学では対象を構成部分に分解することで扱いやすくすることが多い • 固有ベクトル v:Aをかけた時に縮尺のみ変化する非ゼロベクトル • 固有値 λ:固有ベクトルに対応するスカラー値 - 固有ベクトルの実数値倍したものも固有ベクトルになので 単位ベクトルのみを使用する

18.

2.7 固有値分解 • 固有値分解:行列を固有ベクトルと固有値の集合に分解 - n個の線形独立な固有ベクトルを列ごとに連結した行列 - 固有値を連結したベクトル • 実対称行列:実数値だけからなる固有ベクトルと固有値で分解できる - Q:Aの固有ベクトルからなる著効行列 - Λ:対角行列

19.

2.7 固有値分解 • 行列Aは固有ベクトル方向に固有値分だけ空間を縮小拡大だけ演算

20.

2.7 固有値分解 • 固有値分解の活用方法 - 固有値のいずれかがゼロ - → 行列は特異 の場合、 • 正定値:固有値が全て正の行列 • 半正定値:固有値が正又はゼロの行列 - が保証されている • 負定値:固有値が全て府の行列 • 半負定値:固有値が負又はゼロの行列 を最適化できる

21.

2.8 特異値分解 • 特異値分解(SVD):特異ベクトルと特異値に分解 - 実行列は全て特異値分解を持つが、固有値分解はそうでもない - Aが m ✕ n 行列のとき • U:m ✕ mの行列で、 各列は左特異ベクトルと呼ぶ • D:m ✕ nの対角行列で、対角成分は特異値と呼ばれる • V:n ✕ n の行列で、各列は右特異ベクトルと呼ぶ • UとVは直交行列 - 左特異ベクトルは 右特異ベクトルは の固有ベクトルで、 の固有ベクトル

22.

2.9 ムーア・ペンローズ擬似逆行列 • ムーア・ペンローズ擬似逆行列: - 非正方行列において逆行列は一意に得られないことがある - 下記の近似で擬似逆行列を得ることができる • 行 > 列の:解が存在しない可能性があるが、最も近いxが得られる • 列 > 行:解のうちの1つを得ることができる - 実際の計算は下記のアルゴリズムで行う • D+:特異値分解の対角行列Dの疑似逆行列 (非ゼロ成分の逆数を求めた結果の行列を転置)

23.

2.10 トレース演算子 • トレース演算子:対角成分の総和を得る演算子 • トレース演算子の性質 - フロベニウスノルムで利用可能 - 転置行列で不変 - 積の循環置換が可能(形式によらず)) - スカラーは不変

24.

2.11 行列式 • 行列式:行列を実数値のスカラーに写像する関数 - 行列全ての固有値の積に等しい - 行列式の絶対値 = 行列の乗算で空間がどれだけ拡大縮小するかの尺度 • 行列式 = 0:少なくとも1つの次元で完全に縮小 • 行列式 = 1:体積が保存

25.

2.12 例:主成分分析 • 有名な機械学習アルゴリズムの1つで線形代数のみで導出可能 • 目標:n次元のm個の点の集まりを出来る限り精度を保って不可逆圧縮を行う - 符号化関数 に対して、 を見つける(l < n) と復号化関数 を作る • PCA:復号化器を行列の乗算を用いて行う - 「Dの列が互いに直行する」「列が単位ノルムを持つ」条件でDを求める ただし、

26.

2.12 例:主成分分析 • 符号化点 cの求め方 - 復号化器で再構成したものと入力 x のL2ノルムの二乗を最小化 (分配法則) (置き換え) (Dの直交性と単位ノルム) - cについて微分して最小とするcをもとめる Dの転置が符号化の最適解

27.

2.12 例:主成分分析 • 符号化関数と再構成演算の定義 • 符号化行列Dの求め方 - 復号化器で再構成したものと全入力 x の誤差を最小化する

28.

2.12 例:主成分分析 • l = 1の場合:第一主成分のみ再構成(Dはベクトルdとおける) (総和ではなく計画行列Xに) (トレース演算) (dを含まないところの省略) (巡回と制約) (打ち消しと反転) dの最適解は最大固有値に対応するXTXの固有ベクトル 一般解は最大固有値に対応するL個の固有ベクトルで得られる

29.

参考文献 • Deep Learning – Ian Goodfellow, Yoshua Bengio, Aaron Courville – 日本語版 – https://www.amazon.co.jp/%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92Ian-Goodfellow/dp/4048930621