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.

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

前回はこちら。📄Arrow icon of a page link(講義ノート)統計的機械学習第3,4回

前回はL(h)0L(h^*) \neq 0、仮説集合が無限と条件をどんどん緩くしたうえで、誤差上界の評価の手法について紹介された。L(h)0L(h^*) \neq 0の時はHoeffdingの不等式で分布の裾で評価した。仮説集合が無限の時は、McDiarmidの不等式でG^n(h)=Ln(h^)L(h)\hat{G}_n(h) = L_n(\hat{h}) - L(h^*)と評価した。

Rademacher複雑度による仮説集合の汎化誤差解析

損失関数が取る値が[a,b][a,b]の時、汎化誤差の上界は以下のようになることがわかった。

L(h^)L(h)ϵ=4Rn(L)+(ba)2log(2/δ)nL(\hat{h}) - L(h^*) \leq \epsilon = 4 R_n(\mathcal{L}) + (b - a) \sqrt{\frac{2 \log (2 / \delta)}{n}}

Rn(L)R_n(\mathcal{L})は損失関数の集合についての評価である。ただ、損失関数じゃなくて仮説集合のRademacher複雑度にやはり評価したい。

主張

  • 仮説関数はh:X{+1,1}h : X \to \{ +1, -1 \}であり、これの集合をH\mathcal{H}とする。
  • 損失関数は01損失であり、l((x,y),h)=1[h(x)y]l((x,y),h) = \mathbf{1}[h(x) \neq y]となる。これの集合をL01\mathcal{L}_{01}とする。

この時、以下の式が成り立つ。

Rn(L01)=12Rn(H)R_n(\mathcal{L}_{01}) = \frac{1}{2} R_n(\mathcal{H})

このような変換関係が成り立つ。

証明

指示関数1[h(x)y]=12(1yh(x))\mathbb{1}[h(x) \neq y] = \frac{1}{2} (1 - yh(x))と書き換えることができる(よくある)。

ED[Eσ[suplL011ni=1nσi12(1yih(xi))]]=12ED[Eσ[suphH1ni=1nσi(1yih(xi))]]=12ED[Eσ[suphH1ni=1nσi+1ni=1nσiyih(xi)]]=12ED[Eσ[suphH1ni=1nσiyih(xi)]]=12Rn(H)\mathbb{E}_D[ \mathbb{E}_{\sigma} [ \sup_{l \in \mathcal{L}_{01}} \frac{1}{n} \sum_{i=1}^n \sigma_i \cdot \frac{1}{2} (1 - y_i h(x_i))] ] \\ = \frac{1}{2} \mathbb{E}_D[ \mathbb{E}_{\sigma} [ \sup_{h \in \mathcal{H}} \frac{1}{n} \sum_{i=1}^n \sigma_i \cdot (1 - y_i h(x_i))] ] \\ = \frac{1}{2} \mathbb{E}_D[ \mathbb{E}_{\sigma} [ \sup_{h \in \mathcal{H}} \frac{1}{n} \sum_{i=1}^n \sigma_i + \frac{1}{n} \sum_{i=1}^n -\sigma_i y_i h(x_i)] ] \\ = \frac{1}{2} \mathbb{E}_D[ \mathbb{E}_{\sigma} [ \sup_{h \in \mathcal{H}} \frac{1}{n} \sum_{i=1}^n - \sigma_i y_i h(x_i)] ] = \frac{1}{2} R_n(\mathcal{H})

3行目から4行目の式変形では、Rademacher変数σi\sigma_iの和はベルヌーイ分布で半々で1か-1をとることから、実は0であること言うことを利用して消した。その結果、Rn(L01)R_n(\mathcal{L}_{01})Rn(H)R_n(\mathcal{H})で評価する計算ができた。

有限集合のRademacher複雑度

有限仮説集合H\mathcal{H}があるとする。この時、以下のMassartの有限仮説の補題によって、以下のものが成り立つ。

Rn(H)2logHnR_n(\mathcal{H}) \leq \sqrt{\frac{2 \log |\mathcal{H}|}{n}}

ここで、Massartの有限仮説の補題は以下のとおりである。ARn\mathcal{A} \in \mathbb{R}^nの有限集合とする。

M0,supaAi=1nai2M2Eσ[supaA1ni=1nσiai]2M2logAn\exist M \geq 0, \sup _{\mathbf{a} \in \mathcal{A}} \sum_{i=1}^n a_i ^ 2 \leq M ^ 2 \\ \mathbb{E}_{\sigma} [\sup _{ \mathbf{a} \in \mathcal{A}} \frac{1}{n} \sum_{i=1}^n \sigma_i a_i] \leq \frac{\sqrt{2 M^2 \log |\mathcal{A}|}}{n}

