C&C受賞記念講演行ってきた Hopcroft編 (2/3)

目次

Aho編:
pandaman64.hatenablog.jp
Hopcroft編: ここ
Ullman編:
pandaman64.hatenablog.jp

メモ

Ahoに続いて二人目の講演はHopcroftでした.

Hopcroftが若手に送るメッセージは「教官が勧めてくることはやらない方が良い.どうせできることだから.」という感じ*1

農業革命,産業革命,(後なんかあった気がする)に続く現在起こりつつある革命が情報革命(information revolution)であり,機械学習が情報革命の引き金を引きつつある.

データを分類するとき,データが線型分離できるとしたら簡単で精度も良い.
けど,現実には非線形なデータもたくさんある.
そんなときには高次元に移すような関数を用意して,高次元空間(無限次元なこともある)で線型分離すればいい.
実は個々の関数の値は必要なくて,内積だけ計算出来たら良い.
なので,カーネル行列を使うことで計算が簡単になる.カーネルが正定値なら対応する(高次元への)関数が存在する*2
カーネルを使って機械学習する手法の一つがSVMSVMは15~20年前は良く使われていた.

2012年にImageNetの誤答率ががくんと下がる.
これはニューラルネットワークが使われた結果.
今ではニューラルネットワークは人よりも精度が良くなっている.なんでうまくいくのかは分かってないけどね.

ここら辺にCNNの解説とかしてた気がする.どうでもよかったのでメモに無い.

ここから研究の紹介.
画像をNNに通して得られたベクトルをActivation Vectorと呼び,Activation Vectorの空間をActivatioin Spaceと呼ぶ.
Activation Vectorには画像の内容が入っていると考えられる.
画像→Activation Vectorの変換はNNに入れるだけだが,逆変換(Activation Vector→画像)はどうしたら良いだろう.
まずはランダムな画像を生成してNNに通す.
そこで得られたActivation Vectorから所望のActivaton Vectorの方向に勾配降下法で画像を変えていけば良い.

これをやると例えば画像のスタイル変換ができる.

  • 若い人の写真の年をとらせたり
  • コーネル大学の建物を中国風にしたり

できる.これを理論的に考えると,絵のスタイルや猫が写っているという情報は低次元の多様体としてActivation Spaceに埋め込まれていると考えられる.
ここからDeep Learningの学習理論に繋がるかもね.

コーネルの学生がDLの学習過程を観察中に気づいたことに次のことがある.
学習の初期の過程では,ニューロンのノードのうち3つが画像のサイズを学習していた.
しかし学習が進むにつれて,この3つのノードのうち2つは画像のサイズを学習するのを諦めて,他のものを学習し始めた.
時間が足りなかった*3ので,現象を見つけただけで理由は分かっていない.
これは一体どうしてなんだろうね*4

DLではパラメータに対して大量の極小点が存在するので,これらから良いものを選ぶ必要がある.
二つの極小点が同じ誤差値をとるが,片方は広い(傾きの変化がゆるやか)極小点でもう片方は狭い(傾きの変化が急)とする.
このときどっちの極小点を選ぶのが良いだろうか?
Hopcroftは広い方が良いと思っている.
まず,汎化誤差は訓練誤差から少しずれている.
広い極小点の場合は変化が小さいので,訓練誤差の極小点が汎化誤差の対応する極小点からずれていてもあまり問題は無い.
一方,狭い極小点の場合は位置の微妙なずれが大きな差になってしまう.
だから広いほうが良い.

同じネットワークに別々のタスクを学習させて,その学習結果のネットワークを混ぜて使うという研究がある.

GANいいよね・・・

5歳の女の子*5は写真を1枚見ただけでそれがどういうもの*6なのか分かる.
一方で,DLの場合はそれぞれの対象について数千枚の写真が必要.
人間は「写真を見たときにどうやって対象を理解するのか」を学ぶことができるが,今のAIつまりパターンマッチングではそれはできない.

*1:曖昧

*2:ここ聞き間違えてるっぽい.カーネルは関数のことで行列はグラム行列と呼ばれるもののようだ. c.f. xiangze.hatenablog.com

*3:その学生は1ヵ月しかいなかった

*4:たまたまだと思う

*5:Hopcroftの娘だった気がする

*6:曖昧