Coursera Machine Learning
Week6
・Advice for Applying Machine Learning
・Machine Learning System Design
アジェンダ
 Week5を終えて
 Advice for Applying Machine Learning
学習アルゴリズムの評価
学習した仮説の評価
モデル選択問題
バイアスとバリアンス
 Machine Learning System Design
Skewed Data
大量のデータセット
 Week6のまとめ
アジェンダ
 Week5を終えて
 Advice for Applying Machine Learning
学習アルゴリズムの評価
学習した仮説の評価
モデル選択問題
バイアスとバリアンス
 Machine Learning System Design
Skewed Data
大量のデータセット
 Week6のまとめ
Week5までの内容
 機械学習のエキスパートといえるだけの
学習アルゴリズムを学習
最急降下法
線形回帰
ロジスティクス回帰
ニューラルネットワーク
Week5までの内容
 機械学習のエキスパートといえるだけの
学習アルゴリズムを学習
最急降下法
線形回帰
ロジスティクス回帰
ニューラルネットワーク
学習アルゴリズムを
効果的に活用できているか?
アジェンダ
 Week5を終えて
 Advice for Applying Machine Learning
学習アルゴリズムの評価
学習した仮説の評価
モデル選択問題
バイアスとバリアンス
 Machine Learning System Design
Skewed Data
大量のデータセット
 Week6のまとめ
学習アルゴリズムの評価
 学習アルゴリズムを効果的にするために
・大量のトレーニングデータを集める
・フィーチャーの数を減らす
・フィーチャーの数を増やす
・フィーチャーに多項式を追加する
・正規化項λの値を大きくする
・正規化項λの値を小さくする
取るべき選択肢はどれか?
学習アルゴリズムの評価
 学習アルゴリズムを効果的にするために
・大量のトレーニングデータを集める
・フィーチャーの数を減らす
・フィーチャーの数を増やす
・フィーチャーに多項式を追加する
・正規化項λの値を大きくする
・正規化項λの値を小さくする
取るべき選択肢はどれか?
学習した仮説を評価して選択肢を決定
学習した仮説の評価
 良い仮説とは?
トレーニング誤差が小さいではない
Overfittingの可能性
Overfittingかどうか判断する必要がある
データを分割してコスト関数を比較
学習した仮説の評価
 データを分割
 コスト関数の比較
トレーニングセット:テストセット
= 7:3にランダムに分割
トレーニングセット、テストセットのコスト
関数を比較
学習した仮説の評価
 線形回帰のコスト関数
𝐽𝑡𝑟𝑎𝑖𝑛 =
1
2𝑚𝑡𝑟𝑎𝑖𝑛
𝑖=1
𝑚𝑡𝑟𝑎𝑖𝑛(ℎ 𝜃(𝑥(𝑖)) − 𝑦 𝑖 )2
𝐽𝑡𝑟𝑎𝑖𝑛 :トレーニングセットのコスト関数
𝐽𝑡𝑒𝑠𝑡 :テストセットのコスト関数
𝐽𝑡𝑒𝑠𝑡 =
1
2𝑚 𝑡𝑒𝑠𝑡
𝑖=1
𝑚𝑡𝑒𝑠𝑡(ℎ 𝜃(𝑥(𝑖)
) − 𝑦 𝑖
)2
学習した仮説の評価
 各データセットの役割
トレーニングセット
→仮説の学習
テストセット
→良い仮説かチェック
学習した仮説の評価
 どう評価するか?
トレーニングセットのコスト関数が小さく、
テストセットのコスト関数が大きい
=Overfitting
モデル選択問題
 そのモデル正しいですか?
 良い仮説とは
 どんなモデルが良いのか?
分割したデータが良くフィットしている
→良い仮説とは限らない
新しいサンプルに対して、予測がうまくできる
クロスバリデーションでどんな多項式モデル
が望ましいかチェック
モデル選択問題
 クロスバリデーションデータを用意する
データセットをトレーニングセット、クロス
バリデーションセット、テストセットに分割
トレーニングセット:
クロスバリデーションセット:
テストセット
6:2:2にランダムに分割
データを分割したらコスト関数を比較
モデル選択問題
 線形回帰のコスト関数