証明

x1,,xnx_1, \cdots, x_nのデータがあるとする。それらにすべてとある有限仮説集合の元hHh \in \mathcal{H}で予測をする。それをAn\mathcal{A}_nとする。

An={hH,(h(x1),,h(xn))}\mathcal{A}_n = \{ h \in \mathcal{H}, (h(x_1), \cdots, h(x_n)) \}

有限仮説集合で、有限個のデータなので、An\mathcal{A}_nは有限集合であり、{1,+1}n\{ -1, +1 \} ^ nの部分集合でもある。以下のように各An\mathcal{A}_nの元のベクトルの成分の2乗和の上限は高々nnである。

supaAni=1nh(xi)2=suphHi=1nh(xi)2=n\sup _{\mathbb{a} \in \mathcal{A}_n} \sum_{i=1} ^ n h(x_i) ^ 2 = \sup _{h \in \mathcal{H}} \sum_{i=1} ^ n h(x_i)^2 = n

ここで、Massartの有限仮説の補題と、AnH\mathcal{A}_n \subset \mathcal{H}(複数通りの仮説hhが結果的に同じAn\mathcal{A}_nの元を生成することがある)によって、以下の式変形が成り立つ。

  • ここではh(xi)2h(x_i)^2は上限M2=nM^2=nが存在することで、Massartの有限仮説補題を利用。
  • 中のRademacher複雑度の部分の期待値をMassartの有限仮説で抑えた。
  • 期待値を外してもいいので、結果を得る。

Image in a image block

結果として、有限仮説集合H\mathcal{H}のRademacher複雑度は、以下のように評価できる。

Rn(H)2logHnR_n(\mathcal{H}) \leq \sqrt{\frac{2 \log |\mathcal{H}|}{n}}

そもそも有限仮説集合の場合、誤差上界の評価をするときはHoeffdingの不等式でよく(📄Arrow icon of a page link(講義ノート)統計的機械学習第3,4回 )そこでは、上界は以下のようになっていた。

2n(logH+log(2/δ))\sqrt{\frac{2}{n} (\log |\mathcal{H}| + \log(2 / \delta))}

このルートの中の左辺がRademacher複雑度にあたるもの?であるが、見事なまでに一致している。

Massartの有限仮説の補題

ARn\mathcal{A} \in \mathbb{R}^nの有限集合とする。

M0,supaAi=1nai2M2Eσ[supaA1ni=1nσiai]2M2logAn\exist M \geq 0, \sup _{\mathbf{a} \in \mathcal{A}} \sum_{i=1}^n a_i ^ 2 \leq M ^ 2 \\ \mathbb{E}_{\sigma} [\sup _{ \mathbf{a} \in \mathcal{A}} \frac{1}{n} \sum_{i=1}^n \sigma_i a_i] \leq \frac{\sqrt{2 M^2 \log |\mathcal{A}|}}{n}

証明

まず、一般的に有限集合XXにおいて、f(x)=supxXf(x)f(x^*) = \sup _{x \in X} f(x)をとる。この時、指数関数は単調増加関数なので、以下の式はもちろん成り立つ。このようにsup\supをいじることで、Rademacher複雑度をどうにかできる。

exp(f(x))=supxXexp(f(x))f(x)=log(supxXexp(f(x)))\exp(f(x ^ *)) = \sup_{x \in X} \exp(f(x)) \\ f(x ^ *) = \log (\sup_{x \in X} \exp(f(x)))

証明の本体を説明する。

まず、任意のλ>0\lambda > 0を考えて、それを示したい式の左辺になぜか乗じる。

Image in a image block
  • まず、先ほどの一般的なsup\supの変形を利用する。supA=log(sup(exp))\sup A = \log (\sup (\exp))という感じ。
  • 2行目から3行目はsup\supを総和で上から押さえている。よくある変形テクらしい。
  • 3行目から4行目は、Jensenの不等式を使う。log\logは凸関数であるので、Jensenの不等式により凸関数h=logh = \logは以下が成り立つ。
    • つまり、凸関数に代入した後の和(や期待値)より、和(や期待値)をとった後凸関数に代入したほうが等しいか大きい
h(E[X])E[h(x)]h(\mathbb{E}[X]) \leq \mathbb{E}[h(x)]

さらに式変形を重ねていく。exp\expの中の総和を外に出して\prodにすることができ、Eσ\mathbb{E}_\sigmaaA\mathbf{a} \in \mathcal{A}の総和の中に入れていい。

ここで、指数関数の中の総和を外に出したうえ、Eσi\mathbb{E}_{\sigma_i}を中に持ってきたことによって、独立した各変数の期待値の積という形にすることができ、操作しやすい。これもよくやる変形。

