Top Banner
114

【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Apr 14, 2017

Download

Technology

Shuntaro Tamura
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎
Page 2: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

機械学習と線形代数の基礎

株式会社シロク エンジニア 田村俊太郎

Page 3: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

アウトライン 1. 田村自己紹介 2. 機械学習 3. 線形代数 4. まとめ

Page 4: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

田村自己紹介

Page 5: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

(株)シロク エンジニア  

田村俊太郎 (25)  あだ名は「たむしゅん」

■学生時代1番頑張ったこと   全ての両立、全てに本気   (サークル7個、塾講師、大学の研究)  

受験数学 テニス  サッカー  合気道 等

線形代数

■経歴   2014年3月:東京大学大学院修了   2014年4月:(株)サイバーエージェント入社   2014年8月:(株)シロク出向  

【Qiita】  h0p://qiita.com/shuntaro_tamura  【ブログ】  h0p://ameblo.jp/tamutamu1990/  

大学教授  塾講師  就職  

エンジニア

Page 6: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

アウトライン 1. 田村自己紹介 2. 機械学習 3. 線形代数 4. まとめ

Page 7: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

機械学習とは?

Page 8: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「機械」が「学習」すること

Page 9: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「機械」が「学習」すること コンピュータ

過去のデータの中から、問題を解くための規則性を見つけさせる

Page 10: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「機械」が「学習」すること コンピュータ

過去のデータの中から、問題を解くための規則性を見つけさせる

検索エンジン、天気予報、  スパムメール検出、  画像認識、医療診断、  顧客セグメンテーション など

▼応用例

Page 11: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

機械学習の種類

Page 12: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

Page 13: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

(例)乳がんの予測 (  :良性  :悪性)

年齢

腫瘍の大きさ

Page 14: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

(例)乳がんの予測 (  :良性  :悪性)

年齢

腫瘍の大きさ

Page 15: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

(例)乳がんの予測 (  :良性  :悪性)

→  良性?  or  悪性? 年齢

腫瘍の大きさ

Page 16: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

(例)Google  Newsの記事分類

大量の記事データ

Page 17: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

(例)Google  Newsの記事分類

大量の記事データ エンタメ スポーツ

テクノロジー

Page 18: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

必ずどちらかに 分類されるか?

Page 19: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

必ずどちらかに 分類されるか?

No

Page 20: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

中間的手法

Page 21: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

教師あり学習 教師なし学習

正解のあるデータから規則性を見つける

正解のないデータから規則性を見つける

中間的手法

半教師あり学習

強化学習 深層学習  Deep  Learning

Page 22: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

半教師あり学習  正解ありデータ + 正解なしデータ 強化学習  試行錯誤から規則性を見つける   深層学習(Deep Learning)  特徴量(Feature)の自動抽出

高コスト

(例)Deep  Q  Network  によるブロック崩し

(例)IBM  Watson、Googleの猫  

Page 23: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

実際に、実装してみた!

Page 24: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

【環境構築】

Mac OS Xに Python(Anaconda)

をインストール

Page 25: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

★Anaconda → h0p://conQnuum.io/downloads#all  

Page 26: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

★Anaconda → h0p://conQnuum.io/downloads#all  

Page 27: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

$ python -V Python 2.7.10 :: Anaconda 2.3.0 (x86_64) → Anaconda、無事入った。

Page 28: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Python(Anaconda) を選んだ理由

Page 29: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Python vs R ●Pythonのメリット(vs R) 数学、機械学習系のライブラリが豊富 言語として拡張性に富む 他言語との連携がしやすい 動作が速い ●Rのメリット(vs Python) 非エンジニアに取っ付きやすい

Page 30: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Python vs R ●Pythonのメリット(vs R) 数学、機械学習系のライブラリが豊富 言語として拡張性に富む 他言語との連携がしやすい 動作が速い ●Rのメリット(vs Python) 非エンジニアに取っ付きやすい

メリットが  大きい

Page 31: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

$ ipython notebook →ブラウザが立ち上がる →対話的にPython実行が可能

Page 32: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Pythonを使って データ分析する流れ

