Deep Learning の概要
はじめに
去年の 機械学習×プログラミング勉強会 vol.2 で、Deep Learning の概要について発表させていただきました。誘っていただいた @07c00 さん、ありがとうございました。
詳しくは上記のスライドを御覧ください(注:Auto Encoder と DBM をごっちゃに説明しているので正しくありません、そのうち直します)。
Deep Learning とは
Deep Learning は、ニューラルネットワーク*1のひとつで、5層とか10層とか、従来の手法ではうまく学習できなかった深い層の学習をうまくできるようにしたアルゴリズムです。
Deep Learning が目指したところ
入力に近い層では、単純な特徴抽出しかできませんが、それらの重み付け和をとると表現能力が上がります。それをさらに上位の層に入力していけば、どんどんモデルの表現能力が上がると考えられます。これが基本的なアイディアです。
人間の大脳新皮質も同じように情報を処理していると考えられており、たとえば視覚野ではV1と呼ばれる領域では、特定の角度の線*2 にだけ対応する部分が集まっています。
V2は、V1の入力を受け取っており、つまり複数の線の組み合わせを表現していると考えられています。ひとつひとつは単純な刺激でも、階層的に特徴を抽出・組み合わせていくことにより、高度な表現ができるわけです。
従来手法の問題点
ところが、これは考え方は合っているのですがなかなかうまくいきません。たとえば、Backpropagation は発火するノードがスパースになるようには設計されていませんし、多層になると誤差信号はうまく伝わらなくなる問題 ( Vanishing Gradient Problem )があります。
Deep Learningでは、 Restricted Boltzmann Machine (RBM) を 学習させ、1層ずつ増やしていく方法でこれらの問題を解決しています。
Deep Learningの欠点
Deep Learningが画像認識において衝撃を与えたことは間違いありませんが、学習が遅い、パラメータ調整が面倒くさいなどの問題もあります。
また、大脳新皮質に似ていると思われる処理から、ハードAIへの応用を期待する記事も見られますが、このブログでは
To paraphrase an old parable, Hinton has built a better ladder; but a better ladder doesn’t necessarily get you to the moon.
と述べられているのが印象的ですね。
さいごに
Deep Learning は従来職人技だった特徴量抽出を教師なし学習でやってしまうという点で画期的です。これにより、特徴量の設計が難しいがゆえに機械学習でうまく扱えなかった問題を改善できるかもしれません。
RBMの詳細な部分までは時間の都合上調べきれなかったので資料も概要的なものにとどまっていますが、このスライドに目を通せば他のWebページや論文の内容が理解しやすくなるのではないかな、と思います。