=1nlog(aAi=1nEσi[exp((λσiai))])= \frac{1}{n} \log (\sum_{\mathbf{a} \in \mathcal{A}} \prod_{i=1}^n \mathbb{E}_{\sigma_i} [\exp((\lambda \sigma_i a_i))])

ここからもっと変形していく。ここでやりたいのは、Rademacher変数の期待値の部分を上から押さえることで消滅させたい。こういう時は、Rademacher変数による影響を高々で抑えていくことができる。

=1nlog(aAi=1n12exp(σiai)+12exp(σiai))1nlog(aAi=1nexp(λ2ai22)) = \frac{1}{n} \log (\sum_{\mathbf{a} \in \mathcal{A}} \prod_{i=1}^n \frac{1}{2} \exp(\sigma_i a_i) + \frac{1}{2} \exp(- \sigma_i a_i)) \\ \leq \frac{1}{n} \log (\sum_{\mathbf{a} \in \mathcal{A}} \prod_{i=1}^n \exp(\frac{\lambda ^ 2 a_i ^ 2}{2}) )

ここでは、以下の2点を利用した。

  1. Rademacher変数を分解した。半々の確率で+1や-1をとるというのを愚直に分解すると、簡単な目的関数ならそれだけですっきりする。
  2. 指数関数については、以下の特性がある。
exp(x)+exp(x)2exp(x22)\frac{\exp(x) + \exp(-x)}{2} \leq \exp(\frac{x^2}{2})

最後の仕上げの証明の式変形をする。

Image in a image block
  • Massartの有限仮説の仮説を用いることで、上限があるということ。これを第2から第3行目への式変形で使用した。
  • A\mathcal{A}自身も有限集合であるという仮説であるので、元の数で抑えることができる。

ここまでで、大体Massartの有限仮説の証明は終わる(おおむね形が出てきた)。しかしなぜλ\lambdaが必要なのだろうか?最初にλ\lambdaを付け加えておくと、exp(x2/2)\exp(x^2/2)となる部分でλ2\lambda^2を作れて、最終的に相加相乗平均のかたちにできるからだ。

両辺をλ\lambdaで割ると、以下のようになる。

Image in a image block

相加相乗平均を用いて上限を低く抑えることを考える。書いてあるように、λ=2logAM2\lambda = \sqrt{2\frac{\log |\mathcal{A}|}{M^2}}とすれば、上限を低く抑えて最終的に、2M2logA/n\sqrt{2M^2 \log |\mathcal{A}|} / nとなる。

気持ち: 非常に技巧的な証明ですね!

汎化誤差

やりたいことは、L(h^)L(h)L(\hat{h}) - L(h^*)を、1δ1 - \delta以上の確率でϵ\epsilonに抑えたいということ。

これについていろいろ今まで考えてきた 📄Arrow icon of a page link(講義ノート)統計的機械学習第2回 📄Arrow icon of a page link(講義ノート)統計的機械学習第3,4回 が、別解もあるので軽く紹介していく。

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^*) \}
  • 一項目の{L(h^)L^n(h^)}\{L(\hat{h}) - \hat{L}_n(\hat{h})\}は、h^\hat{h}は訓練データに依存するため、L^n(h^)\hat{L}_n(\hat{h})は独立な損失関数の和とならず、確率的なふるまいを分析するのは難しい
  • {L^n(h)L(h)}\{ \hat{L}_n(h ^ *) - L(h^*) \}hh^*は訓練データから独立しているので、分析は容易である。
    • 大数の弱法則で0へ収束するとわかる。
    • 中心極限定理で、収束速度はO(1/n)O(1 / \sqrt{n})であるともわかる。

汎化誤差の導出で今までは、指数関数、Hoeffdingの不等式、McDiarmidの不等式で評価していた。これらについて別解を考えてみる。

McDiarmidの不等式で全部評価

Image in a image block

同じ仮説に対して、違う損失関数のものは、suph\sup_hで抑えられる。それを使い、McDiarmidの不等式に代入して終わり。

G^n\hat{G}_nを作り出す。

Image in a image block

h^\hat{h}は嫌なので、減らしていきたい。実はその部分はG^n\hat{G}_nであったので、変形していく。期待値からの外れをわざわざ作り出して、

  • (A)は普通に抑えられる。
    • 普通のHoeffdingの不等式で抑えられる。
  • (G)は中心極限定理で評価できる。まさにMcDiarmidの不等式で評価する。
  • E[G^n]\mathbb{E}[\hat{G}_n]をどう評価するか?ここは前に議論した通りRademacher複雑度となる。
Image in a image block