Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Deep learning実装の基礎と実践

97,411 views

Published on

2014年8月26日の日本神経回路学会主催セミナー「Deep Learningが拓く世界」における発表スライドです。Deep Learningの主なフレームワークで共通する設計部分と、実験の仕方について説明しています。

Published in: Engineering

Deep learning実装の基礎と実践

  1. 1. ⽇日本神経回路路学会セミナー Deep Learningが拓拓く世界 Deep Learning 実装の基礎と実践 2014/08/26 京都⼤大学東京オフィス 株式会社Preferred Networks 得居 誠也
  2. 2. ⾃自⼰己紹介 l 得居 誠也 (Seiya Tokui) l Preferred Networks リサーチャー l Jubatus のアルゴリズム開発 – Jubatus: NTTとPFIで共同開発しているオープンソースの分散 リアルタイム機械学習基盤 http://jubat.us/ l 現在は映像解析とディープラーニングの研究開発に従事 2
  3. 3. ニューラルネットの基礎、実装、実験について話し ます l ニューラルネットの道具 – 全体の構成、⾏行行列列による表現、損失関数、誤差逆伝播、SGD l 主要な実装 – Pylearn2, Torch7, Caffe, Cuda-‐‑‒convnet2 l フレームワークの基本的な設計 – テンソルデータ、レイヤー、ネット、最適化ルーチン – アーキテクチャの記述⽅方法(宣⾔言的、スクリプティング) l 実験の進め⽅方 – データの前処理理、アーキテクチャの設計、パラメータの初期値、 正則化、学習率率率の初期値と調節、モーメンタム – 評価の⽅方法、プロット、パラメータの可視化 – 中断・レジューム、パラメータの差し替え 3
  4. 4. ニューラルネットの道具
  5. 5. Deep Learningいろいろ Neural Network: 右図のような 計算グラフで表される⾮非線形関数 Convolutional NN: 画像や⾳音声 などの構造を反映したNNの⼀一種 Deep Belief Network(左), Deep Boltzmann Machine(右): 多層のグラフィカルモデル(確率率率モデル) ※今⽇日は触れません “Deep” の定義は⽂文脈により様々。普通は3層以上で深いと⾔言われる 5
  6. 6. Feed-‐‑‒Forward Neural Network (結合)重み x ⼊入⼒力力層隠れ層隠れ層出⼒力力層1 wj1 x2 wj2 x3 wj3 x4 wj4 ユニット 活性 hj = f(wj1x1 + · · · + wj4x4 + bj) 活性化関数 バイアス項 = f(wj x + bj) 重みとバイアス項を調節 して、望みの予測を得ら れるようにするのが学習 の⽬目標
  7. 7. Feed-‐‑‒Forward Neural Network(⾏行行列列で書く) 各層をベクトルで表して以下のように書くことが多い h = f(Wx+ b) 下図のように3層の場合だと y = f3(W3f2(W2f1(W1x + b1) + b2) + b3) W1 W2 W3 x h1 h2 y
  8. 8. 最適化としての学習 l モデルの出⼒力力(予測)と正解とがよく⼀一致するほど⼩小さくなるよう な値(損失 loss)を考える l 各教師データごとの損失の平均を⽬目的関数とするのが⼀一般的 L(W) = 1 N XN i=1 `(y(xi;W), yi) l 学習=⽬目的関数の最⼩小化 ` y(x;W) (xi, yi)i=1,...,N W l 損失関数:エントロピー誤差(分類)や⼆二乗誤差(回帰) 8 損失関数 モデルの予測 各教師データ 予測器の重み minimize (パラメータ) W L(W) `(y, yi) = ky − y1k2 (⼆二乗誤差)
  9. 9. 最適化⼿手法:勾配降降下法 ⽬目的関数の勾配 gradient の⽅方向に向かって重みを動かしていく (次式の更更新を繰り返す) W W − ⌘rL(W) 学習率率率勾配ベクトル 9 L の等⾼高線 極⼩小点
  10. 10. 確率率率的勾配降降下法 Stochastic Gradient Descent (SGD) l 教師データ全部を⾒見見ず、⼀一部(ミニバッチ)だけを⾒見見て勾配を計算 する( :ミニバッチ) l 最初にデータセットをランダムシャッフルして、前から 個ず つミニバッチとして取り出して更更新するのが⼀一般的 – データの順序に偏りがある場合、シャッフルしないと性能が⼤大 きく落落ちる – 理理論論的には毎回ランダムにミニバッチを選ぶのが収束の速さと いう意味で良良いが、ランダムアクセスが増えるので実際には遅 くなることが多い 10 B |B| W W − ⌘ |B| X i2B r`(y(xi;W), yi)
  11. 11. モーメンタム法 l SGD は勾配のブレが⼤大きいとなかなか収束しない l ブレを低減するために、勾配の移動平均(モーメンタム)を使う 11 h h + μ 1 |B| Xn i2B r`(y(xi;W), yi), モーメンタムモーメンタム係数 W W − ⌘h. W(t) r` W(t

×