coursera machine learning week6
TRANSCRIPT
Coursera Machine Learning Week6・ Advice for Applying Machine Learning・Machine Learning System Design
アジェンダ Week5 を終えて
Advice for Applying Machine Learning学習アルゴリズムの評価学習した仮説の評価モデル選択問題バイアスとバリアンス
Machine Learning System DesignSkewed Data大量のデータセット
Week6 のまとめ
アジェンダ Week5 を終えて
Advice for Applying Machine Learning学習アルゴリズムの評価学習した仮説の評価モデル選択問題バイアスとバリアンス
Machine Learning System DesignSkewed Data大量のデータセット
Week6 のまとめ
Week5 までの内容
機械学習のエキスパートといえるだけの学習アルゴリズムを学習最急降下法線形回帰ロジスティクス回帰ニューラルネットワーク
Week5 までの内容
機械学習のエキスパートといえるだけの学習アルゴリズムを学習最急降下法線形回帰ロジスティクス回帰ニューラルネットワーク
学習アルゴリズムを効果的に活用できているか?
アジェンダ Week5 を終えて
Advice for Applying Machine Learning学習アルゴリズムの評価学習した仮説の評価モデル選択問題バイアスとバリアンス
Machine Learning System DesignSkewed Data大量のデータセット
Week6 のまとめ
学習アルゴリズムの評価
学習アルゴリズムを効果的にするために・大量のトレーニングデータを集める・フィーチャーの数を減らす・フィーチャーの数を増やす・フィーチャーに多項式を追加する・正規化項 λ の値を大きくする・正規化項 λ の値を小さくする
取るべき選択肢はどれか?
学習アルゴリズムの評価
学習アルゴリズムを効果的にするために・大量のトレーニングデータを集める・フィーチャーの数を減らす・フィーチャーの数を増やす・フィーチャーに多項式を追加する・正規化項 λ の値を大きくする・正規化項 λ の値を小さくする
取るべき選択肢はどれか?学習した仮説を評価して選択肢を決定
学習した仮説の評価
良い仮説とは?トレーニング誤差が小さいではないOverfitting の可能性
Overfitting かどうか判断する必要がある
データを分割してコスト関数を比較
学習した仮説の評価
データを分割
コスト関数の比較
トレーニングセット:テストセット= 7 : 3 にランダムに分割
トレーニングセット、テストセットのコスト関数を比較
学習した仮説の評価
線形回帰のコスト関数
: トレーニングセットのコスト関数 : テストセットのコスト関数
学習した仮説の評価
各データセットの役割
トレーニングセット→ 仮説の学習
テストセット→ 良い仮説かチェック
学習した仮説の評価
どう評価するか?トレーニングセットのコスト関数が小さく、テストセットのコスト関数が大きい= Overfitting
モデル選択問題
そのモデル正しいですか?
良い仮説とは
どんなモデルが良いのか?
分割したデータが良くフィットしている→ 良い仮説とは限らない
新しいサンプルに対して、予測がうまくできる
クロスバリデーションでどんな多項式モデルが望ましいかチェック
モデル選択問題
クロスバリデーションデータを用意するデータセットをトレーニングセット、クロスバリデーションセット、テストセットに分割
トレーニングセット:クロスバリデーションセット:テストセット6 : 2 : 2 にランダムに分割
データを分割したらコスト関数を比較
モデル選択問題
線形回帰のコスト関数
: トレーニングセットのコスト関数 : テストセットのコスト関数 : クロスバリデーションセットのコスト関数
モデル選択問題
線形回帰のコスト関数
※ d: degree of polynomial
モデル選択問題
各データセットの役割トレーニングセット→ 仮説の学習
クロスバリデーションセット→ 良いモデルかチェック
テストセット→ 良い仮説かチェック
モデル選択問題
どう評価するか?トレーニングセットのコスト関数が大きく、クロスバリデーションセットのコスト関数も大きい=高バイアストレーニングセットのコスト関数が小さく、クロスバリデーションセットのコスト関数は大きい=高バリアンス
𝑱 𝒄𝒗
モデル選択問題
𝑱 𝒕𝒓𝒂𝒊𝒏
コス
ト関
数
degree of polynomial : d
モデル選択問題高バイアス 高バリアンス
𝑱 𝒄𝒗
𝑱 𝒕𝒓𝒂𝒊𝒏
コス
ト関
数
degree of polynomial : d
高バイアス・高バリアンス
高バイアス→ Underfitting
高バリアンス→ Overfitting
との平均値が大きい多項式の次数が低い、正規化項 λ の値が大きい
との値の差が大きい多項式の次数が高い、正規化項 λ の値が小さい
高バイアスか高バリアンスか判断できれば、改善が容易になる
高バイアス・高バリアンス
正規化項 λ の扱い
正規化項 λ を用いた計算
正規化項 λ の値を予め決めておく0, 0.1, 0.2, 0.4,…,10.24 等
, , を同様に求めるが最小になるモデルを選択する
𝑱 𝒄𝒗
モデル選択問題
𝑱 𝒕𝒓𝒂𝒊𝒏
コス
ト関
数
正規化項 : λ
𝑱 𝒄𝒗
モデル選択問題
𝑱 𝒕𝒓𝒂𝒊𝒏
コス
ト関
数
正規化項 : λ
が最小
選択する λ
高バイアス・高バリアンス
学習曲線
高バイアスのとき
高バリアンスのとき
使用するトレーニングセットを制御して、アルゴリズムのパフォーマンスを評価
トレーニングセットが一定数でとの差がなくなる
との差がなくなるには多くのトレーニングセットが必要
𝑱 𝒄𝒗
モデル選択問題
𝑱 𝒕𝒓𝒂𝒊𝒏
コス
ト関
数
トレーニングセット数 : m
高バイアス
𝑱 𝒄𝒗
モデル選択問題
𝑱 𝒕𝒓𝒂𝒊𝒏
コス
ト関
数
トレーニングセット数 : m
高バリアンス
ここまでのまとめ
学習アルゴリズムを評価する
評価方法
その仮説正しいですか?そのモデル正しいですか?高バイアスですか?高バリアンスですか?
トレーニングセット、テストセット、クロスバリデーションセットを活用適切な正規化項 λ を見つける
アジェンダ Week5 を終えて
Advice for Applying Machine Learning学習アルゴリズムの評価学習した仮説の評価モデル選択問題バイアスとバリアンス
Machine Learning System DesignSkewed 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予測を緩和→高い RecallPrecision と Recall はトレードオフ
Skewed Data Precision と Recall の境界は?
F スコアの計算
Precision と Recall は両方高い値が望ましい→F(F1) スコアを利用する
F =
大量のデータセット
大量のデータセットを用意できるならどのアルゴリズムを選んでも、
データセットの量が多ければ他のアルゴリズムよりも
精度が良いより良いアルゴリズム<<より多くのデータ
大量のデータセット
どのくらいのデータを集めるべきか?
どんなときにデータを集めるべきか
人間のエキスパートがフィーチャー X を見て、観測値 y を予想できるだけの十分なデータ
高バリアンスになっているとき
アジェンダ Week5 を終えて
Advice for Applying Machine Learning学習アルゴリズムの評価学習した仮説の評価モデル選択問題バイアスとバリアンス
Machine Learning System DesignSkewed Data大量のデータセット
Week6 のまとめ
まとめ
機械学習は早く実装
実装したらすぐ評価
仮説は正しいか?モデルは正しいか?
高バイアスか?高バリアンスか? 高パフォーマンスか?判断
まとめ
高バイアスと高バリアンス対策
データセット フィーチャー 正規化項 λ
高バイアスUnderfitting そのまま
増やす(多項式) 小さくする
高バリアンスOverfitting 増やす 減らす 大きくする