mits58のメモ

メモ 参考にしないでください

深層学習の数理

明日から出張&来週(?)〆切の原稿があるのに放置して下記を読んでいました……

www.slideshare.net

深層学習について最近色々な本を漁ってますがふんわりとした理解しかできていなくつらい。 あとスパース学習(Lasso)あんまりわからんので後で調べる

深層学習の理論的課題とは

表現能力

  • ニューラルネットは、ReLUとかSigmoidだったら万能性を有する(つまり、どんな関数でも近似できる)
  • Cybenkoの理論によると、関数がSigmoid的(つまり負の方向に行くと0、正の方向だと1みたいな関数)だと、任意の連続関数を近似できる
    • なんでかっていうと、Sigmoid関数はパラメタをうまく調節すると任意のStep関数を近似できる
    • 任意のStep関数を近似できると、うまくそれらの和や差を取ることで、cos、sinが近似できる
    • cos sin が近似できるとフーリエ変換ができる
    • という流れ(大雑把だけど)
  • Ridgelet変換のくだりはマジでわからんかった……任意の連続関数が、許容条件を満たす活性化関数の下でいい感じに書けることと、そのいい感じに書いた関数が3層NNで近似可能ということを言ってるのかなぁと(それこそ鈴木先生が書かれていた「Ridgelet変換で双対空間へ行き戻ってくる」という表現が正しそう)
  • Gaussian Kernelの万能性も気になる……(授業で適当に使ってみたけどなんでなんや)

まあここまでで3層NNで任意の連続関数が近似できるのわかった、けどなんで層が多いほうがいいん? -> 深さに対して指数的に表現力が上昇するため

  • NNの表現力を、平面をどれだけの領域に分割できるかと捉える
  • すると、深さに対しては指数的に分割領域が増えて、隠れユニットに対しては多項式的に増える
  • Arora et al. 2018は読みたいなぁ(でも余裕なし)
  • カーネル法と深層学習は似ていて、カーネル法は1層目の学習は行わないけど、深層学習では1層目の学習も行う
  • つまり、深層学習は各層で逐次的にカーネル関数を学習しているといえる(らしい)
  • つよそう(こなみ) ただ、論理をintuitiveにでも理解したい(あんまりわからんかった)

汎化能力

  • パラメタ数 >> サンプル数となるのはつらい(なんでかっていうとサンプルにぴったり合うモデルができてしまうので)
  • だけど、NNは訓練誤差が0になってからもテスト誤差が減少し続けるらしい
  • ふつう、モデルが複雑になると途中でoverfittingが起きてしまう
  • けど、ある一定のしきい値を超えると逆にvarianceが減っていく(らしい)(設定にもよるらしい)
  • 陰的正則化も聞いているかもしれないという話(活性化関数入ってるとあんまりわかってないらしい)

というか後半全然わからんかった……まじの関数解析が始まっていた

最適化能力

  • NNの目的関数は非凸なので、大域的最適解ではなく局所最適解や鞍点に陥る可能性がある
  • ただし、線形NNの場合、局所最適解は全て大域的最適解となる
    • 横幅を広くとれば大域的最適解が求められる(らしい)

というかこれもわかっていなくてダメでした

雑感

  • 結構数理的解析が行われているのかと思いきや、あまりわかってない部分も多々あるようで
  • 解析学と密接に関係していてちゃんと勉強しないとなぁという気持ちに(つらい)
  • 感覚で捉えたけど、また勉強し直したら読みたいスライドではある