LoginSignup
32
31

More than 5 years have passed since last update.

Deep Learningとはなにか

Last updated at Posted at 2016-06-03

凄い凄いと言われてもピンとこない人向け。(という体の社内勉強会資料)
機械学習からの橋渡しです。

Deep Learning とは (as TL;DR)

  • 機械学習(Machine Learning)の一種
  • 多層(Deep)のニューラルネットワークを使う
  • 特徴量抽出を自動化できる
  • 学習コストは高いが、人間の労力を抑えられる
    • ただし、訓練データは依然として手作業で作成する必要がある

機械学習の中での位置づけ

機械学習の構成要素

  • 学習データ
  • 特徴量
  • アルゴリズム

「学習」方法は3通りある

  • 教師あり学習(Supervised learning)
  • 教師なし学習(Unsupervised learning)
    • Deep Learningは主にこれ
  • 強化学習(Reinforcement learning)

代表的なアルゴリズム

  • 決定木
  • サポートベクターマシン
  • クラスタリング
  • ニューラルネットワーク
    • Deep Learningはこの一角
  • ベイジアンネットワーク
  • 強化学習
  • 遺伝的アルゴリズム

ニューラルネットワークをもっと細かく

構成要素

  • 入力層
  • 隠れ層
  • 出力層

層間の繋ぎ方

  • 全結合

fullConnect.png

  • 局所結合

localConnect.png

※図はあくまで大雑把な概念です

代表的なアプローチ

  • 畳み込みニューラルネットワーク(CNN)
    • 画像認識に非常によく使われる
    • 局所結合
  • 再帰的ニューラルネットワーク(RNN)
    • 音声認識によく使われる
    • 全結合
  • 長・短期記憶(LSTM)(RNNの一種)
  • ボルツマンマシン

代表的なテクニック

  • パーセプトロン(順伝播法)
    • 直感的だが、計算量が膨大になりやすい
  • 勾配降下法
  • 誤差逆伝播法
  • 事前学習
    • いい塩梅の初期パラメータを設定する手法
  • プルーニング
    • 学習済みネットワークの結合を削って計算量を減らす

畳み込みニューラルネットワーク(Deep Learningの例として)

  • Deep Learningとして世に広く知れ渡るきっかけになったアプローチ。
    • 隠れ層が多い(深い)ネットワークの利用により、画像認識の成功率が飛躍的に向上した
  • 画像認識に非常によく使われる
  • (隠れ層で)異なるフィルターを次々に適用して画像処理をするイメージ

Deep Learningのメリット・デメリット

メリット

  • 特徴量抽出をしなくてもよい
  • 学習済みのモデルを認識に使うのは計算コストが小さい

デメリット

  • 大量の学習データが必要
  • 学習の計算コストが大きい
  • 層が多いほどブラックボックス化しやすい

小ネタ

本当にブラックボックスなのか

CNNについては多少の意味づけが可能。

  • 学習済みのネットワークが、人間が物を見る時の認識と酷似している
    • (入力層に近い層が)視覚野のV2の活性化パターンと似ている

学習済みのパターンの例
https://devblogs.nvidia.com/parallelforall/deep-learning-computer-vision-caffe-cudnn/

Deep Learningを始めるには

ハードウェアが必要

  • TESLA(NVIDIAのGPGPU)
  • NVIDIAのGPUを使えるAWS
  • TPU(Tensor Processing Unit)

GPUはAMDも出しているが、Deep LearningはCUDAの独壇場となっている。
TPUの利用が一般ユーザ向けに開放されるかは2016/06時点では不明。

ソフトウェアも必要

(学習用の)フレームワーク

  • TensorFlow(C/Python)
    • スケーラビリティ重視
  • Chainer(Python)
    • 柔軟性重視
  • Torch7(Lua/C)
    • 高速
  • Caffe(C/Python/Matlab)
    • CNN特化

学習済みネットワーク(実機用推論エンジン)

まずは入門から体験したい!

NVIDIA Deep Learning学習コース

  • 日本語コンテンツ
  • 基本プレイ無料
    • AWS上のGPUを無料で使える学習コース。
    • フレームワークを選んで実際にDeep Learningを動かしてみるところまでが無料。
    • もっと細かい内容は有償提供(だが、実質AWS利用料だけで学習できるとのこと)

参考

32
31
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
31