GMOペパボ新卒研修2020 機械学習入門 補足資料#04 #05
1正則化と ロジスティック回帰 ペパボ研究所 財津大夏 新卒研修 機械学習入門 補足資料 #04 #05
View Slide
22正則化 ロジスティック回帰
3正則化 Section 1 3Regularization
4Machine Learning Crash Course says...4> this generalization curve shows that the model is overfitting to the data in thetraining set. > we could prevent overfitting by penalizing complex models, a principle calledregularization. Regularization for Simplicity - Machine Learning Crash Course
5回帰におけるモデルの複雑度5特徴量が1次元のデータセット - モデル(線形関数)は直線 - 既知のデータをそこそこ説明出来る - 未知のデータに頑健 - モデルの複雑度が低い
6回帰におけるモデルの複雑度6特徴量が多次元のデータセット - データ数 < 特徴量の次元数の場合既知のデータを完全に説明できる - 未知のデータに脆弱 - モデルの複雑度が高い Overfitted Data.png - Wikimedia Commons
7特徴量が多次元のデータセットの回帰7Boston Housing データセット - データポイント506個 - 特徴量13個 - Feature Crossで103個に - training loss が下がっている - 既知のデータを推論できる - validation loss が上がっている - 未知のデータを推論できない パラメータが過剰適合(過学習)した 汎化性能が低いモデル
8正則化 8
9過学習を防ぐためのアプローチ9- 過学習したモデルはトレーニングデータに過剰適合したパラメータを持つ - 誤差関数にトレーニングデータ以外の制約を加えて過学習を防ぐ - 特徴量のパラメータ自体を小さくするように学習させる - パラメータの大きさはノルムで表現できる w1 w2 L1ノルム L2ノルム n=2 のとき
10誤差関数にパラメータのノルムを加える10- 誤差関数に制約条件を加える a. トレーニングデータに対する推論の誤差を小さくする(既存の条件) b. パラメータのノルムを小さくする - 個別の特徴量が出力に与える影響が小さくなる - トレーニングデータに対する性能が下がるが汎化性能が上がる - L2ノルムで正則化するとリッジ回帰(Ridge Regression) - L1ノルムで正則化するとラッソ回帰(Lasso Regression) 制約条件a 制約条件b
11L2正則化した誤差関数の導関数11
12L2正則化による誤差とパラメータの分布の変化12
13L1正則化による誤差とパラメータの分布の変化13
14まとめ- 正則化によりモデルの複雑度を下げて汎化性能を上げる - L2正則化とL1正則化 - L2正則化 - パラメータの絶対値が小さくなる - 解析的に解ける(微分可能) - L1正則化 - パラメータの一部が0になる - 特徴量選択に利用できる - 解析的に解けないので推定で求める - L2正則化とL1正則化を組み合わせた ElasticNet もある - いずれかの正則化が常に優れているということはない 14
15ロジスティック回帰 Section 2 15Logistic Regression
16- y' と x の間に線形関係を仮定 - 数値データから数値データを 推論するのが線形回帰 線形回帰のおさらい16
17線形回帰の拡張17現実にはカテゴリデータの y が存在 - 犬が吠える/吠えない - 都道府県 機械学習ではカテゴリデータを マッピングした数値データを扱う - 犬が吠える/吠えない = 1/0 - 都道府県 = 0 ~ 46
18カテゴリデータをマッピングした y を線形回帰すると...18都道府県 { y ∈ N | 0 ≦ y ≦ 46 } の場合 x の値によって y' ≧ 47 になる - カテゴリデータ y の値は x の値により線形に変化しない - カテゴリデータをマッピングした 数値に数値としての意味はない - カテゴリデータは線形回帰できない
19やりたいこと19カテゴリデータで表現される y を推論したい ロジスティック回帰の方針 1. 事象が起きる確率 p を出力する 2. p を任意の閾値と比較することで y' を推論する
20やりたいこと20線形回帰の出力である実数を確率にしたい ロジスティック関数 g(x) を使って実数 x を 0 < g(x) < 1 に押し込める
21シグモイド関数21- ロジスティック回帰の出力である確率 - 0から1の範囲を取る値 - ロジスティック関数の x に線形回帰の y'をとったもの - 閾値と比較して分類に用いる - 閾値0.5, p=0.8のときの推論は 「犬が吠える」 Logistic-curve.png - Wikimedia Commons
22ロジスティック回帰の誤差関数(1)22- ロジスティック回帰の y はカテゴリデータ - y の変化量が定まらないので最小二乗法が使えない - 数値 x が1変化した時のカテゴリ y の変化量? - 二値のカテゴリ変数は確率変数 k をとるベルヌーイ分布に従う - 「ある事象が起きる」/「起きない」 - 多値分類の場合はある値とそれ以外の値の二値分類の組み合わせ
23ロジスティック回帰の誤差関数(2)23- 最小二乗法ではなく最尤法を使う - 最も尤もらしい確率分布を求める - パラメータθに従う確率分布にデータが従っている度合いが尤度 - 尤度関数 L(θ) の対数を取って和の形にする(対数尤度関数)
24まとめ24- ロジスティック回帰ではカテゴリデータを扱うために線形回帰を拡張する - 線形回帰の出力をロジスティック関数で変換して確率として扱う - ロジスティック関数の x に線形回帰の出力を取るシグモイド関数 - 出力される確率に閾値を定めて分類問題に利用する - ロジスティック回帰のパラメータθは最尤法により求める - 数値 x が1変化した時のカテゴリ y の変化量を求めづらいため - 機械学習では負の対数尤度を誤差として利用する