Slide 1

Slide 1 text

scikit-learnとTensorFlowによる 実践機械学習 4.1 – 4.2 解説 @Linus_MK 2018年6月15日

Slide 2

Slide 2 text

自己紹介 ライナス(@Linus_MK) 業務は音声系のソフト開発 C/C++ 機械学習は学校で少しやった+趣味でやっている程度

Slide 3

Slide 3 text

目次 4.1 線形回帰 4.2 勾配降下法 ※ソースコードはスライドに掲載していませんので、本を参照ください

Slide 4

Slide 4 text

目次 線形回帰の問題を、複数の方法で解く 4.1 最適解を直接計算する 4.2 反復的に計算する(勾配降下法)

Slide 5

Slide 5 text

線形回帰モデル = 0 + 1 1 + 2 2 + ⋯ + = T ⋅ = ℎ () yの予測値 仮説関数

Slide 6

Slide 6 text

線形回帰モデルを訓練する 性能指標として一般的なのは RMSE(二乗平均平方根誤差) RMSEの最小化 ⇔MSE (平均二乗誤差)の最小化 MSE , ℎ = 1 =1 T ⋅ − 2

Slide 7

Slide 7 text

正規方程式 が最小となるθを求めたい 実は、このようなθは正規方程式 = T ⋅ −1 ⋅ T ⋅ で求まる。 MSE , ℎ = 1 =1 T ⋅ − 2

Slide 8

Slide 8 text

計算例 = 4 + 31 + ガウスノイズ(正規分布)

Slide 9

Slide 9 text

正規方程式の計算量と問題点 正規方程式 = T ⋅ −1 ⋅ T ⋅ 問題点 • n(特徴量の数)が大きいと計算時間がかかる • 全てのインスタンスのデータをメモリに乗せる必要 →正規方程式を解けないときは勾配降下法が使える。 n次正方行列

Slide 10

Slide 10 text

目次 4.1 線形回帰 4.2 勾配降下法

Slide 11

Slide 11 text

勾配降下法 1. θの初期値をランダムにとる 2. 毎ステップ、コスト関数が小さくなるように θを更新する 3. 収束したら終了

Slide 12

Slide 12 text

学習率 重要なハイパーパラメータ ×学習率が小さい 収束に時間がかかりすぎ ×学習率が大きい 収束せず発散する

Slide 13

Slide 13 text

その他の問題点 局所解への収束 台地 スケーリング問題 等高線が細長い場合は収束が遅い もっといいアルゴリズムないの? 11章で出てきます

Slide 14

Slide 14 text

3種類の勾配降下法 4.2.1 バッチ勾配降下法 全てのインスタンスに対する学習を一気に行う 4.2.2 確率的勾配降下法 一つのインスタンスだけを使って学習する 4.2.3 ミニバッチ勾配降下法 上2つの中間。一部の(複数個の)インスタンスだけを 使って学習する

Slide 15

Slide 15 text

バッチ勾配降下法 降下方向(勾配)を求めるために各変数で偏微分 MSE = 1 =1 T ⋅ − 2 MSE = 2 =1 T ⋅ − () 関数の勾配ベクトルは MSE = 2 T ⋅ ( ⋅ − )

Slide 16

Slide 16 text

バッチ勾配降下法 1. θの初期値をランダムにとる 2. 毎ステップ、コスト関数が小さくなるように θを更新する 3. 収束したら終了 (next) = − ⋅ MSE 学習率

Slide 17

Slide 17 text

バッチ勾配降下法と学習率

Slide 18

Slide 18 text

確率的勾配降下法 訓練セットの一つのインスタンスだけを 使って学習する ○非常に高速 ○アウトオブコア(=メモリに乗りきらないデータ)に対応 ・ある点で止まることがない →○局所解から脱出しやすい →×最適解に留まらない m回(インスタンスの数)を1エポックという ただしランダムに選ぶので、複数回選ばれる/ 選ばれないインスタンスがある

Slide 19

Slide 19 text

ミニバッチ勾配降下法 訓練セットの一部分のインスタンスだけを 使って学習する ○特にGPU上では、行列演算を高速化できる ・確率的勾配降下法と比べると、動きは緩やかなので →×局所解から脱出しにくい →○最適解に落ち着きやすい

Slide 20

Slide 20 text

3種類の勾配降下法の比較 https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch04.html

Slide 21

Slide 21 text

まとめ:アルゴリズムの比較 ※正規方程式は線形回帰にしか使えないが、勾配降下法 はそれ以外の最適化にも使用できる

Slide 22

Slide 22 text

まとめ 線形回帰の問題を、複数の方法で解く 4.1 最適解を直接計算する 正規方程式 4.2 反復的に計算する(勾配降下法) バッチ勾配降下法 確率的勾配降下法 ミニバッチ勾配降下法