ヒミツこの広告は、90日以上更新していないブログに表示しています。Learning先日、当社と共同研究をしている庄野研のゼミに参加させてもらった。その日は論文の輪講の日だった。話が面白かったので、以下メモとして記してみる。#なお、このメモはDLについての基本的な仕組みは知っている人を前提に書いている。Net)という学習・識別器がある。氏が開発した、152層!のニューラルネットである。Deep"というものがある(追記:さらに最近では、Wideも重要という論文も出てきている)。同じニューロン数で学習するなら、ネットワークの各層の幅(ニューロン数)をワイドにするよりも、階層の深さをよりディープにしたほうが性能があがるという性質である。#なお、これは経験則に近いものらしく、理論的になぜそうなのかというのは、あまり良く分かってはいないらしい。『どんどん階層を増やせば良いじゃない』か、と誰でも考えるが、問題はそれほど単純ではない。従来の方式で単純に階層を増やしすぎると勾配消失(vanishing)や勾配発散(exploding)という問題が発生してしまって、うまく学習できなくなるのである。de-gradationというニュアンスであろうか。勾配消失が起きる理由DLで学習する際には各層ごとに活性化関数を微分して勾配を求める。入力層に近い『浅い』層ではその層への入力と出力の差(accuracy)が大きいため、微分操作は有効に働く。学習が層の『深い』段階へと進むにつれ、(当たり前だが)学習が収束に近づくと入力から出力への変換精度がどんどん上がっていくため、入力と出力の差は極めて小さくなり、勾配を取りにくくなる。層から層への伝播は掛け算の性質をもっているため、この差の減少傾向は指数関数的になる。層を増やしていくと、あっという間に勾配が消えてなくなってしまうのである。勾配発散が起きる理由DLでは、ある層のニューロンは次の層のニューロンと重みWで積和をとって結合している。この重みが1以上ならば、多層になると『重み✕重み✕重み・・・』が発散する可能性があることがわかる。