Page 33: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

①データの取得    ②データの加工その1    ③機械学習、データ分析    ④データの加工その2    ⑤可視化   

Page 34: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

①データの取得   API・Webから取得、CSV、SQLなど ②データの加工その1   numpy や pandas などを使った行列計算 ③機械学習、データ分析   scikit learn を使って分析 ④データの加工その2   numpy や pandas などを使って整形 ⑤可視化   matplotlib を使って表現

データ→行列の形で保持

Page 35: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

①データの取得   

Page 36: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

①データの取得 ↓

irisデータ

Page 37: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

150個の事前データ from sklearn import datasets iris = datasets.load_iris() X = iris.data  ←入力データ Y = iris.target ←正解データ(教師あり学習)

5.1, 3.5, 1.4, 0.2, setosa4.9, 3.0, 1.4, 0.2, setosa (中略)7.0, 3.2, 4.7, 1.4, versicolor (中略)6.3, 3.3, 6.0, 2.5, virginica

左から順に、  ・がく片の長さ(cm)  ・がく片の幅(cm)  ・花びらの長さ(cm)  ・花びらの幅(cm)  ・正解の品種(3種類)  

Page 38: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

取得したデータの可視化(matplotlib)

Page 39: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

②データの加工その1 ↓ (済)

Page 40: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

③機械学習、データ分析      

Page 41: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

③機械学習、データ分析 ↓

ロジスティック回帰 k-近傍法

Page 42: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

ロジスティック回帰 from sklearn.linear_model import LogisticRegression logit= LogisticRegression() logit.fit(X,Y) → 学習完了

Page 43: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

ロジスティック回帰 from sklearn.linear_model import LogisticRegression logit= LogisticRegression() logit.fit(X,Y) → 学習完了 → 入力データ(4値)を突っ込んでみると、   正解を予測してくれる! print(logit.predict_proba([5.1, 3.5, 1.4, 0.2])) → setosa:88% versicolor:12% virginica:0%

Page 44: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

k-近傍法 from sklearn.neighbors import KNeighborsClassifier k = 5 knn = KNeighborsClassifier(k) knn.fit(X,Y) → 学習完了

Page 45: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

k-近傍法 from sklearn.neighbors import KNeighborsClassifier k = 5 knn = KNeighborsClassifier(k) knn.fit(X,Y) → 学習完了 → 入力データ(4値)を突っ込んでみると、   正解を予測してくれる! print(logit.predict_proba([5.1, 3.5, 1.4, 0.2])) → setosa:100% versicolor:0% virginica:0%

Page 46: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Cross Validation を用いて モデルの性能を評価

Page 47: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

ロジスティック回帰の性能評価 from sklearn.linear_model import LogisticRegression from sklearn import cross_validation cv = 10 logit= LogisticRegression() scores =    cross_validation.cross_val_score(logit,X,Y,cv=cv) print(sum(scores)/cv) → 正解率:95%

データセットを10等分し、9割のデータを用いて学習。   → 残り1割の正解率で評価。   → 10回繰り返し、平均をとる。

Page 48: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

k-近傍法の性能評価 from sklearn.linear_model import LogisticRegression from sklearn.neighbors import KNeighborsClassifier k = 1 knn = KNeighborsClassifier(k) cv=10 scores =   cross_validation.cross_val_score(knn,X,Y,cv=cv) print(sum(scores)/cv) → 正解率:96%

万能なアルゴリズムは存在しない。  問題に応じて適切なものを選択し、使う。

Page 49: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

④データの加工その2 ⑤可視化

Page 50: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

いずれもk-近傍法を可視化。(コード30行弱) 左図:がく片を特徴量(Feature)にした → 73% 右図:花びらを特徴量(Feature)にした → 97% Featureが大事。アルゴリズムの精度に大きく影響。

Page 51: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

まとめ ・教師あり学習と教師なし学習の違い:正解の有無 ・強化学習:試行錯誤から規則性を見つける ・Deep Learning:Feature(特徴量)の自動抽出 ・Pythonで実装:Anaconda入れておけばOK ・CrossValidationで性能評価 ・万能なアルゴリズムは存在しない ・Featureが大事

