狠狠撸
Submit Search
20190316_Let's try low power-consumption ai with sony's spresense hands-on
?
Download as PPTX, PDF
?
3 likes
?
4,020 views
Sony Network Communications Inc.
Follow
Let's try low power-consumption ai with sony's spresense hands-on
Read less
Read more
1 of 42
Download now
Downloaded 54 times
More Related Content
20190316_Let's try low power-consumption ai with sony's spresense hands-on
1.
ソニーネットワークコミュニケーションズ株式会社 / ソニー株式会社 シニアマシンラーニングリサーチャー
小林 由幸 ソニーのSPRESENSEで低消費電力で動く人工知能を 体験してみようハンズオン ?Neural Network Consoleハンズオン ?
2.
2 自己紹介 小林 由幸 1999年にソニーに入社、2003年より機械学習 技術の研究開発を始め、音楽解析技術「12音 解析」のコアアルゴリズム、認識技術の自動 生成技術「ELFE」などを開発。近年は 「Neural Network
Console」を中心にディー プラーニング関連の技術?ソフトウェア開発 を進める一方、機械学習普及促進や新しいア プリケーションの発掘にも注力。 こばやし よしゆき
3.
3 Deep Learningとは 脳の学習機能をコンピュータでシミュレーションするニューラルネットワークを用いた技術 神経細胞 人工ニューロン x1 x2 x3 … y ? =
? ??x? + b ニューラルネットワーク (1960~1990頃) Deep Learning (2006~) 0 1 入力層 中間層 出力層 … … … 1~2層の中間層 … … … … … … … 入力層 出力層 3層~1000以上の中間層 数十M規模のニューロン数 大規模なニューラルネットワークの 学習が可能になり、大幅に性能向上
4.
4 Deep Learningを用い、認識機を作成するために必要な作業 … … … … … … … 画像認識機 (Neural Network) Input:画像
Output:画像認識結果 「2」 1. データセットを用意する 入力と、期待する出力のペアを多数用意 (教材の準備に相当) 2. ニューラルネットワークの構造を 設計する(脳の構造設計に相当) 3. 用意したデータセットで、設計した ニューラルネットワークを学習する 従来の機械学習手法と比較して、高い性能を実現できると同時に扱いやすい技術でもある … 「0」 … 「1」 … 「2」 … 「3」 … 「4」 … 「5」 … 「6」 … 「7」 … 「8」 … 「9」
5.
5 入出力次第で無限に広がるDeep Learningの応用 Deep Learningは汎用技術。応用開発人材の育成と、活用の促進が求められる …入力
出力 実現する機能 入力 出力 画像認識 画像 カテゴリ 文章の自動仕分け 文章 文章カテゴリ 音声認識 音声 文字列 機械翻訳 英単語列 日単語列 人工無能(チャット) 入力発話の単語列 期待応答の単語列 センサ異常検知 センサ信号 異常度 ロボット制御 ロボットのセンサ ロボットのアクチュエーター … 実現する機能
6.
6 ソニーのDeep Learningに対する取り組み Neural Network
Libraries/Consoleにより、効率的なAI技術の開発を実現 2000年以前~ 機械学習の研究開発 2010年~ Deep Learningの研究開発 2011年~ 初代コアライブラリ 2013年~ 第二世代コアライブラリ 2016年~ 第3世代コアライブラリ Neural Network Libraries 2015年~ GUIツール 2010年~ Deep Learning開発者向けソフトウェアの開発 Deep Learningを用いた認識技術等の 開発者が用いるソフトウェア群 技術開発効率を圧倒的に向上 Neural Network Console 17/8/17 Windows版無償公開 18/5/9 クラウド版正式サービス開始 17/6/27 オープンソースとして公開
7.
7 Neural Network Libraries
/ Console Neural Network Libraries ?Deep Learning研究開発者向けオープンソースフレーム ワーク(他社製既存Deep Learning FWに相当) ?コーディングを通じて利用→高い自由度 ?最先端の研究や製品への実装にも柔軟に対応 Neural Network Console ?研究や、商用レベルの技術開発に対応したDeep Learningツール ?様々なサポート機能→高い開発効率 ?GUIによるビジュアルな操作→敷居が低い 主なターゲット ?じっくりと研究?開発に取り組まれる方 ?プログラミング可能な研究、開発者 import nnabla as nn import nnabla.functions as F import nnabla.parametric_functions as PF x = nn.Variable(100) t = nn.Variable(10) h = F.tanh(PF.affine(x, 300, name='affine1')) y = PF.affine(h, 10, name='affine2') loss = F.mean(F.softmax_cross_entropy(y, t)) 主なターゲット ?特に開発効率を重視される方 ?はじめてDeep Learningに触れる方 ソニーのDeep LearningソフトウェアはDeep Learningの習得にも最適 学習エンジンとして Neural Network Librariesを利用
8.
8 Neural Network Libraries
/ Consoleのソニーグループ内活用事例 画像認識 ソニーのエンタテインメントロボット“aibo”(アイボ)『ERS-1000』の 画像認識にNeural Network Librariesが使用されています。aiboの鼻先の魚眼レンズによ る画像認識においての人物判定から顔トラッキング、充電台認識、一般物体認識などで 積極的に活用され、多彩なセンサーを搭載することで状況に応じたふるまいの表出を可 能にしています ジェスチャー認識 ソニーモバイルコミュニケーションズの「Xperia Ear」の ヘッドジェスチャー認識機能にNeural Network Librariesが使用されています。「Xperia Ear」に搭載されているセンサーからのデータを元に、ヘッドジェスチャー認識機能に より、首を縦や横に振るだけで、「Xperia Ear」に搭載されているアシスタントに対し て「はい/いいえ」の応答や、着信の応答/拒否、通知の読み上げキャンセル、次/前 のトラックのスキップを行えます 価格推定 ソニー不動産の「不動産価格推定エンジン」に、Neural Network Librariesが使用されています。この技術を核として、ソニー不動産が持つ査定ノウハウ やナレッジをベースとした独自のアルゴリズムに基づいて膨大な量のデータを解析し、 不動産売買における成約価格を統計的に推定する本ソリューションが実現されました。 本ソリューションは、「おうちダイレクト」や、「物件探索マップ」「自動査定」など、 ソニー不動産の様々なビジネスに活用されています。 既にソニーグループ内で多数の商品化実績。業務効率化にも積極活用
9.
9 Deep Learning入門:Neural Networkの構成と学習
10.
10 Feed Forward Neural
Networkの構成例 #1 28×28=784入力 出力 1000 300 300 100 10 affine tanh affine tanh affine 100 softmax 10 10 Deep Neural Network (DNN) ニューラルネットワークは乗加算計算を主とする関数の組み合わせで表現できる 1000 300 100 Affine+Tanh Affine+Tanh Affine+Tanh Affine+Softmax 784 1000 affine tanh
11.
11 Affine (全結合層) … … Input Output 出力ニューロンは全ての入力ニューロンの 信号を受け取る 各接続はそれぞれ異なる重みをもつ 300 100 30,000 Parameter -1.5 -1 -0.5 0 0.5 1 1.5 -6
-4 -2 0 2 4 6 Output Input Tanh (活性化関数) 入力値を-1~1の範囲に収める W
12.
12 Feed Forward Neural
Networkの構成例 #2 28×28 8×8×16 4×4×16 24×24×6 12×12×6 入力 出力 1 x 28 x 28 6 x 24 x 24 16 x 12 x 12 16 x 8 x 8 16 x 4 x 4 120 convolution maxpooling tanh convolution maxpooling tanh affine tanh 16 x 12 x 12 16 x 4 x 4 affine softmax 120 10 10 120 10 Convolutional Neural Network (CNN) Convolution 6種の5x5フィルタを 畳み込み Convolution 16種の6x5x5フィルタを 畳み込み 2↓ MaxPooling + tanh Affine +tanh Affine +softmax 2↓ Maxpooling (sub sampling) + tanh 全結合層の代わりにConvolution(畳み込み演算)とPooling(ダウンサンプリング)を用いる
13.
13 Convolution (畳み込み層) 同じ重みW わずか25 Parameter 局所的なニューロンの入力を元に 出力ニューロンの値を求める Input Output Affine (全結合層) … … Input Output 出力ニューロンは 全ての入力ニューロンの 信号を受け取る 300
100 30,000 Parameters 5x5 kernel
14.
14 MaxPooling (プーリング層) 8 x 8 4
x 4 Input Output 隣接ピクセルで最大値を取り、 ダウンサンプリング
15.
15 ニューラルネットワーク設計の基礎:1層の構成 1層を構成する基本構造 畳み込み 活性化関数 ダウンサンプリング 全結合 活性化関数 ? Affine(全結合)層 ?
Convolution層 これらの構造を繰り返しつなぎ合わせることで、多層ネットワークを構成していく ? 重みつき加算を行う関数(青)と活性化関数(赤)の組み合わせが基本 ? 必要に応じてMaxPoolingでダウンサンプリングを行う
16.
16 ニューラルネットワーク設計の基礎 解きたい課題に合わせ、最後の活性化関数とロス関数を設定 2値分類問題 分類問題 (カテゴリ認識等) 回帰問題(数値予測等) 最後の 活性化関数 Sigmoid 入力値を0.0~1.0(確率)に する Softmax 入力値を合計が1.0となる0.0 ~1.0(確率)にする (なし) ロス関数 BinaryCrossentropy 出力と正解の要素毎の交差エ ントロピーを計算 CategoricalCrossEntropy 出力と正解カテゴリIndexと の交差エントロピーを計算 SquaredError 出力と正解の要素毎の二乗誤 差を算出 ネットワーク
17.
17 Neural Networkの構成と学習まとめ ? プログラミングとは異なり、ニューラルネットワークの構造に正解はない ?
高い精度が実現できる構成がBetter、少ない消費メモリ、演算量の構成がBetter ? ニューロンの数、層の数、活性化関数の種類、その他の構成を試しなが ら、Betterな構成を探る試行錯誤が必要 ? ニューラルネットワークは重みつき加算を行うAffine/Convolution層と活性 化関数(Tanh、ReLUなど)を繰り返し構成するのが基本 ? ニューロンの結合重みWは乱数により初期化され、学習用データを元にした バッチ勾配降下法により最適化される
18.
18 Neural Network Consoleハンズオン Neural
Network Consoleのセットアップ
19.
19 セットアップ:Cloud版 新規アカウントを作成し、ログインするだけで利用の準備が完了 1. アカウントを作成 2.
作成したアカウントでログイン
20.
20 Neural Network Consoleハンズオン 分類問題(画像入力)
21.
21 データセットの準備(画像分類問題) 今回はNeural Network Consoleサンプルデータの、MNISTデータセットを利用 MNISTデータセット(手書き数字認識) 学習用データ samplessample_datasetmnisttraining 28x28のモノクロ画像と、 その数字が何であるかの データからなる60000個のデータ 評価用データ samplessample_datasetmnistvalidation 学習データと同様の データからなる10000個のデータ (学習には用いず、精度評価に利用) データセットの収集はそれなりの労力を要するが、データの量と質が性能を決定する
22.
22 データセットの準備(画像分類問題) 入力xには画像ファイル名を指定 出力yには正解のカテゴリのIndexを記述 1行目 =ヘッダ 変数名[__次元Index][:ラベル名] 2行目以降
=データ 値 or ファイル名 xとy、2つの変数 ヘッダ データ (2行目以降)Neural Network 入力 x 画像 出力 y カテゴリ Neural Network Consoleに対応したデータセットファイルは簡単なスクリプトで作成可能 画像認識機学習用データセットの例 Neural Network Console所定のCSVファイルフォーマットでデータセットを準備 ※Neural Network Consoleは2バイト文字に対応していないため、 CSVファイル内やファイル名に漢字等を含まないようにする
23.
23 データセットのアップロード(Cloud版の場合) 1. ダッシュボードからUpload Datasetを選択 2.
アップローダをダウンロード (Windows / MacOS) 3. アップローダを用いてデータセット CSVファイルとデータをアップロード Upload Datasetで表示されるトークンをアップローダに Pasteし、アップロードするデータセットCSVを指定して Startボタンを押すことでアップロードを開始
24.
24 Consoleを起動、新規プロジェクトを作成する Windows版 Cloud版 適当なプロジェクト名 を入力し、OKボタン を押す
25.
25 学習、評価に用いるCSVデータセットをそれぞれ読み込む DATASETタブにて、作成したデータセットCSVファイルを読み込み (学習用?評価用それぞれ) ※本チュートリアルでは「4」と「9」の手書き数字のみを見分ける簡単なデータセットを利用 Windows版 Cloud版
26.
26 画像認識用ネットワーク(1層 Logistic Regression)を設計する ←1(モノクロ)×28(Height)×28(Width)の画像入力 ←全結合層
入力(1,28,28)→出力(1) ←Sigmoid関数によるアクティベーション ←ロス関数(1) ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ … ○ Input 1x28x28 Affine ○全結合 ○ OutputSigmoid 4(=0) or 9(=1) 1層のネットワークで4と9の数字を見分ける課題 28 28 EDITタブにて関数ブロックを組み合わせ、1層ニューラルネットワークを設計 ドラッグ&ドロップ操作で、視覚的にニューラルネットワークを設計
27.
27 学習パラメータの設定 Mini Batchサイズ (1回の重み更新に使うデータ数) 学習世代数 (全学習データを使った時点で1世代と数える)
28.
28 画像認識用ネットワーク(2層 Multi Layer
Perceptron)を設計 IOカテゴリより、Input Basicカテゴリより、Affine Activationカテゴリより、Tanh Basicカテゴリより、 Affine Activationカテゴリより、 Sigmoid Lossカテゴリより、BinaryCrossEntropy を追加
29.
29 Convolutional Neural Networksへ 下5つのレイヤーを矩形選択して 下にドラッグし、新しいレイヤーを 挿入するスペースを作る BasicカテゴリからConvolution、 PoolingカテゴリからMaxPooling、 ActivationカテゴリからReLUを 2回繰り返し挿入
30.
30 1層のLogistic Regression~4層のCNNまで 1層(Logistic Regression) 2層(Multilayer
perceptron) Convolutional Neural Networks(CNN) Input:データ入力 → Convolution → ReLU → MaxPooling → Affine → ReLU → Affine → Softmax → Categorical Crossentropy 繰り返し 配置 最後の 仕上げ (分類問題時)
31.
31 利用方法 実行環境 言語
GPUの利用 メリット デメリット 1. NNabla Python CLI Neural Network Libraries Python (CLI) Yes 最も簡単 低速 2. NNabla Python API Python Yes 比較的容易 3. NNabla C++ Runtime C++ Yes 推論時にPython不要 4. NNabla C Runtime C No 非常にコンパクトに組 み込み可能 環境に合わせた最 適化が必要 5. ONNX 対応ソフ トウェア、ハード ウェア 各社の提供する ONNX対応Runtime 環境によ り様々 環境により 様々 環境により様々 現状は互換性の問 題が生じることも 作成したモデルを利用する方法は5通り ※ NNabla C++ Runtimeからの実行方法 https://github.com/sony/nnabla/tree/master/examples/cpp/mnist_runtime ※ NNabla C Runtimeからの実行方法 https://github.com/sony/nnabla-c-runtime ※ ONNXへのコンバート方法 https://nnabla.readthedocs.io/en/latest/python/file_format_converter/file_format_converter.html 目的に合わせて最適な利用方法を選択
32.
32 IoTでのDeep Learning活用を加速するSPRESENSE https://www.sony.co.jp/SonyInfo/News/Press/201805/18-044/ https://developer.sony.com/develop/spresense/ ?IoT向けスマートセンシングプロセッサ搭載ボード ?乾電池で動作する低消費電力 ?ソフトウェアはArduino IDE、Eclipse
IDEにて開発可能 CPU ARM? Cortex?-M4F x 6 cores Maximum Clock Frequency 156 MHz SRAM 1.5 MB Flash Memory 8 MB NNabla C Runtimeを用いることで、例えば学習したニューラルネットワークを SPRESENSE上で動作させることができる
33.
33 SPRESENSEハンズオン
34.
34 SPRESENSE用Hand-Signサンプルプロジェクトを開く 1. Projectリスト下のLoad Moreを複数回クリックし tutorial.image_classification.hand-signを探す 2.
tutorial.image_classification.hand-signをクリック、 プロジェクト名を入力(デフォルトでOK) 3. Projectリスト一番上に追加された tutorial.image_classification.hand-signプロジェクトを クリックして開く
35.
35 DATASETタブにてデータセットを確認する ? グー(0)、チョキ(1)、パー(2)、それ以外(3) の画像分類データセット ? 学習用に4,868枚、評価用に1,218枚の画像 が読み込まれている
36.
36 EDITタブにてネットワーク構造を確認する ? Convolution2層、Affine2層のシンプルな CNN ? MulScalarを用い、マニュアルで画像の正規 化(1.0/255)を行っている ?
ImageAugmentationで画像の動的な水増し を行っている
37.
37 TRAININGタブにて学習結果を確認する
38.
38 EVALUATIONタブにて、学習結果のモデルをダウンロード 1. NNB(NNabla C
Runtime用) モデルファイルを選択 2. Download Projectボタンで NNBを ダウンロード
39.
39 SPRESENSEで利用! NNBファイル result.nnb (Hand-Sign認識機)
40.
40 参考資料 (1/2) Neural Network
Console https://dl.sony.com/ja/ Neural Network Consoleスターターパック(企業向け研修プログラムとテクニカルサポート) https://dl.sony.com/ja/business/ Neural Network Libraries https://nnabla.org/ja/ Twitter(Neural Network Libraries / Consoleに関する最新情報など) @NNC_NNL_jpn YouTube(デモ動画など) https://www.youtube.com/channel/UCRTV5p4JsXV3YTdYpTJECRA
41.
41 参考資料 (2/2) CQ出版社より発売のインターフェイス誌 2019年1月号の特集、 「小型リアルタイム組み込み人工知能」第一部にて、Neural
Network Libraries / Consoleを使った認識機の学習から、SPRESENSEほか小型マ イコンで動作させるまでの流れが解説されています。 組み込み用途での利用を検討されている方にお勧めです。 リックテレコム社より発売の「ソニー開発のNeural Network Console入 門 --数式なし、コーディングなしのディープラーニング」が改訂され、 クラウド対応版になりました。 Neural Network Consoleを用いた異常検知、文章分類の方法についても 紹介されています。
42.
SONYはソニー株式会社の登録商標または商標です。 各ソニー製品の商品名?サービス名はソニー株式会社またはグループ各社の登録商標または商標です。その他の製品および会社名は、各社の商号、登録商標または商標です。
Download