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.

[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~

305 views

Published on

[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~
エコモット株式会社 庄内 道博 氏

Published in: Technology
  • Be the first to comment

[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~

  1. 1. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED AI社内実装の試み ~ソニーNNCを非技術者に使わせてみる~ エコモット株式会社 庄内 道博 2018/06/23 db analytics showcase Sapporo 2018
  2. 2. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED エコモット株式会社 代 表 者 代表取締役 入澤 拓也 設 立 2007年2月(決算期:3月) 資 本 金 1億円(2017年9月末現在) 本 社 所 在 地 北海道札幌市中央区北1条東2丁目5-2 札幌泉第一ビル1F 従 業 員 74名 (2017年12月現在) 事 業 概 要 IoTインテグレーション事業 代表取締役 入澤 拓也 経歴 1980年 北海道札幌市生まれ 2002年 米ワシントン州HighlineCommunityCollege卒 2002年 クリプトン・フューチャー・メディア株式会社入社 2007年 クリプトン・フューチャー・メディア株式会社退職 2007年 エコモット株式会社設立 2010年 小樽商科大学大学院 商学研究科 アントレプレナーシップ専攻修了 経営学修士(MBA) 企業理念 未来の常識を創る コーポレートスローガン あなたの「見える」をみんなの安心に。 会社概要 事業概要 当社は創業以来、IoTインテグレーション事業を専業としています ■「IoT」とは Internet of Thingsの略で「モノのインターネット化」と訳され 「あらゆるモノ」をインターネットに接続、データ収集により 「現状の見える化」を実現すること (出展)総務省「平成28年版 情報通信白書」 Copyright © 2017 Ecomott, Inc. ALL RIGHTS RESERVED 札証アンビシャス市場へ上場(2017年6月21日) ■第四次産業革命とIoTとエコモット ・IoT、モバイル、クラウド、ビックデータ、AI等のIT技術発展 により、現在「第四次産業革命」の夜明けと言われています。 ・今後の日本経済の指針である「新産業構造ビジョン」に おいて「第四次産業革命」の社会実装が最大の鍵と 言われています。 東証マザーズ上場 (2018/6/22)
  3. 3. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED エコモットのIoTソリューション紹介 インテグレーションによるソリューション 「ゆりもっと」(雪のIoT) 「現場ロイド」(土木工事のIoT) Copyright © 2017 Ecomott, Inc. ALL RIGHTS RESERVED 「Pdrive」紹介(車のIoT)
  4. 4. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 最近、データサイエンティストやAIだったりがにぎわっている。 • 毎日のように話題になっている • みんな興味はある • 自らやろうとする人は少ない ↑やらない壁がある(身近ではない?) • やってみた人も、挫折しやすい落とし穴がたくさん! • インストール • Python • チュートリアル • 数式 • ・・・・ ↑やれない壁もある • ここをクリアしてもいろいろ試すとなると結構面倒!
  5. 5. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 世の中はこんな人を育成しようとしているらしい 図:データサイエンティストに求められるスキルセット(データサイエンティスト協会) 無理ゲー
  6. 6. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 回帰直線のおさらい ・・・ やったと思うけど! 回帰係数(傾き)a= 1 𝑛 σ 𝑖=1 𝑛 𝑥 𝑖− ҧ𝑥 𝑦 𝑖− ത𝑦 1 𝑛 σ 𝑖=1 𝑛 𝑥 𝑖− ҧ𝑥 2 切片b=ത𝑦 − 𝑎 ҧ𝑥 共分散/Xの分散
  7. 7. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED スーパーマンじゃなくても、やれることある エクセルが あれば何とか
  8. 8. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED みんなの想い ディープラーニングも 何とかならないの?
  9. 9. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED GTCJapan2017で全フレームワークの発表聞いた • Tensorflow, Chainer, PyTorch ・・・ • SONYの発表があった
  10. 10. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED It’s a Sony. Neural Network Console 商用クオリティのDeep Learning応用技術 (画像認識機等)開発のための統合開発環 境 コーディングレスで効率の良いDeep Learningの研究開発を実現 クラウド版、Windows 版(無償) dl.sony.com
  11. 11. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 戻って、いじってみた。 なんかいいかも
  12. 12. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED モチベーション・・・なぜ、非技術者に深層学習をやらせたのか? • ソニーNeural Network Consoleに感動した! • 簡単で動きがあって、楽しい(やってる感があるw) • 非力PCでも非技術者が持っているデータなら動く • 実際にやっている人がいなくて寂しい • いろいろ通じない • わかってくれない • なかなかGPU買ってくれない • 自分でやれるようになってくれればいいのに! • 販売需要予測、不良品管理などの身近にデータを持ってい る人が結構多い
  13. 13. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 今日のお話 • エコモットで非技術者向けにAIハンズオン的な勉強会を 実施した • 予想以上に好評だった • SapporoTechBar(主催インサイトテクノロジー)でも話した • ブログに書いたら結構アクセスあった • 札幌AI勉強会でも話した • 社内新人研修「INとOUTに着目せよ」を実施 • 調査や追試を加えて、お話しします。 ← 今日ここ • !!告知!! • 7/12函館:北海道総合ICT水産業フォーラム 今日から始めるAI講座 -ディープラーニングで水温予測をしてみようー
  14. 14. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED やらない壁を壊したい! • どうやったら非技術者が深層学習に興味をもてるか? • チュートリアルのデータセットに興味がわかない • 手書き文字、アヤメの分類、ワインの品質評価、・・・など アレだったら 興味を持ってくれるのでは!
  15. 15. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 第1回非技術系AI勉強会 これであなたも分析ができる編
  16. 16. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ハンズオン的AI勉強会の流れ • インストール • 独自データで予測に挑戦 • 教師データ・評価データの作成 • ネットワーク作成と実行と評価 • まとめ・・・大抵発散します • 自分たちで確かめたくなるいい発散(だと思う)
  17. 17. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ではインストールしましょう • neural_network_console_120.zipをダウンロード • Zipを適当な場所※に展開してください ※C:¥User¥ユーザー名¥neural_network_console_120 • このフォルダー内に環境設定が入ります。 • 環境設定にどのGPUつかうとか、CPU使うとかを記述 • GPUを使う場合 • 最新ドライバーをインストールしてください • CUDA, cuDNNをインストールしてください ⇒ 完了
  18. 18. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED デモって •日経平均データを使って予測してみましょう。 • やること: • 日経平均日次データ(終値、始値、最大、最小)の取得 • https://indexes.nikkei.co.jp/nkave/index?type=download • 2015/1/5~2018/6/22のセットを使用 • 前5日間のデータから1日分のデータを予測する • 教師データ(訓練用、評価用)の作成 • ネットワークの作成 • 実行、評価
  19. 19. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 日経平均株価日次データ
  20. 20. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 教師データを作る 1.nikkei_stock_average_daily_jp.csvを開く 2.一つ下から全部を横にづらしながら5回コピペする 3.下にある横方向が揃っていないデータを削除 4.ラベルを付ける(x__0~19、y__0~3) 5.日付を消す 6.訓練用と評価用(訓練用の10~20%)に分割
  21. 21. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED データ 元の状態
  22. 22. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED データ 入力x 20次元 出力y 4次元 入力x 20次元 出力y 4次元 命名規則:変数名__次元番号 ↑ アンダーバーを2つ
  23. 23. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED NNCを開く • クリエイト・プロジェクト • データ読込 • ネットワーク作成 • 訓練開始 • グラフの味方 • 評価 • エクセルでグラフ化して確認
  24. 24. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ネットワーク作成 • まず基本形から行きます。 • 三層パーセプトロン
  25. 25. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ネットワーク作成 • まず基本形から行きます。 • 三層パーセプトロン • 入力層⇒隠れ層⇒出力層 • 入力層 • 入力数に合わせてノードを決める • 今回は、End-to-end 学習 • 普通は正規化(-1or0~1の範囲に収める) • 教師データ作成時 • MeanSubtraction(毎回) • 隠れ層 • ノード数は、今は気にしない • 活性化関数 ⇒ とりあえずReLU • 出力層 • Affineで出力数を決める • 損失関数 ⇒ 回帰問題の場合、とりあえずHuberLoss
  26. 26. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ネットワーク作成2 • 構造的なデータだと思って扱ってみましょう • 畳み込みニューラルネットワーク • Convolutional Neural Network,CNN • 基本的な構成: • 入力層⇒コンボリューション層⇒プーリング層⇒全結合層⇒出力層 • 入力層 • 画像として扱うため、変形させます → 5行4列 • 画像のコンボリューションは3次元を要求 • 20 ⇒ 1,5,4 • コンボリューション層 • カーネル(フィルターのことだと思っておいて)数⇒とりあえず16 • Shape⇒3,3でもいいし、3,2とかでもいい
  27. 27. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED データ input: x output: y Reshape(1,5,4) 畳み込み ReLU . . . FC
  28. 28. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 畳み込みの出力イメージ
  29. 29. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 迷いどころ、それはハイパーパラメータ • ユニット数を変える • 増やす・・・近似精度が上がるハズ • 減らす・・・無駄な計算がいらなくなるハズ(早くなる) • バッチサイズ • 増やす・・・早く進む • 減らす・・・省メモリ • オプティマイザー • Adamでいいんじゃないの? • 諸々・・・結構あるのよ • Stracture Search:Enable
  30. 30. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 結構よくなったMSE 53.4(±7.3円位) 18000 19000 20000 21000 22000 23000 24000 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 実測と予測 y__0 y'__0
  31. 31. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED MSE: 57071.0 (±238.9円) ちなみに、単回帰で表すと y = 0.9936x + 126.17 R² = 0.9773 5000 7000 9000 11000 13000 15000 17000 19000 21000 23000 25000 5000 10000 15000 20000 25000 今日―明日 20500 21000 21500 22000 22500 23000 23500 24000 24500 1 9 17 25 33 41 49 57 65 73 81 89 97 105 113 121 129 137 145 実測と予測 実測 予測
  32. 32. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED MSE: 123075.8 (±350.8円) ちなみに、ちなみに、明日の予測値=今日の値とすると y = 0.988x + 238.61 R² = 0.9577 5000 7000 9000 11000 13000 15000 17000 19000 21000 23000 25000 5000 10000 15000 20000 25000 明日 20500 21000 21500 22000 22500 23000 23500 24000 24500 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 予測値を前日値とする 実測 予測
  33. 33. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED こんな感じで、終わり(発散し)ます • 層の数ってどこまで増やしてもいいんですか? • PCが許す限りやってみたら • ノード数はどうやって決めるんですか? • PCが許す限りやってみたら • 層を増やすのとノードを増やすのどっちがいいんですか? • DeepとWideどっち?という問題があります。 • Deepがいいということで深層学習がはやりましたが、Wideがいいという論文 もあるので、いろいろやってみるしかない • 普通何エポック回す感じですか? • 過学習が起こらないとかエラーがまだ小さくなっているとか見ながらでいい・・・ EarlyStoppingってのもあるよ • 上がったか下がったかとかもできますか? • それは分類問題といいます。(今回の課題は回帰問題といいます) • 教師データの出力部分と損失関数を変えるだけでできます。
  34. 34. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED こんな感じで、終わり(発散し)ます(深いい話) • 全結合層なくてもいいですか? • Fully Convolutional NetworksのようにFC層なくてもやれます。 • 出力層に活性化関数は入れなくていいですか? • 経験的にはEnd-to-end学習の場合、入れない方が良さそうです。 • シグモイド関数などは-1~1が出てくるので、実際の値とはかなり乖離している • Batch Normalizationがいいと聞きましたが・・・ • 多層の時は勾配消失や爆発に効きます(たくさん学習できる) • ただ、自分のデータではどうなのか検討が必要(やってみたら?)
  35. 35. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 出力層って活性化関数ついていなくていいですか?
  36. 36. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 活性化関数から出力するとこんな感じ
  37. 37. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED BCつけると収束遅くなるね
  38. 38. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED BatchNormalizationの位置について • Residual blockアーキテクチャでのBNの設置位置を比較した 結果、Addの後に入れると悪くなるので論文通りの方がよい。 • Add後のReLUがない方が若干よかったが要検討。 • 参照:http://torch.ch/blog/2016/02/04/resnets.html
  39. 39. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED Post Activation vs Pre Activation • 層が増えるほど、活性化関数を先に通した方がよい • 参照: https://arxiv.org/abs/1603.05027
  40. 40. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED Wide residual networks と Dropout • フィルターが多いネットワークはフィルターが少ないネットワークの1/50の層数、 半分の訓練時間で、高い精度を出すことができる。 • Dropout層をいれることで性能向上が期待できる • 参照: https://arxiv.org/abs/1605.07146
  41. 41. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 効果あり! ・・・とかとか 普通だった人が、どんどん、 深層学習沼に はまっていきます!
  42. 42. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED NNCに感動! •視覚的で簡単 •開発環境でつまずかない •Deep Learningの話が すぐできる • コード化可能で、Console⇒Librariesへ移行 • Librariesでは、分散環境が使える • 複数のCPU・GPUが利用できる ⇒ 早い
  43. 43. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ネットワーク作成3 • 時系列ということで、LSTM • 自然言語処理等の逐次データの文脈
  44. 44. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED NNCではこんな感じ!
  45. 45. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED データはこんな感じ
  46. 46. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED LSTMx4+CNN+MLP
  47. 47. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED オマケというか・・・dbasの方々には重要な引継ぎの件 • 折角Windows環境のNeural Network Console (以下、NNC)で定義したネットワークを • Linux環境のNeural Network Libralies (NNabla)で学習させる方法は、以下の3通り。 • NNablaのCli.pyからの実行 • NNCのExportPythonCodeからの実行 • C++からの実行
  48. 48. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 受入れ環境の準備 CUDA9,cuDNN7環境ではNNablaのビルドが必要 (cmakeのバージョンに注意) Volta環境
  49. 49. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 学習に必要なNNCファイル • 教師データ(訓練・評価) • 教師データ定義ファイル(csvfilename.csv) • キャッシュ・フォルダ(csvfilename.cache) ※0.9.9はキャッシュ形式が変更 • 教師データ(キャッシュがあればなくても可) • プロジェクト(*.sdcproj)を実行した場合、 • プロジェクト名.fileフォルダ内の訓練結果フォルダ(日付_時刻形式) • (必須)ネットワーク定義ファイル(net.nntxt)
  50. 50. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 実行準備 • ネットワーク定義ファイル(net.nntxt)内のglobal_configと datasetの部分を編集します。
  51. 51. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 実行準備 • 編集前のdatasetはwindows用のパスになっているので、教師データをコ ピーした場所が示されるようパスを書き直します。
  52. 52. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 実行 ~$ source activate caffe_p35 (caffe_p35) ~$ nohup python ~/nnabla/python/src/nnabla/utils/cli/cli.py train -c ~/network001/20180416/net.nntxt -o ~/network001/20180416 > ~/network001/20180416/output.log & ※訓練結果フォルダ: ~/network001/20180416
  53. 53. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 意味ある?の的な話 そんなことより さっきの話、 納得いかないんですけど!
  54. 54. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED 万能近似定理 • どんな関数でも近似できる隠れ層を持つニューラルネッ トワークが存在する • Hornik et al.(1989):Multilayer feedforward networks are universal approximators • Cybenko(1989):Approximation by Superpositions of a Sigmoidal Function 近似器ニューラル ネットワーク
  55. 55. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED こだわるべきポイントは! • DNNは近似器ということで • 「何を近似させたいか?」にこだわるべき • 社内新人研修「INとOUTに着目せよ」を実施 • 技術者向け新人研修では、以下の課題から入った 「DNNを使った事例から何を入力して、何を出力しているか」 20件/人
  56. 56. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED JpGU2018 マシンのためのビッグデータ可視化技術:特徴ベクトルの 自動選択とデータ解析法の野蛮化 統計数理研究所 樋口 知之 • これまでのデータ解析 • 生データの持つ特性と解析目的に沿った解析法の慎重かつ適切な選択が成功 の肝であった。 • これからのデータ解析 • すべて画像化・音声化するといった、データ解析の目的からすると遠回りに見え る、“野蛮”なデータ解析が普通感覚になっていくかも知れない。
  57. 57. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED JpGU2018 マシンのためのビッグデータ可視化技術:特徴ベクトルの 自動選択とデータ解析法の野蛮化 統計数理研究所 樋口 知之 • これまで特徴ベクトルの構成法は、ほぼ人間の知的作業に委ねられている • 特徴ベクトル構成法は、機械学習の『匠の技』 • 機械学習にもかかわらず人間の判断が最も性能向上に大切という、羊頭狗肉 の面もあった。 • 深層学習は『匠の技』の習得からユーザを解放した • 深層学習では、“生”データを直接入力とすることで、この特徴ベクトルの構成作 業を省略しながらも大きな成果を上げている。深層学習を使えば、ユーザは特 徴ベクトルの選択・決定に悩まずに最高の予測・判別性能を得ることができる。 • この方針をさらに進め、前処理などをすべて省いた生データから、最終的な目的 まで直接、深層ネットワークでつないだEnd-to-End という研究も加速している。 • さらには、この力を逆手に取り、生データを深考無しにとりあえず可視化および画 像化し、あわせて、データ処理に関わる諸作業の様子を撮像するなどにより、大 量の画像や動画を作成すれば、特徴ベクトルの選択問題を回避しつつ目的を 達成することも原理的には可能である。
  58. 58. Confidential © Ecomott, Inc. ALL RIGHTS RESERVED ご清聴ありがとうございました

×