記号
入力はx∈Xであり、出力はy∈Yとする。
h:X→Yを仮説=Hypothesisという。h∈Hとする。1つのモデルHはパラメタを変えることで複数の仮説hを作る、という感じ。
l:(X×Y)×H→Rを損失関数という。入力を仮説に入れた予測結果と真の結果を受け取ることで、それらの距離を測り、それを最適化するということになる。
汎化は何がカギか
- どのモデル=関数集合を使うか
- どの損失関数を最小化するか
この2つそれぞれに対して、汎化の理論を作る必要がある。
確率不等式
確率不等式での評価が主である。基本的によく使われる記法は以下の通り。
ϵ>0,δ∈[0,1],P[L≤ϵ]>1−δ 損失関数Lがϵより小さい確率は、少なくとも1−δだけの確率がある。
これを逆にしたP[L>ϵ]≤δのほうが数式の取り扱いでは楽だったりするけど。
データの設定
真のデータ生成分布をDとする。そこからn個のサンプルは独立に選択され=i.i.d、{(xi,yi)}i=1nで得られ、(xi,yi)∼Dと書くことができる。
すでに得られたサンプルたちを使って○○をやるときは、経験○○という名前がつく。
例えば、経験分布Snは以下のように定義できる。各データごとに1/nの重みが付与されており、生成されたら1、そうじゃなかったら0として扱ったときの分布である。
Sn=n1∑i=1n1[(x,y)=(xi,yi)] 期待損失と経験損失
期待損失とは、理想的な真のデータ生成分布の元での損失である。
L(h)=E(x,y)∼D[l((x,y),h)] だが現実では、期待値はサンプルからの経験で代替するしかない。以下の経験損失を使うことになる(以下の期待値は経験分布についての期待値の意味である)
L^n(h)=E(x,y)∈Sn[l((x,y),h)]=n1∑i=1nl((xi,yi),h) 我々にできるのは、h∈Hを選んで経験損失L^n(h)を最小化することしかない。
Tips: h^はサンプルから訓練されるので、サンプルを変数としてh^(Sn)と書くこともある。ただしこれは仮説hにSnを直接与えてるわけではなく、便宜的な書き方である。
汎化誤差
汎化理論で示す主な確率不等式は以下のようになる。
PSn∼D[L(h^(Sn))−L(h∗)≤ϵ]>1−δ つまり経験誤差と期待誤差は、1−δ以上の確率で必ずϵに収まるという流れを作りたい。
これを示していきたい。まずは(1)以下の式が成り立つことを示す。
L(h^)−L(h∗)≤L(h^)−L^n(h^)+L^n(h∗)−L(h∗) 証明
右辺でL^n(h∗)−L^n(h^)≥0を示せればよい。L^nにおいての最適な仮説はh^なので、これは自明に示せた。
なお、この式を出すのは本来、以下のように足して0になるものを複数挟み込んでいる。
L(h^)−L(h∗)={L(h^)−L^n(h^)}+{L^n(h^)−L^n(h∗)}+{L^n(h∗)−L(h∗)} これによって、真ん中のものは上の議論によって自明に負であるので、取り除いたら不等式ができる。これで証明の構えを作りたい。
(1)で示した式を前半L(h^)−L^n(h^)と後半L^n(h∗)−L(h∗)と分割することができる。
- 後半L^n(h∗)−L(h∗)は、h∗は訓練サンプル集合に関係なく固定値であるので、確率的に変動する独立なn個のサンプルを入力した損失関数の和によってのみ変わる。独立なので、扱いやすい。
- 大数の弱法則で0へ収束すること、中心極限定理についてはO(1/n)のオーダになるなどと扱える。
- 前半L(h^)−L^n(h^)はh^が訓練サンプル集合によって変わるのが後半と違うところ。これによって、既存の各道具を使うのは難しい。