Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第3回 ゼロから作るオトナのDeep Learning

第3回 ゼロから作るオトナのDeep Learning

Takahiro Yano

May 10, 2017
Tweet

More Decks by Takahiro Yano

Other Decks in Programming

Transcript

  1. DeepLearningのライブラリ Kerasを使おう • Kerasは人気のDeepLearningのライブラリ – Tensorflow/Theranoをバックエンドにして動く • 日本語のドキュメントある https://keras.io/ja/ •

    現在、Kerasは過渡期にある – マルチバックエンド版(通常版) Keras → Keras2へ (2017/3月) – Keras2が順次TensorFlowに組み込まれる • Tensorflow 1.1版 tf.contrib.keras (2017/4/21) • Tensorflow 1.2版 tf.keras (2017/6~?)
  2. 紹介するモデル • 画像 – Mnist(手書き数字の認識、分類問題) – SRCNN(画像の超解像、回帰問題) – VGG16(一般物体認識、分類問題) –

    SRGAN(画像の超解像、回帰問題) • テキスト – IMDB(映画レビューのネガポジ分類) • LSTMまたはCNNで解く
  3. アジェンダ • Convolution処理(畳みこみ)について – 平均化、微分、鮮鋭化など • 画像のDeeplearning – Convolutional Neural

    Network(CNN) • ConvolutionをDeeplearningで使おう! • Conv2D層、Conv1D、Conv3D層 – 分類問題、回帰問題の例 • テキストのDeeplearning – RNN/LSTM層について – 分類問題、回帰問題の例
  4. アジェンダ • Convolution処理(畳みこみ)について – 平均化、微分、鮮鋭化など • 画像のDeeplearning – Convolutional Neural

    Network(CNN) • ConvolutionをDeeplearningで使おう! • Conv2D層、Conv1D、Conv3D層 – 分類問題、回帰問題の例 • テキストのDeeplearning – RNN/LSTM層について – 分類問題、回帰問題の例
  5. アジェンダ • Convolution処理(畳みこみ)について – 平均化、微分、鮮鋭化など • 画像のDeeplearning – Convolutional Neural

    Network(CNN) • ConvolutionをDeeplearningで使おう! • Conv2D層、Conv1D、Conv3D層 – 分類問題、回帰問題の例 • テキストのDeeplearning – RNN/LSTM層について – 分類問題、回帰問題の例
  6. 通常のConvolutionと CNNのConvolutionの違いは? • CNNのフィルタは、係数が未知数! – 学習で最適化する ? ? ? ?

    ? ? ? ? ? 通常のConvolution フィルタの係数が決まっており 用途も決められていた(平均化など) CNNのConvolution フィルタの係数が決まっており 人工知能の目的に応じて 自動的に最適な値になる
  7. Dropout層 • 過学習を抑制する方法として知られている • 学習が進まないときの調整項目としても有効だと思う – NNのパラメータ空間がランダムに変化する • いろんなところに挟んでみよう ←Dense

    ←Dense ←Dense ←Dropout (線の切断) ←Dropout (線の切断) Kerasなら1行でOK 引数には切断する割合を入れる 引数には0~1の値をいれる (0~0.5が好ましい)
  8. Neural Networkの学習の ざっくりとした説明(復習) [ ] OR NAND OR 2 NAND

    2 OR 1 NAND 1 b b w w w w ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ AND AND 2 AND 1 b w w ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ https://elix-tech.github.io/images/2016/kaggle_facial_keypoints/animation1.gif ( ) ⋯ , , , , 2 1 2 1 w w x x f y = 正解データ : y′ 2 y y loss − ′ = NNのパラメータ空間 等高線はlossをあらわす 転がってる球が現在のNNの状態 転がり方が最適化方法の違い は予測データ y 定数 定数 変数 XORのNN 2 w 1 w y′ ) 比較(loss 入力データ
  9. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network (SRGAN,

    2016.9) • https://arxiv.org/abs/1609.04802 正解画像 SRGAN SRResNet Bicubic拡大 GANは驚異的な性能を いろんな分野で出している
  10. アジェンダ • Convolution処理(畳みこみ)について – 平均化、微分、鮮鋭化など • 画像のDeeplearning – Convolutional Neural

    Network(CNN) • ConvolutionをDeeplearningで使おう! • Conv2D層、Conv1D、Conv3D層 – 分類問題、回帰問題の例 • テキストのDeeplearning – RNN/LSTM層について – 分類問題、回帰問題の例
  11. RNN/LSTM NN NN + state vector data1 data2 data3 :

    data1 data2 data3 : RNN/LSTM 普通のNN output output
  12. RNN/LSTM NN NN + state vector data1 data2 data3 :

    data1 data2 data3 : 過去のデータも把握する 入力されたデータ だけ把握する RNN/LSTM 普通のNN output output
  13. RNN/LSTM NeuralNetworkの単層 (行列+活性化関数) ベクトルの要素ごとの演算 ベクトルの結合 ベクトルのコピー 結合 コピー コピー コピー

    コピー コピー 要素ごとの掛け算 要素ごとの足し算 要素ごとに tanhを施す 行列がそれぞれの箱に 1つずつ入っている。 A,B,C,Dみたいな。
  14. 忘却ゲート • 忘れ方は Wf と bf で決定される • Wf と

    bf は教師データを利用した学習で求める 上式で ft を出したら ft ⊗ Ct-1 で忘却! シグモイド関数 (0〜1の範囲の出力にする) • 前時刻のステートベクトルの内容をどれだけ消去するかを 決定する
  15. RNN/LSTM 動作まとめ • ステートベクトルから情報削除(忘却) • ステートベクトルに情報負荷(入力) • ステートベクトルから必要な情報だけ読み出し(出力) • なにを忘れるか、なにを入力するか、何を読み出すかは  

    学習データによって自動的に最適化される • この方法を使うと短期記憶、長期記憶どちらもうまくいく、   と言われている – 自然言語処理を代表として、時系列データでよく利用される手法 • 参考 – http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  16. END