𝐽𝑡𝑟𝑎𝑖𝑛 =
1
2𝑚𝑡𝑟𝑎𝑖𝑛
𝑖=1
𝑚𝑡𝑟𝑎𝑖𝑛(ℎ 𝜃(𝑥(𝑖)) − 𝑦 𝑖 )2
𝐽𝑡𝑟𝑎𝑖𝑛 :トレーニングセットのコスト関数
𝐽𝑡𝑒𝑠𝑡 :テストセットのコスト関数
𝐽 𝑐𝑣 :クロスバリデーションセットのコスト関数
𝐽𝑡𝑒𝑠𝑡 =
1
2𝑚 𝑡𝑒𝑠𝑡
𝑖=1
𝑚𝑡𝑒𝑠𝑡(ℎ 𝜃(𝑥(𝑖)
) − 𝑦 𝑖
)2
𝐽 𝑐𝑣 =
1
2𝑚𝑡𝑒𝑠𝑡
𝑖=1
𝑚 𝑐𝑣(ℎ 𝜃(𝑥(𝑖)) − 𝑦 𝑖 )2
モデル選択問題
 線形回帰のコスト関数
𝐽𝑡𝑟𝑎𝑖𝑛 =
1
2𝑚𝑡𝑟𝑎𝑖𝑛
𝑖=1
𝑚𝑡𝑟𝑎𝑖𝑛(ℎ 𝜃(𝑥(𝑖)) − 𝑦 𝑖 )2
※ℎ 𝜃(𝑥)= 𝑖=0
𝑑
(𝜃𝑖 𝑥𝑖
𝑖
)
d: degree of polynomial
𝐽𝑡𝑒𝑠𝑡 =
1
2𝑚 𝑡𝑒𝑠𝑡
𝑖=1
𝑚𝑡𝑒𝑠𝑡(ℎ 𝜃(𝑥(𝑖)
) − 𝑦 𝑖
)2
𝐽 𝑐𝑣 =
1
2𝑚𝑡𝑒𝑠𝑡
𝑖=1
𝑚 𝑐𝑣(ℎ 𝜃(𝑥(𝑖)) − 𝑦 𝑖 )2
モデル選択問題
 各データセットの役割
トレーニングセット
→仮説の学習
クロスバリデーションセット
→良いモデルかチェック
テストセット
→良い仮説かチェック
モデル選択問題
 どう評価するか?
トレーニングセットのコスト関数が大きく、
クロスバリデーションセットのコスト関数も大きい
=高バイアス
トレーニングセットのコスト関数が小さく、
クロスバリデーションセットのコスト関数は大きい
=高バリアンス
𝑱 𝒄𝒗
モデル選択問題
𝑱𝒕𝒓𝒂𝒊𝒏
degree of polynomial : d
モデル選択問題
高バイアス 高バリアンス
𝑱 𝒄𝒗
𝑱𝒕𝒓𝒂𝒊𝒏
degree of polynomial : d
高バイアス・高バリアンス
 高バイアス→Underfitting
 高バリアンス→Overfitting
𝐽𝑡𝑟𝑎𝑖𝑛と𝐽 𝑐𝑣の平均値が大きい
多項式の次数が低い、正規化項λの値が大きい
𝐽 𝑐𝑣と𝐽𝑡𝑟𝑎𝑖𝑛の値の差が大きい
多項式の次数が高い、正規化項λの値が小さい
高バイアスか高バリアンスか判断できれば、
改善が容易になる
高バイアス・高バリアンス
 正規化項λの扱い
 正規化項λを用いた計算
正規化項λの値を予め決めておく
0, 0.1, 0.2, 0.4,…,10.24 等
𝐽(𝜃) =
1
2𝑚 𝑖=1
𝑚
(ℎ 𝜃(𝑥 𝑖 ) − 𝑦 𝑖 )2 +
𝜆
2𝑚 𝑗=1
𝑚
𝜃𝑗
2
𝐽𝑡𝑟𝑎𝑖𝑛, 𝐽𝑡𝑒𝑠𝑡, 𝐽 𝑐𝑣を同様に求める
𝑱 𝒄𝒗が最小になるモデルを選択する
𝑱 𝒄𝒗
モデル選択問題
𝑱𝒕𝒓𝒂𝒊𝒏
正規化項 : λ
𝑱 𝒄𝒗
モデル選択問題
𝑱𝒕𝒓𝒂𝒊𝒏
正規化項 : λ
𝑱 𝒄𝒗が最小
選択するλ
高バイアス・高バリアンス
 学習曲線
 高バイアスのとき
 高バリアンスのとき
