Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

(講義ノート)統計的機械学習第2回

モデルや仮説の仮定

非常に基礎的なモデルから解析していく。

  • XRd\mathcal{X} \subset \mathbb{R}^dが学習データ
  • Y={+1,1}\mathcal{Y} = \{+1, -1\}がラベルである二値分類。
  • 損失関数はすべて01損失。つまり、損失関数というのは条件を満たさない確率そのものである

仮説は2つの仮定の下で行う。

  • 仮説空間H\mathcal{H}は有限である。
  • 期待損失hH,L(h)=0\exist h^* \in \mathcal{H}, L(h^*) = 0

有限仮説と実現可能性を仮定した汎化誤差

複数の最小化させるhhは存在するので、一応集合ではある。だが、1つだけだと扱ってもまあよく見える。

前述の仮定の下(特に仮説空間が有限)で、h^arg minhHL^n(h)\hat{h} \in \argmin _{h \in \mathcal{H}} \hat{L}_n (h)つまり経験損失を最小化させるものをh^\hat{h}だとすると、少なくとも1δ1 - \delta以上の確率で

L(h^)1n(logH+log(1/δ))L(\hat{h}) \leq \frac{1}{n} (\log |\mathcal{H}| + \log(1 / \delta))

仮説空間が複雑になればなるほど、確率が小さければなるほど上限が大きくなる。

証明

L(h)=0L^n(h)=0L(h^*)=0 \Rightarrow \hat{L}_n (h^*) = 0 真の損失関数を0にするものが存在すれば、それは何個のサンプルについてであろうとも、経験損失は当然0にできる。なので、hh^h^* \subseteq \hat{h}であるといえる。なので、hh^*よりも広い集合h^\hat{h}について、すべてϵ\epsilonに収まるのは最低でも1δ1 - \delta以上の確率であると示すという感じ。

まず、L(h)>ϵL(h) > \epsilonとなるような仮説空間H>ϵH\mathcal{H}_{> \epsilon} \subseteq \mathcal{H}を考えることで、以下のように求めたい確率を同値変換できる。これで集合についての議論となった。

Pr[L(h^)>ϵ]=Pr[h^H>ϵ]Pr[h^H>ϵ]Pr[hH>ϵ:L^n(h)=0]Pr[L(\hat{h}) > \epsilon] = Pr[\hat{h} \in \mathcal{H}_{> \epsilon}] \\ Pr[\hat{h} \in \mathcal{H}_{> \epsilon}] \leq Pr[\exist h \in \mathcal{H}_{> \epsilon} : \hat{L}_n (h) = 0]

下から2つ目の式は、h^\hat{h}に限定しないようなhhならばよいということで、右辺は左辺以上である。左辺の直接計算は難しいので、右辺で抑える

そして、h,L(h)>ϵ\exist h, L(h) > \epsilonについて、以下が成り立つ。間違える率がϵ\epsilon以上ということ。

P[L^n(h)=0]=Pr[h(x)=y]n(1ϵ)nexp(ϵn)P[\hat{L}_n (h) = 0] = Pr[h(\mathbf{x}) = y]^n \leq (1 - \epsilon) ^ n \leq \exp(- \epsilon n)

すべて独立同分布からとっているので累乗にすることができ、毎回最高でも正解する確率は1ϵ1 - \epsilonである。そこから、1xexp(x)1-x \leq \exp(-x)を使った。

そのうえ、Union Bound(集合の元についての討論なら、集合全体について合算して上限とする)を使える

Pr[hH>ϵ:L^n(h)=0]hH>ϵPr[L^n(h)=0]H>ϵexp(ϵn)Pr[\exist h \in \mathcal{H}_{> \epsilon} : \hat{L}_n(h) = 0] \leq \sum _{h \in \mathcal{H}_{> \epsilon}} Pr[\hat{L}_n(h) = 0] \leq |\mathcal{H}_{> \epsilon}| \exp(-\epsilon n)

ここでは、集合の元すべてで抑えている。

したがって、ここまでの議論をまとめると以下のようになる。

Pr[h^H>ϵ]Pr[hH>ϵ:L^n(h)=0]hH>ϵPr[L^n(h)=0]H>ϵexp(ϵn)Hexp(ϵn)=δPr[\hat{h} \in \mathcal{H}_{> \epsilon}] \leq Pr[\exist h \in \mathcal{H}_{> \epsilon} : \hat{L}_n (h) = 0] \\ \leq \sum _{h \in \mathcal{H}_{> \epsilon}} Pr[\hat{L}_n(h) = 0] \leq |\mathcal{H}_{> \epsilon}| \exp(-\epsilon n) \\ \leq |\mathcal{H}| \exp(-\epsilon n) = \delta

最後にδ\deltaを定義してあれば、証明したいものが得られる。

1Pr[L(h^)>ϵ]=Pr[L(h^)ϵ]L(h^)ϵ=1n(logH+log(1/δ))1 - Pr[L(\hat{h}) > \epsilon] = Pr[L(\hat{h}) \leq \epsilon] \\ L(\hat{h}) \leq \epsilon = \frac{1}{n}(\log |\mathcal{H}| + \log (1 / \delta))

