scikit-learnとTFによる実践機械学習4.1-4.2 / Hands-On Machine Learning with Scikit-Learn and TensorFlow 4.1-4.2
by
Linus_MK
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 反復的に計算する(勾配降下法) バッチ勾配降下法 確率的勾配降下法 ミニバッチ勾配降下法