使用するトレーニングセットを制御して、
アルゴリズムのパフォーマンスを評価
トレーニングセットが一定数で𝐽 𝑐𝑣と𝐽𝑡𝑟𝑎𝑖𝑛の差
がなくなる
𝐽 𝑐𝑣と𝐽𝑡𝑟𝑎𝑖𝑛の差がなくなるには多くのトレーニ
ングセットが必要
𝑱 𝒄𝒗
モデル選択問題
𝑱𝒕𝒓𝒂𝒊𝒏
トレーニングセット数: m
高バイアス
𝑱 𝒄𝒗
モデル選択問題
𝑱𝒕𝒓𝒂𝒊𝒏
トレーニングセット数: m
高バリアン
ス
ここまでのまとめ
 学習アルゴリズムを評価する
 評価方法
その仮説正しいですか?
そのモデル正しいですか?
高バイアスですか?
高バリアンスですか?
トレーニングセット、テストセット、
クロスバリデーションセットを活用
適切な正規化項λを見つける
アジェンダ
 Week5を終えて
 Advice for Applying Machine Learning
学習アルゴリズムの評価
学習した仮説の評価
モデル選択問題
バイアスとバリアンス
 Machine Learning System Design
Skewed Data
大量のデータセット
 Week6のまとめ
Machine Learning System Design
 エラー分析
機械学習を実装する時は、汚くても早く実装
トレーニングセット、テストセット、クロス
バリデーションセットを活用して、
次に何をすべきか判断する
Skewed Data
 Skewed Data(歪んだデータ)
予測に対して実際に観測されたデータが
正しくないデータが含まれている可能性
もある。
歪んだデータは正確性を測る評価が必要
Skewed Data
 分類問題において
予測/観測 1(Positive) 0(Negative)
1(Positive) True Positive False Positive
0(Negative) False Negative True Negative
予測がPositiveで、観測Positiveである割合
→Precision(精度)
観測がPositiveで、予測もPositiveの割合
→Recall(再現性)
Skewed Data
 PrecisionとRecall
Precision =
𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒
𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒+𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒
Recall =
𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒
𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒+𝐹𝑎𝑙𝑠𝑒 𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒
予測が厳密→高いPrecision
予測を緩和→高いRecall
PrecisionとRecallはトレードオフ
Skewed Data
 PrecisionとRecallの境界は?
 Fスコアの計算
PrecisionとRecallは両方高い値が望ましい
→F(F1)スコアを利用する
F =
2 ∗𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗ 𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙
大量のデータセット
 大量のデータセットを用意できるなら
どのアルゴリズムを選んでも、
データセットの量が多ければ
他のアルゴリズムよりも
精度が良い
より良いアルゴリズム<<より多くのデータ
大量のデータセット
 どのくらいのデータを集めるべきか?
 どんなときにデータを集めるべきか
人間のエキスパートがフィーチャーXを見て、
観測値yを予想できるだけの十分なデータ
高バリアンスになっているとき
アジェンダ
 Week5を終えて
 Advice for Applying Machine Learning
学習アルゴリズムの評価
学習した仮説の評価
モデル選択問題
バイアスとバリアンス
 Machine Learning System Design
Skewed Data
大量のデータセット
 Week6のまとめ
まとめ
 機械学習は早く実装
 実装したらすぐ評価
 仮説は正しいか?モデルは正しいか?
 高バイアスか?高バリアンスか?
高パフォーマンスか?判断
まとめ
 高バイアスと高バリアンス対策
データセット フィーチャー 正規化項λ
高バイアス
Underfitting
そのまま
増やす
(多項式)
小さくする
高バリアンス
Overfitting
増やす 減らす 大きくする

Coursera machine learning week6