Page 52: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

アウトライン 1. 田村自己紹介 2. 機械学習 3. 線形代数 4. まとめ

Page 53: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

線形代数とは?

Page 54: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「線形」な「代数」学のこと

Page 55: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「線形」な「代数」学のこと

一次式で表せるような関係

「集合」(元の集まり) と「演算」により定義 された構造の学問

直線

半群・群・環・体・束など。  

Page 56: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「線形」な「代数」学のこと

一次式で表せるような関係

「集合」(元の集まり) と「演算」により定義 された構造の学問

直線 画像処理、座標変換、  検索エンジン、量子力学、  連立方程式の解法、統計学、  回路学、制御論、機械学習 など

▼応用例

半群・群・環・体・束など。  

Page 57: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「代数」って何? 「線形」もなんだかよくわからない。

Page 58: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

「代数」って何? 「線形」もなんだかよくわからない。

↓ 「行列計算」を扱う学問

Page 59: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行列とは?

Page 60: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行列とは?

Page 61: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行列とは?

ではなく、

Page 62: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

長方形状に数字を並べたもの。

2 22 6

!

"#

$

%&

3 2 5 1 10 5 2 2 60 0 8 1 3

!

"

###

$

%

&&&

1 0 00 1 00 0 1

!

"

###

$

%

&&&

Page 63: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

言葉の定義

Page 64: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行ベクトル:成分を横に並べて書いたベクトル 列ベクトル:成分を縦に並べて書いたベクトル 成分:ベクトルに含まれる各々の数 次元:ベクトルの成分の個数 行列:数(=成分)を長方形状に並べたもの

Page 65: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行ベクトル:成分を横に並べて書いたベクトル 列ベクトル:成分を縦に並べて書いたベクトル 成分:ベクトルに含まれる各々の数 次元:ベクトルの成分の個数 行列:数(=成分)を長方形状に並べたもの

2 5( )324

!

"

###

$

%

&&&

行ベクトル。2次元。

列ベクトル。3次元。

Page 66: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行ベクトル:成分を横に並べて書いたベクトル 列ベクトル:成分を縦に並べて書いたベクトル 成分:ベクトルに含まれる各々の数 次元:ベクトルの成分の個数 行列:数(=成分)を長方形状に並べたもの

2 5( )324

!

"

###

$

%

&&&

行ベクトル。2次元。

列ベクトル。3次元。

成分

Page 67: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行ベクトル:成分を横に並べて書いたベクトル 列ベクトル:成分を縦に並べて書いたベクトル 成分:ベクトルに含まれる各々の数 次元:ベクトルの成分の個数 行列:数(=成分)を長方形状に並べたもの

2 5( )324

!

"

###

$

%

&&&

行ベクトル。2次元。

列ベクトル。3次元。

成分

1 2 34 5 6

!

"#

$

%& 2行3列の行列(2  x  3  行列)

Page 68: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行ベクトル:成分を横に並べて書いたベクトル 列ベクトル:成分を縦に並べて書いたベクトル 成分:ベクトルに含まれる各々の数 次元:ベクトルの成分の個数 行列:数(=成分)を長方形状に並べたもの

2 5( )324

!

"

###

$

%

&&&

行ベクトル。2次元。

列ベクトル。3次元。

成分

1 2 34 5 6

!

"#

$

%&

行列の「型」

2行3列の行列(2  x  3  行列)

Page 69: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行と列の覚え方

Page 70: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

Page 71: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

Page 72: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

Page 73: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

Page 74: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

第    1  列  

Page 75: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

第    1  列  

第    2  列  

Page 76: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

第    1  列  

第    2  列  

第    3  列  

Page 77: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

第    1  列  

第    2  列  

第    3  列  

2行3列の行列(2  x  3  行列)

Page 78: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

第    1  列  

第    2  列  

第    3  列  

2行3列の行列(2  x  3  行列)

(1,  1)成分 → 1  

Page 79: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行 列

… 横の並び

… 縦の並び

