scikit-learnとTFによる実践機械学習4.1-4.2 / Hands-On Machine Learning with Scikit-Learn and TensorFlow 4.1-4.2

scikit-learnとTFによる実践機械学習4.1-4.2 / Hands-On Machine Learning with Scikit-Learn and TensorFlow 4.1-4.2

2018年6月15日
「scikit-learnとTensorFlowによる実践機械学習輪読会#4」にて発表
https://data-refinement.connpass.com/event/91067/

E9bfb4b63d4b9d328917d19b33d30bc5?s=128

Linus_MK

June 15, 2018
Tweet

Transcript

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

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

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

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

  5. 線形回帰モデル = 0 + 1 1 + 2 2 +

    ⋯ + = T ⋅ = ℎ () yの予測値 仮説関数
  6. 線形回帰モデルを訓練する 性能指標として一般的なのは RMSE(二乗平均平方根誤差) RMSEの最小化 ⇔MSE (平均二乗誤差)の最小化 MSE , ℎ =

    1 =1 T ⋅ − 2
  7. 正規方程式 が最小となるθを求めたい 実は、このようなθは正規方程式 = T ⋅ −1 ⋅ T ⋅

    で求まる。 MSE , ℎ = 1 =1 T ⋅ − 2
  8. 計算例 = 4 + 31 + ガウスノイズ(正規分布)

  9. 正規方程式の計算量と問題点 正規方程式 = T ⋅ −1 ⋅ T ⋅ 問題点

    • n(特徴量の数)が大きいと計算時間がかかる • 全てのインスタンスのデータをメモリに乗せる必要 →正規方程式を解けないときは勾配降下法が使える。 n次正方行列
  10. 目次 4.1 線形回帰 4.2 勾配降下法

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

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

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

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

    使って学習する
  15. バッチ勾配降下法 降下方向(勾配)を求めるために各変数で偏微分 MSE = 1 =1 T ⋅ − 2

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

    − ⋅ MSE 学習率
  17. バッチ勾配降下法と学習率

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

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

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

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

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