Q.E.D.

一様収束(Uniform Convergence)と各点収束

これは一様収束。まずN0N_0を定めて、そこからすべてのX\mathcal{X}の元がN0N_0基準とした収束速度だと保証するN0N_0ϵ\epsilonにのみ依存する。

ϵ>0,N0N,xX:[nN0fn(x)f(x)ϵ]\forall \epsilon > 0, \exist N_0 \in \N, \forall \mathbf{x} \in \mathcal{X} : [n \geq N_0 \Rightarrow |f_n(\mathbf{x}) - f(\mathbf{x})| \leq \epsilon]

下は各点収束。N0N_0ϵ,x\epsilon, \mathbf{x}に依存する

ϵ>0,xX,N0N:[nN0fn(x)f(x)ϵ]\forall \epsilon > 0, \forall \mathbf{x} \in \mathcal{X}, \exist N_0 \in \N : [n \geq N_0 \Rightarrow |f_n(\mathbf{x}) - f(\mathbf{x})| \leq \epsilon]

すべての元がそれぞれ収束するとしても、同じ基準N0N_0で収束しないといけないルールはない

一様収束のうれしい性質

  • 一様収束する→各点収束する
  • 一様収束するlimnsupxXfn(x)f(x)0\Leftrightarrow \lim_{n \to \infty} \sup_{x \in \mathcal{X}} |f_n(x) - f(x)| \to 0
  • 連続関数の一様収束極限も連続関数。
  • fnf_nffに一様収束するときに限り、微分積分と和を交換できる=項別微積分ができる

一様収束がなぜ機械学習で重要か

Image in a image block

定義からして、一様収束するなら絶対に同じ収束速度で、どの仮説であってもϵ/2\epsilon / 2に収まるということ。

Image in a image block

このように、サンプルから得られた経験損失で過学習は起きることがあるが望ましくない。各点収束では、過学習の点の収束速度が他と違うということになる。だから一様収束で議論するべきである。

経験損失の誤差を一様収束でどのように抑えられるか

具体的に式で定義すると、以下のようになる。

Pr[L(h^)L(h)>ϵ]Pr[suphHL(h)L^n(h)>ϵ2]Pr[L(\hat{h}) - L(h^*) > \epsilon] \leq Pr[\sup_{h \in \mathcal{H}}|L(h) - \hat{L}_n(h)| > \frac{\epsilon}{2}]

左辺にはhh^*があるが右辺にはない。hH\forall h \in \mathcal{H}の中で一番広がる部分がどこか?で言い換えられる。→hh^*が具体的になんであるのかを見なくていい!また、h^\hat{h}が損失関数LnL_nによって決定されている関係上、LnL_nは独立な変数として扱えないのも面倒だが、右辺ではその問題を無視できる。

では、これが正しいのを証明する。

証明

suphHL(h)L^n(h)ϵ/2\sup_{h \in \mathcal{H}}|L(h) - \hat{L}_n(h)| \leq \epsilon / 2が成り立つならば、

  • L(h^)L^n(h^)L(\hat{h}) - \hat{L}_n (\hat{h})hHh \in \mathcal{H}なので、L(h^)L^n(h^)ϵ/2L(\hat{h}) - \hat{L}_n (\hat{h}) \leq \epsilon / 2が成り立つ。
  • L^n(h)L(h)ϵ/2\hat{L}_n(h^*) - L(h^*) \leq \epsilon / 2も同様に得られる。

よって、以下のようになる。与えられた条件は理想損失と経験損失の差を限定させているが、何とか理想損失だけで差を出したい。ここでは、

  • LLから経験損失のL^n\hat{L}_n2つ作り出す。この2つは、既存のLLとCouplingして、条件を使えるようにする。
  • 作り出した部分L^n(h)L^n(h^)0\hat{L}_n(h^*) - \hat{L}_n(\hat{h}) \geq 0は正であるという性質が好都合。不等式の符号がそろう。

L(h^)L(h){L(h^)L^n(h^)}+{L^n(h)L(h)}ϵL(\hat{h}) - L(h^*) \leq \{ L(\hat{h}) - \hat{L}_n (\hat{h})\} + \{ \hat{L}_n(h^*) - L(h^*) \} \leq \epsilon

よって、確率の中で改めて考えると、

Pr[suphHL(h)L^n(h)ϵ2]Pr[L(h^)L(h)ϵ]Pr[suphHL(h)L^n(h)>ϵ2]Pr[L(h^)L(h)>ϵ]Pr[\sup_{h \in \mathcal{H}}|L(h) - \hat{L}_n(h)| \leq \frac{\epsilon}{2}] \leq Pr[L(\hat{h}) - L(h^*) \leq \epsilon] \\ Pr[\sup_{h \in \mathcal{H}}|L(h) - \hat{L}_n(h)| > \frac{\epsilon}{2}] \geq Pr[L(\hat{h}) - L(h^*) > \epsilon]

このように計算ができる。Q.E.D.

結局、一定の範囲内に抑えられるというのがやりやすいので変換してやっているだけ。