1 2 34 5 6

!

"#

$

%&

第1行

第2行

第    1  列  

第    2  列  

第    3  列  

2行3列の行列(2  x  3  行列)

(1,  1)成分 → 1  (1,  2)成分 → 2  (1,  3)成分 → 3  (2,  1)成分 → 4  (2,  2)成分 → 5  (2,  3)成分 → 6  

Page 80: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行列の和・差・スカラー倍

Page 81: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

a bc d

!

"#

$

%&+

x yz w

!

"##

$

%&&=

a+ x b+ yc+ z d +w

!

"##

$

%&&

a bc d

!

"#

$

%&−

x yz w

!

"##

$

%&&=

a− x b− yc− z d −w

!

"##

$

%&&

k a bc d

!

"#

$

%&= ka kb

kc kd

!

"#

$

%&

和・差・スカラー倍の次のように定義される

Page 82: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

a bc d

!

"#

$

%&+

x yz w

!

"##

$

%&&=

a+ x b+ yc+ z d +w

!

"##

$

%&&

a bc d

!

"#

$

%&−

x yz w

!

"##

$

%&&=

a− x b− yc− z d −w

!

"##

$

%&&

k a bc d

!

"#

$

%&= ka kb

kc kd

!

"#

$

%&

a b cd e f

!

"##

$

%&&+

x yz w

!

"##

$

%&& →定義されない

和・差・スカラー倍の次のように定義される 和・差は「型」が同じ時のみ定義される

Page 83: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行列の積

Page 84: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

と、なるのでは…?

a bc d

!

"#

$

%&

x yz w

!

"##

$

%&&=

ax bycz dw

!

"##

$

%&&

Page 85: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

と、なるのでは…?

a bc d

!

"#

$

%&

x yz w

!

"##

$

%&&=

ax bycz dw

!

"##

$

%&&

Page 86: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

積 AB は次のように定義される ①Aの列数とBの行数が等しい時のみ定義される。

A B A B

Page 87: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

積 AB は次のように定義される ①Aの列数とBの行数が等しい時のみ定義される。

A B A B

Page 88: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

積 AB は次のように定義される ①Aの列数とBの行数が等しい時のみ定義される。

A B A B

Page 89: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

積 AB は次のように定義される ①Aの列数とBの行数が等しい時のみ定義される。 ②C=ABの時、Cの(i, j)成分は   Aの第 i 行ベクトルとBの第 j 列ベクトルの積  とする。 ベクトルの内積!!!  

A B 第i行  

第j列  

Cij = の内積  

Cの(i,  j)成分  

Page 90: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

積 AB は次のように定義される ①Aの列数とBの行数が等しい時のみ定義される。 ②C=ABの時、Cの(i, j)成分は   Aの第 i 行ベクトルとBの第 j 列ベクトルの積  とする。 ③Aが l x m 行列  Bが m x n 行列の時、  C=ABは l x n 行列。

ベクトルの内積!!!  ①より、等しい

a bc de f

!

"

###

$

%

&&&

xy

!

"##

$

%&&=

ax + bycx + dyex + fy

!

"

####

$

%

&&&&

3x2 2x1 3x1

Page 91: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行ベクトルと列ベクトルの積 行列の積

a b( ) xy

!

"##

$

%&&= ax + by

a bc d

!

"#

$

%&

x yz w

!

"##

$

%&&=

a b( ) xz

!

"##

$

%&& a b( ) y

w

!

"##

$

%&&

c d( ) xz

!

"##

$

%&& c d( ) y

w

!

"##

$

%&&

!

"

######

$

%

&&&&&&

=ax + bz ay+ bwcx + dz cy+ dw

!

"##

$

%&&

内積  

Page 92: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

行列の積の性質 ①交換法則は一般には成り立たない   AB≠BA ②零因子の存在   A≠OかつB≠Oでも、AB=Oとなりうる

a b( ) xy

!

"##

$

%&&= ax + by

xy

!

"##

$

%&& a b( ) = xa xb

ya yb

!

"##

$

%&&

1 2( ) −21

"

#$

%

