オタク男子の勉強日記

コンピュータサイエンス、データサイエンスの日々の勉強日記

汎化誤差を抑える様々な手法とその関係性(1)

今回は、二値ラベル分類の誤差解析に役立ついろいろな指標について解説していきます。

まずは、「経験ラデマッハ複雑度」です。「経験ラデマッハ複雑度」とは、関数のクラスFに対して定まる集合で、

\displaystyle{
 R_{n}\left( F\right) = E\left[ \dfrac{1}{n}\sup _{f\in F}\sum ^{n}_{i=1}\sigma _{i}f\left( x_{i}\right) \right]
}
ただし、\sigma_1, \ldots, \sigma_nP(\sigma_i=1) = P(\sigma_i=-1) = 1/2を満たす確率変数で、期待値はZ_1, Z_2, \ldots, Z_nおよび\sigma_1, \sigma_2, \cdots, \sigma_nについてとっています。

これは、関数のクラスの「複雑度」を表す一つの指標です。

直観的には、\sigma_iはランダムラベルとみなすことができ、\displaystyle{
\sigma  _ {i} f\left( x _ {i}\right) \gt0
}のとき関数fの当てはまりが成功しており、そうでないとき失敗しています。つまり、ラデマッハ複雑度は、どんなラベルに対しても、関数をクラスの中からうまく選べば、ある程度大きな値をとる(=当てはめることができる)ことを(大雑把には)意味しています。

これは、何に役立つかというと深層学習における汎化誤差の解析です。詳しくは述べませんが、この値を用い、「どれぐらい過学習してしまうか」を確率的に不等式で抑えることができるのです。

この「ラデマッハ複雑度」についてですが、以下の不等式が「Massartの補題」というものから成立することが知られています。(証明略)

二値仮説関数の集合をhのクラスをHとし、Hは有限集合とすると

\displaystyle{
R_{n}\left( H\right) =\sqrt{\dfrac{2\log \left| H\right| }{n}}
}
以上のことを仮定して、growth function, VC dimension, covering numberについて、さらにそれらの関係性について説明をしていきます。

まず、growth functionとは、fを二値関数としてそのset をFとすると、n個の点x_1, x_2, \ldots, x_n\displaystyle{
\tau _ {F}\left( x _ {1}, \ldots ,x _ {N}\right):=max _ {\left( x _ {1}, \ldots ,x _ {N}\right) }\tau _ {F}\left(x _ {1}, \ldots ,x _ {N}\right)
}と定義したとき

\displaystyle{
\tau_{F}\left( n\right) :=\max _{\left(x_{1}, \ldots ,x_{N}\right) }\tau_{F}\left( x_{1},\ldots,x_{N}\right)
}

直観的には、n個の点をうまく選んで、fを色々変えたときのありうる結果の場合の数の最大値になります。クラスの自由度が高いほど(=複雑なほど)この数が大きくなることがわかると思います。

このgrowth functionについて、①式より

\displaystyle{
R_{n}\left( F\right) \leq \sqrt{\dfrac{2\log \tau_{F}\left(n\right) }{n}}
}
が成立します。

この式より、ラデマッハ複雑度の方が汎化誤差の不等式を強く抑えることができる、ということがわかります。