expressivityまとめこんにちは。データサイエンスチームのtmtkです。generalization」の一部を解説・追試します。generalization」はディープラーニングの汎化誤差(=訓練誤差とテスト誤差の差)についての論文です。regularizationの4つの貢献が挙げられています。expressivity」の部分について解説します。Awardに選出されています。tests」の項目は、「ディープラーニングモデルの訓練データのラベルをランダムなものに入れ替えても、モデルは学習ができる」というものです。V3やAlexnetなどで学習させています。実際に追試してみましょう。GPUにしたもので実験しています。ライブラリはKerasを使います。著者らはInceptionやAlexnetなどで実験していますが、今回は時間の節約のためにより小さいネットワークで実験することにします。ネットワーク構造はKerasのMNIST用CNNの例を参考にした小さなCNNです。論文と設定を似せるためにDropoutなどの正則化は除いています。必要なライブラリをimportし、定数を定義します。100次に、データセットとモデルを用意する関数を定義します。データとモデルを準備して返すだけです。modelまずは通常通りに学習をしてみます。epoch目で訓練データに対する正確度(accuracy)が1.0000になりました。学習完了後、テストデータセットに対して正確度が0.6759となりました。CIFAR-10は10クラス分類なので、正確度がランダムな1/10=0.1より大きいこのモデルはランダムよりも有意に正しく分類ができていることがわかります。次に、ラベルを完全にランダムに振りなおして学習をします。epoch目で訓練データに対する正確度が1.0000になりました。学習完了後のテストデータセットに対する正確度は0.0979でした。ランダムなラベルを学習しているので、テストデータについている正常なラベルについては当然何も学習ができていません。これら2つの場合について、学習の推移を可視化すると以下のようになります。収束までのエポック数に差はありますが、ラベルや画素をランダム化した場合でも損失関数がほぼ0に収束しています。実際、どちらの場合でも訓練データに対する正確度が100%に達していました。この畳み込みニューラルネットワークは、ラベルがランダムな場合であっても学習データのサンプルすべてのラベルを記憶することができるということになります。trade-off」などに発展しているようです。元の論文中では、サンプルの一部に対してラベルをランダム化する実験や、画像中の画素の位置をランダムに入れ替える実験なども行われています。VC次元などとの関連も議論されています。詳しくは、元の論文をご覧ください。)にも、同様に訓練誤差が0近くに収束し訓練データに対する正確度が100%に達しました。収束の様子は真のラベルの場合とランダムなラベルの場合の中間くらいでした。pixels」(画像ごとに画像内でランダムに画素を並び替えたもので学習)と同じような結果だと思います。theorem)のサンプルサイズ有限の場合といった内容です。functions」のものが有名です。シグモイド関数とする。形の関数が存在する」というものです。標語的にいえば、「隠れ層が1層のニューラルネットワークを使えば、隠れ層のユニット数を大きくしていくことで、『理想のモデル』にいくらでも近いモデルを(訓練や最適化さえうまくいけば)作ることができる」という感じの内容です。ニューラルネットワークでモデリングしているというものです。ニューラルネットワークとして構成することを考えています。expressivity」に関する定理は、次のものです。個のパラメータをもちReLUを活性化関数とする2層のニューラルネットワークで表現できる。(拙訳)証明は、条件を満たす2層のニューラルネットワークを具体的に構成する形で書かれています。個」という部分の数え方が不明瞭ですが、証明中の構成を読むとわかります。論文中の証明にしたがえば、言明中のニューラルネットワークは、以下の形式で構成されます。もち、これらのパラメータによってニューラルネットワークによる関数はと表されます。個のパラメータをもつというわけです。先ほどの式は別の書き方をすると、と書くことができます。適用するものとします。この式を踏まえて改めてこの関数をあらわすニューラルネットワークについて考えてみましょう。ユニットの出力層からなっています。足し、最後に活性化関数ReLUを通しています。足し、活性化関数は使っていません(あるいは線形な活性化関数(恒等写像)を使っています)。