&'=1*(−2)+ 2*1= 0

Page 93: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

その他の行列の性質

Page 94: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

①行列に割り算は存在しない ②単位行列 ③零行列 ④逆行列 ⑤転置行列

IAI = IA = A

OAO =OA =O

AA−1 = A−1A = IA−1

AT

Aij = AjiT

Page 95: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

①行列に割り算は存在しない ②単位行列 ③零行列 ④逆行列 ⑤転置行列

I2 =1 00 1

!

"#

$

%&, I3 =

1 0 00 1 00 0 1

!

"

###

$

%

&&&

IAI = IA = A

OAO =OA =O

O2,2 =0 00 0

!

"#

$

%&,O3,3 =

0 0 00 0 00 0 0

!

"

###

$

%

&&&

AA−1 = A−1A = IA−1

AT

Aij = AjiT

A = 1 00 2

!

"#

$

%&,B =

1 00 1

2

!

"##

$

%&&

⇒ AB = BA = I

A = 1 2 34 5 6

!

"#

$

%&⇔ AT =

1 42 53 6

!

"

###

$

%

&&&

Page 96: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

⑥トレース(trace)、行列式(determinant) ⑦固有値 ・固有ベクトル

Ax = λx(x ≠ 0)λ x

A = a bc d

!

"#

$

%&

Tr(A) = a+ d, det(A) = ad − bc

Page 97: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

⑥トレース(trace)、行列式(determinant) ⑦固有値 ・固有ベクトル

Ax = λx(x ≠ 0)λ x

A = a bc d

!

"#

$

%&

Tr(A) = a+ d, det(A) = ad − bc ac

!

"#

$

%&

bd

!

"#

$

%&

対角成分の和

平行四辺形の面積

Page 98: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

⑥トレース(trace)、行列式(determinant) ⑦固有値 ・固有ベクトル

Ax = λx(x ≠ 0)λ x

A = a bc d

!

"#

$

%&

Tr(A) = a+ d, det(A) = ad − bc ac

!

"#

$

%&

bd

!

"#

$

%&

対角成分の和

平行四辺形の面積

座標変換

x

y

O

行列Aを左から掛ける  

Page 99: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

⑥トレース(trace)、行列式(determinant) ⑦固有値 ・固有ベクトル

Ax = λx(x ≠ 0)λ x

A = a bc d

!

"#

$

%&

Tr(A) = a+ d, det(A) = ad − bc ac

!

"#

$

%&

bd

!

"#

$

%&

対角成分の和

平行四辺形の面積

座標変換

x

y

O

行列Aを左から掛ける  

定数倍変換 A x = xλ

Page 100: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

アウトライン 1. 田村自己紹介 2. 機械学習 3. 線形代数 4. まとめ

Page 101: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

今日のまとめ

Page 102: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

機械学習 ・教師あり学習と教師なし学習の違い:正解の有無 ・強化学習:試行錯誤から規則性を見つける ・Deep Learning:Feature(特徴量)の自動抽出 ・Pythonで実装:Anaconda入れておけばOK ・CrossValidationで性能評価 ・万能なアルゴリズムは存在しない ・Featureが大事 線形代数 ・行列の積、交換可能性、零因子 ・単位行列、零行列、逆行列、転置行列 ・トレース、行列式、固有値、固有ベクトル

Page 103: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

おすすめ書籍・サイト

Page 104: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

通称:PRML、黄色本

Page 105: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

Andrew Ng先生の動画 (Coursera)

Page 106: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

代数系についてわかりやすく解説

Page 107: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

初学者におすすめ

Page 108: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

もっと勉強したい人におすすめ

Page 109: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

数値計算をわかりやすく解説

Page 110: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

次回予告

Page 111: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎
Page 112: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

8/26(水) 19:00-21:00 ソーシャルゲームの行動解析

@プライムプラザ4F

Page 113: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎

8/26(水) 19:00-21:00 ソーシャルゲームの行動解析

@プライムプラザ4F

乞うご期待!!

Page 114: 【SIROK技術勉強会 #4】機械学習と線形代数の基礎