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

深層学習の基礎と導入に向けて

 深層学習の基礎と導入に向けて

近年の画像処理等の発展の原動力は深層学習である。 従来の人間が設計した処理パイプラインと異なり、 深層学習は入力を目的の出力に変換する任意の関数を訓練データから学習することができる。 この講演では、数学や必要なハードウェアについての解説を含めた初歩からの深層学習の基礎を、具体的な例を交えて紹介する。

シモセラ エドガー

March 20, 2018
Tweet

More Decks by シモセラ エドガー

Other Decks in Technology

Transcript

  1. 自己紹介 • 2015 年 7 月に BarcelonaTech で博士号を 取得 •

    2015 年 8 月から 2017 年 3 月ま で早稲田大学の研究院助教 • 2017 年 4 月から 同大学の研究院講師 • 2018 年 4 月から 科学技術振興機構のさ き がけ専任研究者 1
  2. 目次 1. 深層学習の歴史 2. 深層学習の基礎 • モデル • データ •

    学習 3. 必要な環境 • ハッ ド ウ ェア • フ レ ームワ ーク 4. 例1 : ラ フ スケッ チの線画化 5. 例2 : 白黒写真の色付け ε ! 2
  3. 深層学習の歴史 • 1957 Perceptron • 1980 Neocognitron Fukushima, K. “Neocognitron:

    a self organizing neural network model for a mechanism of pattern recognition unaffected by shift in position.” Biological cybernetics, 1980. 3
  4. 深層学習の歴史 • 1957 Perceptron • 1980 Neocognitron • 1986 Backpropagation

    Rumelhart et al. “Learning Representations by Back-Propagating Errors.” Nature, 1986. 3
  5. 深層学習の歴史 • 1957 Perceptron • 1980 Neocognitron • 1986 Backpropagation

    • 1998 LeNet LeCun et al. “Gradient-based learning applied to document recognition.” Proceedings of the IEEE, 1998. 3
  6. 深層学習の歴史 • 1957 Perceptron • 1980 Neocognitron • 1986 Backpropagation

    • 1998 LeNet • 2012 AlexNet • 2014 GoogleNet / VGG Krizhevsky et al. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems, 2012. 3
  7. 深層学習の歴史 • 1957 Perceptron • 1980 Neocognitron • 1986 Backpropagation

    • 1998 LeNet • 2012 AlexNet • 2014 GoogleNet / VGG • 2016 AlphaGo • … Silver et al. “Mastering the game of Go with deep neural networks and tree search.” Nature, 2016. 3
  8. 深層学習の歴史 • 深層学習は現代の人工ニュ ーラ ルネッ ト ワ ーク • なぜ深層学習?

    • 様々 の問題に対応 • 圧倒的な性能 Jia Deng (2016). ILSVRC2016 object localisation: introduction, results. 3
  9. 深層学習の歴史 • 深層学習は現代の人工ニュ ーラ ルネッ ト ワ ーク • なぜ深層学習?

    • 様々 の問題に対応 • 圧倒的な性能 • なぜ今色々 使える ? • GPU によ る 計算効率 • 大規模なデータ セッ ト Jia Deng (2016). ILSVRC2016 object localisation: introduction, results. 3
  10. 深層学習 • f (x) = σ(Wx) の層を 重ねて構造 • パラ

    メ ータ を 学習 • ハイ パーパラ メ ータ を 手動で設定 5
  11. 従来の機械学習 • 手動で決めた特徴の入力 • 機械学習モデルは特徴から 出力への変換を 学習 • 特徴によ る

    精度が制限 特徴抽出 機械学習 入力 出力 • 深層学習は特徴抽出と 機械学習モデルを 一緒に学習する • ヒ ュ ーリ スティ ッ ク を 避け、 データ 依存になる 深層学習 入力 出力 6
  12. 深層学習のよ く ある 問題 • データ を 集める • 量、

    室、 アノ テーショ ン… • モデル構造を 決める • CNN、 深さ 、 レ イ ヤの種類… 入 正 出 CNN 7
  13. 深層学習のよ く ある 問題 • データ を 集める • 量、

    室、 アノ テーショ ン… • モデル構造を 決める • CNN、 深さ 、 レ イ ヤの種類… • モデルの学習 • 学習週報、 学習率、 バッ チサイ ズ… ロス 逆 習 入 正 出 CNN 7
  14. 深層学習のよ く ある 問題 • データ を 集める • 量、

    室、 アノ テーショ ン… • モデル構造を 決める • CNN、 深さ 、 レ イ ヤの種類… • モデルの学習 • 学習週報、 学習率、 バッ チサイ ズ… ハイ パーパラ メ ータ を たく さ ん決めないと いけない! 7
  15. 深層学習の例 ・ 分類 • 順伝播 (推定) • 入力に対し て推定する ニューラル

    ネットワーク 23.8% Music Store 15.3% Basement 7.9% Cathedral 2.1% Airport ... 推定 順伝播 8
  16. 深層学習の例 ・ 分類 • 順伝播 (推定) • 入力に対し て推定する •

    逆伝播 (学習) • 誤差関数でモデルの出力と 正解データ を 比較 • 誤差関数を 最終化する よ う にモデルのパラ メ ータ を 更新 ニューラル ネットワーク 23.8% Music Store 15.3% Basement 7.9% Cathedral 2.1% Airport ... 推定 順伝播 0.0% Music Store 100% Basement 0.0% Cathedral 0.0% Airport ... 誤差 正解 逆伝播 8
  17. 人工ニュ ーラルネッ ト ワ ーク • レ イ ヤを 重ねて構造

    • レ イ ヤは線形変換と 非線形活性化関数 ... ビアス 前層 ニューロン 重み(学習するもの) 非線形活性化関数 9
  18. 人工ニュ ーラルネッ ト ワ ーク • レ イ ヤを 重ねて構造

    • レ イ ヤは線形変換と 非線形活性化関数 • 行列書ける ベク ト ル計算と し て表現 ... ... 行列 ベクトル 9
  19. 非線形活性化関数 • 非線形関数を 近似する 性能 • 色々 な種類、 ReLU がメ

    イ ン Sigmoid Tanh ReLU シグモイ ド 関数 双曲線正接関数 ラ ンプ関数 σSigmoid(x) = 1 1 + e−x σtanh(x) = ex − e−x ex + e−x σReLU(x) = max(0, x) https://github.com/torch/nn/blob/master/doc/transfer.md 10
  20. ソ フ ト マッ ク ス関数 • 出力を 確率分布に変換 •

    要素の和が1 • 全要素は正の数 • 分類問題等に適切 σsoftmax (x) = 1 n i=1 exi [ex1 , ex2 , . . . , exn ] 11
  21. 畳み込みニュ ーラルネッ ト ワ ーク • 視覚野と 対応する よ う

    な形で配置 • 空間的にフ ィ ルタ 共有によ る モデルのパラ メ ータ を 減少 • プーリ ングと 畳み込み層によ る 計算効率 INPUT 32x32 Convolutions Subsampling Convolutions C1: feature maps 6@28x28 Subsampling S2: f. maps 6@14x14 S4: f. maps 16@5x5 C5: layer 120 C3: f. maps 16@10x10 F6: layer 84 Full connection Full connection Gaussian connections OUTPUT 10 LeNet-5 [LeCun+ 1998] 12
  22. プーリ ング層 • 解像度を 圧縮 • 小さ い移動の不変性 マッ ク

    ス 平均 Lp y = max x∈P x y = 1 |P| x∈P x y = 1 |P| x∈P xp 1 p 13
  23. 畳み込み層 • それぞれのレ イ ヤはいく つかのフ ィ ルタ を 使用

    • ハイ パーパラ メ ータ : カーネル、 パッ ディ ング、 スト ラ イ ド • 重みはカーネルで表現 14
  24. 畳み込み層 • それぞれのレ イ ヤはいく つかのフ ィ ルタ を 使用

    • ハイ パーパラ メ ータ : カーネル、 パッ ディ ング、 スト ラ イ ド • 重みはカーネルで表現 • パッ ディ ングで解像度の不変化 出力 入力 14
  25. 畳み込み層 • それぞれのレ イ ヤはいく つかのフ ィ ルタ を 使用

    • ハイ パーパラ メ ータ : カーネル、 パッ ディ ング、 スト ラ イ ド • 重みはカーネルで表現 • パッ ディ ングで解像度の不変化 • スト ラ イ ド で解像度の変化 出力 入力 14
  26. 畳み込み層 ・ 解像度変換 スト ラ イ ド 数によ る 三種類の畳み込みレ

    イ ヤー 1. Convolution • カーネル 3 × 3, パディ ング 1 × 1, スト ラ イ ド 1 2. Downsampling Convolution • カーネル 3 × 3, パディ ング 1 × 1, スト ラ イ ド 2 3. Upsampling Convolution • カーネル 3 × 3, パディ ング 1 × 1, スト ラ イ ド 1/2 Down-convolution Flat-convolution Up-convolution stride stride stride 15
  27. CNN レ イ ヤについて • 畳み込み層 • 空間配置を 保護 •

    パラ メ ータ が少ない • 解像度変換可 • プーリ ングレ イ ヤ • 小さ い移動の不変性 • スト ラ イ ド がある 畳み込み層のほう がいい • 全結合層 • 入力が固定サイ ズ • パラ メ ータ が多い • 画像を 出力する と 不必要 16
  28. 残差の学習 • 関数 f (x) の代わり に残差関数 ∆f (x) を

    学習 ∆f (x) = f (x) − x Neural Network Input Output 17
  29. 残差の学習 • 関数 f (x) の代わり に残差関数 ∆f (x) を

    学習 ∆f (x) = f (x) − x • 仮定 : 出力は入力に類似 • 重みは 0 だと 恒等写像 Neural Network Input Output 17
  30. 残差の学習 • 関数 f (x) の代わり に残差関数 ∆f (x) を

    学習 ∆f (x) = f (x) − x • 仮定 : 出力は入力に類似 • 重みは 0 だと 恒等写像 • ILSVRC2015 の画像分類コ ンペティ ショ ン優勝 He et al. Deep Residual Learning for Image Recognition. CVPR, 2016. 17
  31. 全層畳み込みニュ ーラルネッ ト ワ ーク • 畳み込み層だけ使用 • 任意の解像度を 処理可

    • エンコ ーダディ ーコ ーダ型 • メ モリ ーを 減ら す • 空間解像度を 上げる Flat-convolution Up-convolution 2 × 2 4 × 4 8 × 8 4 × 4 2 × 2 × × Down-convolution 18
  32. モデルの容量について • タ スク を 覚えら れる 能力 • モデルのパラ

    メ ータ によ っ て決定 • 普段 100 万以上 • 学習難度と 関係 • 使用メ モリ や計算時間を 増加 20
  33. モデルの容量について • タ スク を 覚えら れる 能力 • モデルのパラ

    メ ータ によ っ て決定 • 普段 100 万以上 • 学習難度と 関係 • 使用メ モリ や計算時間を 増加 少モデル (少ないレ イ ヤやチャ ンネル) • 小容量 • 学習が簡単 • 訓練データ が少なく ても いい 大モデル (多いレ イ ヤやチャ ンネル) • 大容量 • 学習が困難 • 大規模データ が必要 20
  34. ディ ープラーニングに向いている 問題について • データ が重要 • ディ ープラ ーニングは万能ではない

    • 問題を 選ぶのが大事 • 適切な問題について • 入力と 出力のサイ ズが決ま っ ている か、 情報処理の問題 • 正解が一つの問題 (人間ができ る ) • データ を 集めら れる 21
  35. 向いている 問題 ・ 画像分類 • 画像分類 • 入力 : 画像

    • 出力 : ク ラ スの確率 • ディ ープラ ーニングの代表的な問題 • 入力と 出力のサイ ズが決ま っ ている • 大規模なデータ がある (ImageNet) Krizhevsky et al. ImageNet Classification with Deep Convolutional Neural Networks. NIPS, 2012. 22
  36. 向いている 問題 ・ 画像分類 • 画像分類 • 入力 : 画像

    • 出力 : ク ラ スの確率 • ディ ープラ ーニングの代表的な問題 • 入力と 出力のサイ ズが決ま っ ている • 大規模なデータ がある (ImageNet) Krizhevsky et al. ImageNet Classification with Deep Convolutional Neural Networks. NIPS, 2012. 22
  37. 向いている 問題 ・ 領域分割 • 領域分割 • 入力 : 画像

    • 出力 : 画像の各領域のク ラ ス確率 • データ 作成が難し い • ク ラ スの数が少ない • ImageNet の学習済みモデルを 利用可 Chen et al. The Role of Context for Object Detection and Semantic Segmentation in the Wild. CVPR, 2014. 23
  38. 向いている 問題 ・ 領域分割 • 領域分割 • 入力 : 画像

    • 出力 : 画像の各領域のク ラ ス確率 • データ 作成が難し い • ク ラ スの数が少ない • ImageNet の学習済みモデルを 利用可 Noh et al. Learning Deconvolution Network for Semantic Segmentation. ICCV, 2015. 23
  39. 向いている 問題 ・ 超解像度 • 超解像度 • 入力 : 画像

    • 出力 : 高解像度な画像 • データ を 集めやすい • ほと んど解決し た問題 • 画像処理問題の扱い Kim et al. Accurate Image Super-Resolution Using Very Deep Convolutional Networks. CVPR, 2016 24
  40. 向いていない問題 ・ 画像補完 • 画像補完 • 入力 : 画像+ マスク

    • 出力 : 画像 • 画像を 作り 出すのが苦手 • 高解像度が苦手 • 決ま っ た形の出力が苦手 N. Komodakis and G. Tziritas. Image completion using efficient belief propagation via priority scheduling and dynamic pruning. IEEE Trans. Image Processing, 2007. 25
  41. 向いていない問題 ・ 画像補完 • 画像補完 • 入力 : 画像+ マスク

    • 出力 : 画像 • 画像を 作り 出すのが苦手 • 高解像度が苦手 • 決ま っ た形の出力が苦手 Pathak et al. Context Encoders: Feature Learning by Inpainting. CVPR, 2016. 25
  42. 向いていない問題 ・ 画像補完 • 画像補完 • 入力 : 画像+ マスク

    • 出力 : 画像 • 画像を 作り 出すのが苦手 • 高解像度が苦手 • 決ま っ た形の出力が苦手 Iizuka et al. Globally and Locally Consistant Image Completion. SIGGRAPH, 2017. 25
  43. 向いていない問題 ・ 画像生成 • 画像生成 • 入力 : ラ ンダムノ

    イ ズ • 出力 : 画像 • 教師なし 学習が苦手 • 出力のサイ ズが固定 • 解像度が低い Salimans et al. Improved Techniques for Training GANs. NIPS, 2016. 26
  44. 向いていない問題 ・ 画像生成 • 画像生成 • 入力 : ラ ンダムノ

    イ ズ • 出力 : 画像 • 教師なし 学習が苦手 • 出力のサイ ズが固定 • 解像度が低い Salimans et al. Improved Techniques for Training GANs. NIPS, 2016. 26
  45. ディ ープラーニングに向いている 問題のま と め 向いている 問題 • データ が多い

    • 正解データ が決ま っ ている • 入力と 出力のサイ ズが固定 さ れている • 学習済みのモデルを 利用で き る 向いていない問題 • データ が少ない • 教師なし 学習 • 入力か出力が固定さ れてい ない • ユーザーの編集 • 高解像度 27
  46. データ について • どれほど必要? • 情報の流れについて考えなければなら ない • ク ラ

    スラ ベルの情報が少ない →  100 万枚以上使用 • 領域分割ラ ベルの情報が多い →  1 万枚未満 Cat vs 28
  47. データ について • どれほど必要? • 情報の流れについて考えなければなら ない • ク ラ

    スラ ベルの情報が少ない →  100 万枚以上使用 • 領域分割ラ ベルの情報が多い →  1 万枚未満 • 品質が大事 Cat Cat Lin et al. Microsoft COCO: Common Objects in Context. arXiv, 2014. 28
  48. データ について • どれほど必要? • 情報の流れについて考えなければなら ない • ク ラ

    スラ ベルの情報が少ない →  100 万枚以上使用 • 領域分割ラ ベルの情報が多い →  1 万枚未満 • 品質が大事 • データ 増加 • 反転、 回転、 明度、 コ ント ラ スト 、 スケーリ ング… 28
  49. データ 収集について • 公開データ セッ ト (ImageNet, Places2, …) •

    著作権問題 • 相応し いデータ セッ ト の存在 • 公開データ (Flickr, Twitter, …) • 著作権問題 • ラ ベルがない • 自分のデータ を 集める • 時間と お金がかかる • 正確なラ ベルが難し い • 多量なデータ が必要 29
  50. データ 収集について • 公開データ セッ ト (ImageNet, Places2, …) •

    著作権問題 • 相応し いデータ セッ ト の存在 • 公開データ (Flickr, Twitter, …) • 著作権問題 • ラ ベルがない • 自分のデータ を 集める • 時間と お金がかかる • 正確なラ ベルが難し い • 多量なデータ が必要 データ 自体に価値がある ! ! ! 29
  51. 学習の基礎 1. データ セッ ト を 訓練用と 検証用と テスト 用に分け

    1.1 訓練用データ でモデルの重みを 学習さ せ 1.2 検証用データ でハイ パパラ メ ータ を 決め 1.3 テスト 用データ は最後の評価のためのみ! 30
  52. 学習の基礎 1. データ セッ ト を 訓練用と 検証用と テスト 用に分け

    1.1 訓練用データ でモデルの重みを 学習さ せ 1.2 検証用データ でハイ パパラ メ ータ を 決め 1.3 テスト 用データ は最後の評価のためのみ! 2. データ セッ ト を ラ ンダムな順番に 3. バッ チで学習さ せ 3.1 小さ すぎる と 不安定 3.2 大き すぎる と 遅く てさ ら に精度がさ がる 3.3 問題によ っ て違う (分類〜128、 領域分割〜8) 30
  53. 学習の基礎 1. データ セッ ト を 訓練用と 検証用と テスト 用に分け

    1.1 訓練用データ でモデルの重みを 学習さ せ 1.2 検証用データ でハイ パパラ メ ータ を 決め 1.3 テスト 用データ は最後の評価のためのみ! 2. データ セッ ト を ラ ンダムな順番に 3. バッ チで学習さ せ 3.1 小さ すぎる と 不安定 3.2 大き すぎる と 遅く てさ ら に精度がさ がる 3.3 問題によ っ て違う (分類〜128、 領域分割〜8) 4. 誤差逆伝播法でロ ス関数を 最小化 5. 二点の問題点 5.1 アンダーフ ィ ッ ティ ング 5.2 オーバーフ ィ ッ ティ ング (過学習) 30
  54. 誤差逆伝播法 • パラ メ ータ の更新 : wi j ←

    wi j − λ ∂L ∂wi j • 誤差が出力から 入力ま で逆伝播さ せる ∂L ∂wi j = ∂L ∂xn ∂xn ∂xn−1 . . . ∂xi ∂wi j ニューラル ネットワーク 23.8% Music Store 15.3% Basement 7.9% Cathedral 2.1% Airport ... 推定 順伝播 0.0% Music Store 100% Basement 0.0% Cathedral 0.0% Airport ... 誤差 正解 逆伝播 31
  55. 誤差関数 • 平均二乗誤差 (Mean Squared Error ま たは MSE) •

    y: モデルの出力 • y∗: 正解 L(y, y∗) = 1 n n i=1 (yi − y∗ i )2 • 負の対数尤度 (Negative Log-Likelihood ま たは NLL) • y: モデルの出力 (対数尤度) • l: 正解ラ ベル L(y, l) = −yl 32
  56. モデルパラメ ータ の更新 • 確率的勾配降下法 (Stochastic Gradient Descent ま たは

    SGD) • 一つのハイ パーパラ メ ータ で重みを 更新: wi j ← wi j − λ ∂L ∂wi j 33
  57. モデルパラメ ータ の更新 • 確率的勾配降下法 (Stochastic Gradient Descent ま たは

    SGD) • 一つのハイ パーパラ メ ータ で重みを 更新: wi j ← wi j − λ ∂L ∂wi j • 慣性 (Momentum) • wi j ← wi j − vt vt = γvt−1 + λ ∂L ∂wi j • Adagrad • 重みにつき 更新率が異なる • RMSprop • Adagrad の最新版 • Adam • 慣性やバイ アスの調整 • Adadelta • ラ ーニングレ ート を 自動設定 33
  58. モデルパラメ ータ の更新 ・ 一番いい? • 大概、 どち ら も

    精度が高い • ラ ーニングレ ート が重要 • 個人的に、 Adadelta を 使用 SGD 慣性 Adadelta Adam 超解像度 領域分割 色付け 画像生成 [Dong+ 2014] [Nor+ 2015] [Iizuka+ 2016] [Radford+ 2016] 34
  59. 汎化能力 Generalizing Training • Dropout [Srivastava et al. 2014] •

    学習の間にノ ード を ラ ンダムにゼロ にする • モデルは特定なノ ード に依存し ない • バッ チ正規化 (Batch Normalization) [Ioffe and Szegedy 2015] • 各層の出力を N(0, 1) に正規化 • モデル中に使用 • データ 増加 • 反転 • 小さ い回転 • ク ロ ッ プ 35
  60. 学習の問題点 • 学習の間のロ スを 監視 • も っ と も

    低いロ スが必ずし も 一番いいモデルではない! ! ! イテレーション モデル1 訓練用データのロス 訓練用データのロス モデル2 36
  61. 学習の問題点 • 学習の間のロ スを 監視 • も っ と も

    低いロ スが必ずし も 一番いいモデルではない! ! ! • 検証用データ の精度を 使おう イテレーション モデル1 訓練用データのロス モデル1 検証用データの精度 訓練用データのロス モデル2 検証用データの精度 モデル2 36
  62. 学習の問題点 • 学習の間のロ スを 監視 • も っ と も

    低いロ スが必ずし も 一番いいモデルではない! ! ! • 検証用データ の精度を 使おう • アンダーフ ィ ッ ティ ング • モデルの重みが足り ない • 解決方法 : 重みを 増やす イテレーション 訓練用データのロス ロスが高い イテレーション 検証用データの精度 訓練用データの精度 精度が同じ 36
  63. 学習の問題点 • 学習の間のロ スを 監視 • も っ と も

    低いロ スが必ずし も 一番いいモデルではない! ! ! • 検証用データ の精度を 使おう • アンダーフ ィ ッ ティ ング • モデルの重みが足り ない • 解決方法 : 重みを 増やす • オーバーフ ィ ッ ティ ング • データ が足り なく て汎化性能がさ がる • 解決方法 : dropout、 データ 増加… イテレーション 訓練用データのロス ロスが低い イテレーション 検証用データの精度 訓練用データの精度 精度が大分違う 36
  64. 学習済みのフ ィ ルタ • 低レ ベル : 角、 縁、 色…

    • 中レ ベル : テク スチャ … • 高レ ベル : 犬の顔、 鳥の足… Layer 1 Layer 2 Layer 3 Layer 4 Low-Level Mid-Level High-Level Visualizing and Understanding Convolutional Networks [Zeiler and Fergus 2014] 37
  65. フ ァ イ ンチュ ーニング • 大規模データ でモデルを 学習 •

    最終層を 新し い層に入れ替え ... ... Input Output New! 38
  66. フ ァ イ ンチュ ーニング • 大規模データ でモデルを 学習 •

    最終層を 新し い層に入れ替え • 新し いデータ で学習を 続く • 小さ いデータ セッ ト で性能向上 • 覚えたこ と を 忘れさ せないよ う に小さ い学習率 • 最終層の学習率が大き い ... ... ... Input Output Small Dataset Training 38
  67. ま と め • データ • 学習始ま る 前に解析 •

    データ 増加 • モデル • バッ チ正規化 • 最初に解像度減ら す • 学習 • 過学習に気を つける • 検証用データ を 使用 • 解像度が下げていく • 学習 • オーバーフ ィ ッ ティ ングに気を つける • 学習中ロ スや検証用データ の精度を 監視 39
  68. ハッ ド ウ ェ アについて • 基本的に Nvidia の GPU

    がマイ ン • GPU があればある ほどいい • 分散コ ンピュ ーティ ング • ハイ パーパラ メ ータ ・ チュ ーニング • GPU の選択肢 1. ク ラ ウ ド コ ンピュ ーティ ング 2. Nvidia Tesla (サーバー用) 3. Nvidia GeForce (民生用) • 現在値段が不安 40
  69. ク ラ ウ ド コンピュ ーティ ング • 長所 •

    使う 分だけ払う • サーバー室不必要 • 短所 • 値段が不安定 • データ セッ ト の移動が大変 NIPS の締切の前 @Reza_Zadeh 41
  70. サーバー設置 • 電源工事が必要 (サーバー一台は 200V/30A ま で) • サーバー室の重要点 •

    ラ ッ ク 型 • 無停電電源装置 • 温度管理 • ネッ ト の速度 (NAS 等に) 42
  71. サーバー設置 • 電源工事が必要 (サーバー一台は 200V/30A ま で) • サーバー室の重要点 •

    ラ ッ ク 型 • 無停電電源装置 • 温度管理 • ネッ ト の速度 (NAS 等に) • サーバーの重要点 • データ セッ ト 読み込むため専用 SSD • データ 増加等のための CPU • RAM の速度 42
  72. Tesla 対 GeForce 注意 : Nvidia のラ イ センスによ る

    データ センタ ーに Tesla のみ使 用可 • Tesla • V100、 P100、 K80、 … + 高性能 + 低発熱量 - 値段が高い - 不必要機能 (FP64) • GeForce • 1080、 Titan X、 … + 安い (約3 割) - 高発熱量 - 壊れやすい 43
  73. 基本環境 • 基本的全部 Linux (Ubuntu の LTS 等) • 線型代数学ラ

    イ ブラ リ : OpenBlas / Intel MKL • Nvidia の深層学習ラ イ ブラ リ CUDNN • Python の環境 : Anaconda、 Docker、 … • 深層学習フ レ ームワ ーク 44
  74. 深層学習フ レ ームワ ーク (その1 ) • Caffe • C

    言語 (python も 可) • 硬いが、 速く て効率的 • Caffe2 に置き 換え 45
  75. 深層学習フ レ ームワ ーク (その1 ) • Caffe • C

    言語 (python も 可) • 硬いが、 速く て効率的 • Caffe2 に置き 換え • PyTorch / Chainer • Python 言語 • 動的にグラ フ を 定義 • 研究に焦点を 当て 45
  76. 深層学習フ レ ームワ ーク (その1 ) • Caffe • C

    言語 (python も 可) • 硬いが、 速く て効率的 • Caffe2 に置き 換え • PyTorch / Chainer • Python 言語 • 動的にグラ フ を 定義 • 研究に焦点を 当て • Tensorflow • Python 言語 • 静的と 動的なグラ フ • 生産に焦点を 当て 45
  77. 深層学習フ レ ームワ ーク (その2 ) • Caffe2 • C++言語

    • PyTorch を 補足 • Torch • Lua 言語 • ラ イ ブラ リ が少ない • PyTorch に置き 換え 46
  78. 深層学習フ レ ームワ ーク (その2 ) • Caffe2 • C++言語

    • PyTorch を 補足 • Torch • Lua 言語 • ラ イ ブラ リ が少ない • PyTorch に置き 換え • ま だたく さ んある ! 46
  79. ONNX: Open Neural Network Exchange • モデルのフ ォ ーマッ ト

    • 複数のフ レ ームワ ーク に対応 • python でモデルを 学習し 、 C++でアンド ロ イ ド 等にデプロ イ • ま だ全部のレ イ ヤに対応し ていない 学習 モデル モデル デプロイ 47
  80. 最初の結果 • 簡単なモデルを 定義 • データ を ち ょ っ

    と 揃えて学習さ せてみる と ぼける • ラ フ スケッ チと 正解データ を 合わせてみる と 51
  81. 逆方向データ 制作 • データ の品質が重要 • ラ フ を 線画化する

    と 合わない (通常のデータ 作成) • 線画を ラ フ 化する と ぴっ たり (逆方向データ 作成) 通常のデータ 作成 逆方向データ 作成 52
  82. ラフ スケッ チデータ セッ ト • 68 枚のラ フ スケッ

    チと 線画のペア • 5 人のイ ラ スト レ ータ ー • 424 × 424 画素の画像パッ チを 使用 ・・・ Extracted patches Sketch dataset ・・・ 53
  83. データ 拡大 • 68 枚のデータ セッ ト では足り ない •

    訓練データ の画像を スケーリ ング • 学習する 間にラ ンダムに回転と 反転 • 入力画像を さ ら に加工 : ト ーン調整、 ぶれ、 ノ イ ズ 入力 ト ーン調整 ぶれ ノ イ ズ 54
  84. 全層畳み込みニュ ーラルネッ ト ワ ーク スト ラ イ ド 数によ

    る 三種類の畳み込みレ イ ヤー 1. Flat-convolution 1.1 カーネル 3 × 3, パディ ング 1 × 1, スト ラ イ ド 1 2. Down-convolution 2.1 カーネル 3 × 3, パディ ング 1 × 1, スト ラ イ ド 2 3. Up-convolution 3.1 カーネル 4 × 4, パディ ング 1 × 1, スト ラ イ ド 1/2 Down-convolution Flat-convolution Up-convolution stride stride stride 55
  85. モデル • 23 層 • 出力の解像度は入力と 同じ • エンコ ーダー

    ・ ディ ーコ ーダー型 • メ モリ ーを 減ら す • 空間解像度を 上げる Flat-convolution Up-convolution 2 × 2 4 × 4 8 × 8 4 × 4 2 × 2 × × Down-convolution 56
  86. 学習 • 全層ラ ンダムの重みから 学習 • 損失関数と し て重みつき 平均二乗誤差を

    使用 • バッ チ正規化 [Ioffe and Szegedy 2015] が必要 • ADADELTA [Zeiler 2012] で最小化 入力 出力 正解 57
  87. 実験環境 • Intel Core i7-5960X CPU (3.00GHz) • NVIDIA GeForce

    TITAN X GPU • 学習時間は約 3 週間 • GPU を 使う と 一秒以内で処理可能 解像度 画素数 CPU (秒) GPU (秒) 加速 320 × 320 102,400 2.014 0.047 42.9× 640 × 640 409,600 7.533 0.159 47.4× 1024 × 1024 1,048,576 19.463 0.397 49.0× 58
  88. データ について • 簡単に作れる • 現代のカラ ー写真を 白黒にする • MIT

    の Places データ セッ ト を 使用 [Zhou et al. 2014] Abbey Airport terminal Aquarium Baseball field Dining room Forest road Gas station Gift shop ⋯ ⋯ 62
  89. 問題の難度 • パッ チを だけ見る と 空と 天井を 区別し にく

    い • モデルを 改良する 必要 正解データ 普通の CNN 63
  90. 問題の難度 • パッ チを だけ見る と 空と 天井を 区別し にく

    い • モデルを 改良する 必要 ? 正解データ 普通の CNN 63
  91. 問題の難度 • パッ チを だけ見る と 空と 天井を 区別し にく

    い • モデルを 改良する 必要 正解データ 普通の CNN 提案手法 63
  92. モデルの改造 • モデルは色を 予想し 、 白黒写真に加える • 問題はパッ チの情報が足り ない

    彩度マッ プ 中レベル特徴抽出 ネッ ト ワーク 色付け ネッ ト ワーク 輝度マッ プ (入力画像) 低レベル特徴抽出 ネッ ト ワーク 64
  93. モデルの改造 • モデルは色を 予想し 、 白黒写真に加える • 問題はパッ チの情報が足り ない

    • 解決方法 : 大域特徴を 利用 • 提案の統合レ イ ヤでパッ チと 大域特徴を 結合 彩度マッ プ 中レベル特徴抽出 ネッ ト ワーク 色付け ネッ ト ワーク 輝度マッ プ (入力画像) 低レベル特徴抽出 ネッ ト ワーク 大域特徴抽出ネッ ト ワーク 統合レイヤ 64
  94. 統合レ イ ヤ • 大域特徴と 局所特徴を 統合する 層 • W、

    b を 学習さ せる • 大域特徴を 局所特徴に練り 込む • どんな解像度でも 対応 大域特徴抽出ネッ ト ワーク 統合レイヤ ... ... ... 色付け ネッ ト ワーク 中レベル特徴抽出 ネッ ト ワーク 統合レイヤ 65
  95. モデルと 学習 • 全層を ラ ンダムから 学習 • ADADELTA を

    使用 彩度マッ プ 中レベル特徴抽出 ネッ ト ワーク 色付け ネッ ト ワーク 輝度マッ プ (入力画像) 低レベル特徴抽出 ネッ ト ワーク 大域特徴抽出ネッ ト ワーク 統合レイヤ 66
  96. モデルと 学習 • 全層を ラ ンダムから 学習 • ADADELTA を

    使用 • 2 つのロ スを 使用 • MSE ロ スで色付けを 学習さ せ • 分類誤差で大域特徴の学習を 支援 彩度マッ プ 中レベル特徴抽出 ネッ ト ワーク 色付け ネッ ト ワーク 輝度マッ プ (入力画像) 低レベル特徴抽出 ネッ ト ワーク 大域特徴抽出ネッ ト ワーク 統合レイヤ 20. 60% 庭園 16. 13% アーチ 13. 50% 修道院 7. 07% 植物園 6. 53% ゴルフ場 推定シーン 分類 ネッ ト ワーク 66
  97. ま と め • 自動線画化 • モデルが簡単 • データ 作成が難し

    い Flat-convolution Up-convolution 2 × 2 4 × 4 8 × 8 4 × 4 2 × 2 × × Down-convolution • 自動色付け • 大規模なデータ • 普通のモデルがあま り う ま く いかない 彩度マッ プ 中レベル特徴抽出 ネッ ト ワーク 色付け ネッ ト ワーク 輝度マッ プ (入力画像) 低レベル特徴抽出 ネッ ト ワーク 大域特徴抽出ネッ ト ワーク 統合レイヤ 20. 60% 庭園 16. 13% アーチ 13. 50% 修道院 7. 07% 植物園 6. 53% ゴルフ場 推定シーン 分類 ネッ ト ワーク 69
  98. おわり に • 理論も 経験も 大事 • 3 つのこ と

    について考えないと いけない • データ を 調べる こ と • モデルの構想 • 学習の実装 70
  99. おわり に • 理論も 経験も 大事 • 3 つのこ と

    について考えないと いけない • データ を 調べる こ と • モデルの構想 • 学習の実装 • ディ ープラ ーニングは機械学習の民主化 • でき ないこ と ができ る よ う になっ た • 研究ペースが恐ろ し い 70
  100. おわり に • 理論も 経験も 大事 • 3 つのこ と

    について考えないと いけない • データ を 調べる こ と • モデルの構想 • 学習の実装 • ディ ープラ ーニングは機械学習の民主化 • でき ないこ と ができ る よ う になっ た • 研究ペースが恐ろ し い • いろ いろ 試し て経験積も う 70