優秀な機械学習の専門家は
バイアスとバリアンスをよく理解しています
概念を学ぶのは簡単ですが マスターするのは難しいものです
もしバイアスとバリアンスを知っていても
新たに学ぶことは多いでしょう
深層学習において
あまり議論されていないことがあります
バイアスとバリアンスのトレードオフです
この言葉を聞いたことがあるかもしれません
しかし 深層学習ではトレードオフは少ないのです
したがって バイアスをやり
バリアンスもやらねばなりませんが
トレードオフにはあまり触れません
それが意味するところを見てみましょう
このデータセットを見てください
直線をあてはめてみましょう
ロジスティック回帰であてはめてみます
データにうまく適合していません
よって これは高バイアスだと言えます
データにアンダーフィットしています
反対に
非常に複雑な分類機を用いると
例えば 深層ニューラルネットワークや
大量の隠れユニットを持つニューラルネットでは
おそらく完璧なあてはめを得られるでしょうが
これもまた 良いあてはめには思えません
高バリアンスな分類器で オーバーフィッティングしています
そして これらの中間の分類器があるはずです
中程度の複雑さの
このようにあてはめられます
これは合理的なあてはめのように思われます
ぴったり適している中間の分類器といえます
このような２次元の例では
２つの特徴量をもち
X1とX2を描いて バイアスとバリアンスを視覚化できます
高次元の問題においては
データを描き 分類境界を視覚化できません
そのかわり いくつか方法を説明します
バイアスとバリアンスを理解するためのものです
引き続き 猫写真の分類を用いましょう
左が正例 右が負例です
バイアスとバリアンスを理解する２つの重要な数字は
訓練セット誤差と開発セット誤差です
例をあげて説明しましょう
あなたには写真中の猫がわかる
ほぼ完璧に判別できるでしょう？
訓練セット誤差は１％で 開発セット誤差は
たとえば
11％としてみましょう
この例において
あなたは訓練セットではよくやりましたが
開発セットではあまりうまくいきませんでした
訓練セットにオーバーフィットしたようです
うまく汎化できなかったようです
開発セット内の交差検定セットに対して
したがって このような例では
高バリアンスだと言えるでしょう
訓練セット誤差と開発セット誤差を見ることにより
高バリアンスだと判断できるのです
ここで 訓練セット誤差と開発セット誤差を測定し
異なる結果が得られたとしましょう
訓練セット誤差が15％で
訓練セット誤差を上の行に書きます
開発セット誤差が16％です
人間の誤差はほぼ０％だと仮定しましょう
人間は写真を見て猫かどうかわかるということです
訓練セットであまりうまくいっていないようです
もし訓練データでさえ良くないならば
アンダーフィッティングしています
この方式は高バイアスです
一方で 開発セットに対する一般化は十分です
性能差はわずか１％なのですから
この方式は高バイアスの問題です
なぜなら訓練セットでさえ適合しないのですから
これは前のスライドの左端の図と似ています
ここで別の例にいきます
訓練セット誤差が15％だとしましょう
非常に高バイアスです
しかし開発セットで評価すると さらに悪く
30％になりました
この場合 高バイアスだと判断します
訓練セットでさえダメで さらに高バリアンスです
最悪です
最後の例として
0.5％の訓練セット誤差と
１％の開発セット誤差だとします
ユーザーはとても満足でしょう
たった１％の猫分類器が得られたのですから
これが低バイアスと低バリアンスです
細かいことですが大まかに説明します
後のビデオで詳しく議論しますが
この分析はある仮定においての予測です
人間であれば誤差がほぼ０％であるという
一般的にいえば 理想的な誤差が
ベイズ誤差とも呼ばれますが
ベイズ理想誤差がほぼ０％の場合です
このビデオで詳細には立ち入りませんが
理想誤差・ベイズ誤差がもっと大きいならば
もし15％ならば この分類器は
15％は訓練セットに対してまったく妥当であり
高バイアスではなく 低バリアンスでしょう
バイアスとバリアンスを分析する際に
どの分類器でもうまくいかない場合 たとえば
とてもぼやけた画像の場合
人間であれ機械であれ うまくいかないであろう場合
ベイズ誤差はとても大きくなり
この分析の細部が変わります
ここの細かいところは置いておいて
大事なことは
訓練セット誤差からあてはめの感じをつかんで
あくまで訓練セットに対するあてはめですが
バイアスの問題がわかります
そして 誤差の悪化を見れば
訓練セットから開発セットでの悪化を見れば
バリアンス問題の感じがつかめます
訓練セットから開発セットへ汎化してみれば
バリアンスの感じがわかります
これらはベイズ誤差が小さいという前提での話です
訓練・開発セットが同じ分布から得られたという前提もあります
これらの前提が崩れた場合
もう少し込み入った分析がありますが
後のビデオで話します
では 前のスライドで
高バイアスを見ました
高バリアンスも見ました
良い分類の様子もつかめたと思います
高バイアスで高バリアンスの時はどうでしょうか？
両方の点で悪い場合です
分類器はこのようになるのでした
線形分類器は高バイアスです
アンダーフィットするためです
この分類器はほぼ線形で アンダーフィットします
紫で描くことにします
しかし分類器に奇妙な性質があれば
データの一部にはオーバーフィットします
紫で描いた分類器は
高バイアスと高バリアンスです
高バイアスである理由は
ほとんど線形分類器であるからで
うまく分類できていません
この２次曲線ならうまくいくのですが
中央で過多な自由度を持つために
これらの点にとらわれてしまい
オーバーフィットしてしまいます
この分類器は ほぼ線形のため高バイアスですが
必要なのは２次曲線でしょう
そして高バイアスの理由は
自由度が高すぎて間違った２点に合ってしまったからです
中央の外れ値にあてはまってしまったのです
この場合はなんとかやれました
この例は２次元なのでやれました
しかし 入力がとても高次元のとき
こんな事態に遭遇するでしょう
高バイアスの領域と低バイアスの領域があり
このような分類器になりえます
高次元の入力で より対処しにくいでしょう
まとめると 訓練誤差と開発誤差を見て
分析を試みることができます
高バイアスの問題か高バリアンスの問題か
あるいは両方か どちらでもないか
バイアスとバリアンスのどちらが問題かによって
やるべきことは異なるでしょう
次のビデオで紹介したいのは
機械学習の基礎レシピと呼んでいる
より系統だって改善する方法で
高バイアスか高バリアンスかによって対処します
では次のビデオにいきましょう