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.

組み込みAI LT @ 2018/07/20 上越テックミートアップ

130 views

Published on

組み込みxAIで取り組んで苦労したことをLTにまとめました。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

組み込みAI LT @ 2018/07/20 上越テックミートアップ

  1. 1. 組み込みAI 2018/7/21 @yukilab222 菊地
  2. 2. 優勝賞金1,000万円 #linebootawards 2018 について最後に
  3. 3. たとえばこれくらいのハード ウェアでもできることもある ARM Cortex-M4F 96MHz FPU付き $20 GPUの乗っている携帯は組み込み屋にとってエッジ(いぢれる)ではない・・ (遠い目//)
  4. 4. ところであんた誰? • IoTフルスタックフリーランス (2012 - ) • AIの勉強中・業務応用開発は現在進行形 • IoTLT新潟、AI朝会主催 • Prototype Cafe - シェアオフィス兼open IoT作業所運営 • 海で遊ぶのが好きで、東京から新潟へ移住。仕事は変わらず • LINE BOOT AWARDS 2018を支援
  5. 5. Python + 機械学習 所感 (私には) 言ってることがよくわからないし、 役に立つ様な気がしない
  6. 6. C言語+機械学習 所感 (私には) なぜか、ピンとこなくて積ん読
  7. 7. ピンとこない (_ _);;
  8. 8. (多分典型的な)AIの人の理解
  9. 9. “q15フォーマット”とは? ”へっ??(AIの人)” “うん。それで?(組み込みの人、たぶん)”
  10. 10. 組み込み人Q15こうげ きでびくともしない
  11. 11. bit, register, asm, C,時々ライブラリ 。 気になるのは実行速度とメモリ容量 1bitの深みをきにしないData Scientist (disってるわけではない) 1bitの意味がものすごく重要で知らなけれならない組み込み人
  12. 12. キーワード 機械学習の説明 1bitに到るまでの実装の説明 python 機械学習 してる X C言語 機械学習 してる X ギャップ ギャップ ギャップ C言語 組み込み ここがなかった! 必要!
  13. 13. 本棚にあったこれが神
  14. 14. あまりに感動したので著者 (東京)に会ってきました
  15. 15. (普通の)AIプロジェクト 教師データ (画像など情報量多) AIモデル (例えばkerasを使っ たNN構造の定義) CPU/GPU 学習させる 学習済みモデル (hd5ファイル等 ) (kerasなどで)読 み込んで予測などに 使う CPU/GPU 学習は時間がかかって、計算 量もすごく多くて重たい 時間はそれほどでもないが、 計算量はあってやっぱり重たい
  16. 16. 組み込みAI例 (制約:CPU弱、FPUやGPUがない場合も。ROMもRAMも少なめ) 教師データ (信号など情報量少) AIモデル (例えばkerasを使っ たNN構造の定義) CPU/GPU 学習させる 学習済みモデル (hd5ファイル等 ) (kerasなどの)モ デルを参照して、C言 語などでモデル作っ て実行 MPU/FPU学習済みモデル C言語で扱える 様に変換 モデル(推論計算式) ROM 学習済みモデル (重み・バイアス値) ROMでいいかも モデルの使う変数 RAM
  17. 17. 応用 •産業用:個々の設備の異常検出(振動 など) •人体・室内/室外環境など各種信号を 元に異常検出 •従来の手法でできないときのみAI(DL, MLを試すべき)
  18. 18. ひとりでやるのは大変 (必要なスキルセットが多い )
  19. 19. 過去1月の振り返り
  20. 20. モデルを作る • Keras などを用いて作ります。 • まあ、python を使ってたとえば model = Sequential() model.add(Dense(512, input_shape=(N,))) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add((Dense(1), activation='sigmoid'))
  21. 21. トレーニング • たくさんのデータが必要。数千〜数万 • (できればGPU付きの)PCでやると早い。 • 時間はかかりますが、待っていれば終わる ので実作業はない。
  22. 22. トレーニング結果の出力 • hd5データ形式ファイルのようなバイナリファイルにトレーニング結果(重 み・バイアス値)を書き出します。 • 入っているのは、モデルの各レイヤの計算に必要な重みとバイアスの配列 • hd5プロジェクトのライブラリを使うと簡単に読み出すことができます。 • トレーニングの最後にモデルから別の形式で吐き出させることもできます 。 DF5/doc/UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDataModelAndFileStructure%2FThe_HDF5_Data
  23. 23. トレーニング結果のC言語へ の変換 • h5ファイルを解析するライブラリなどの助けを借りて、 h5ファイルの中にある重み・バイアスを読み出し、C言語 で使えるように書き出します。さらっと書いてますがkerasの内部実 装をみて先述の書籍をみて十分自信持たないと実装はできません。 • 書き出す際には組み込み機器の中で演算できる様に(浮動 小数点のままだと計算遅いのがきになるとき)固定小数 点や、integerに変換 さらっと書いてますが組み込み機器内で動かすま で、経験がないと、遅いかどうかはわかりません。 • コンバータを書くのはpythonが断然吉。
  24. 24. 組み込み機器内のモデル • (C言語で書くとして) 組み込み機器の中にモデルを作りま す。 • 行列の乗算・加算です。CPUでもできますが、FPUやGPUがあ れば高速。それらを効率的に支えるライブラリがあればベスト • 何をどう乗算して、加算するかはモデルのソースコードや参考 資料をみないとわからない
  25. 25. ARM神 現る !!!
  26. 26. 例まである! 使い様によってはmbedでもできるって こと。
  27. 27. ARM CMSIS-DSP/NN ライブラリ • https://github.com/ARM-software/CMSIS_5 あたりを見るとい いと思います。 • CPUによる実装も書いてあります。FPUがある場合はFPUを 使った高速な演算をしてくれます。 • CMSIS_5 じゃなくても、古いCMSIS内でも、ハックすれば使 えます。 • 無理そうだったら CPU直でも、古いCMSISにも入っている CMSIS-DSPでこつこつやっても。乗算と加算しか使いません 。
  28. 28. • 使ってるMPUじゃとってもAI処理なんて無理、と思って ましたが、意外と工夫すればできそう。(現在進行形な ので答えはないけど) • AIのエンジニアと組み込みハード・ソフトエンジニアがす り寄れば実現できます。 • 続きは 7月末の IoTLT新潟で。 • 年末から来年にかけてエッジAIチップが出て安くなってき たらそれを使えば良いだけになり、この実装は無駄にな る・・? MPU / FPGA / GPU /他HWの戦いの年です。
  29. 29. 参考&謝辞 • インターフェース誌 2018/6月号 辰岡さんの記事 • 辰岡さん(東京) • Blincamの Sumanthさん (新潟市 Prototype Cafeにいます) • Python プロフェッショナルプログラミング 第3版 • ARMのAI戦略 : http://eetimes.jp/ee/articles/1803/23/news070_2.html
  30. 30. 新潟市内技術コミュ向け 無料解放場所のご案内
  31. 31. • 無料 電子工作・IoTシェア作業所。勉強・仕事もOK。新潟駅から徒歩10分。 特にオフィ スメンバに用事がなくてもOK。相談もOK。 • おおよそ平日 9:00 - 17:00 空いてます。他の時間帯もお知らせいただければ開けられます 。(twitter @Prototypecafe で open時間など流してます) • 技術・デザイン・経営など勉強会・コミュニティーに一度以上参加する・参加している方 と関係者向けにスペース解放。 • 基本的に部品の販売はありませんが要望あれば。 • 飲食の提供はありません。持ち込み・飲酒/食自由。 • WiFi/電源/電気・IoT系雑誌などおいてます • 展示スペースあり。 • どうしてもという方には、営業・有料セミナー用に有料解放します。費用は応相談。 • 飲み物・部品・お菓子寄付歓迎。来場者用です。 • 制約これだけ:半面はシェア作業所・オフィスです。利用はお静かに。片付けをお願いします 依頼されない限りこの場所での営業はありません。どんどん使ってください。 よくわらなくてできない・やらない・機会がない、相 談できる人がいない、学びをシェアしたい、を解決し て前に進めるようにスペースを解放
  32. 32. 電子工作に必要な道具一式 3Dプリンタ・工具 オシロ、マルチメータ 電源 エアコンプレッサ ホワイトボード プロジェクタ など使えます。 cafe内にある部品は使ってみたりできます。ラ ズパイ・micro:bitなども これまでに開催されたもの ・IoTLT新潟 ・某社内勉強会 ・組込系Python Bootcamp (勝手開催2 回) ・グロービス新潟会 ・AI朝活 ・製品化のための電子回路相談
  33. 33. おまたせ
  34. 34. LINE BOOT AWARDS 2018 @LINE_DEV @linebootawards https://www.line-community.me/awards/
  35. 35. LINEからclovaを含むAPI 協賛企業からもAPI https://www.line-community.me/awards/apis
  36. 36. 個人/法人や年齢、居住国など問わず参加が可能 Messaging APIを使用したLINEアカウント and/or Clova Extentions Kitを使用したClova Skillを組み込んだ実装サービ スを対象とし、 審査時点で各規約を満たした上で公開され ていることが条件
  37. 37. 評価軸 LOVED BY USERS ユーザーに継続的かつ日常的に愛されるサービスであること。そのサ ービスを通じて、LINEやClova自体がよりユーザーに愛される存在にな るようなサービスであること。 LINE AS A PLATFORM 既存サービスの拡張・転用だけではなく、LINEやClovaの特徴やユーザ ー接点を活かし、双方向かつ能動的な新たなコミュニケーションを生 み出すサービスであること。 QUALITY 様々なAPIやサービス等を組み合わせ、単純な”機能”ではなく”サービス ”と呼べる完成度があり、ビジョンだけではなく、サービス実現までの 道筋が見えること。
  38. 38. 関連イベント https://linedev.connpass.com/ こんなとこにいていいのか(汗)
  39. 39. • IoTLT新潟(というか・・私?)は、企画のためのアイデ ィアソンやAPIハンズオンを各地で催す予定です。 関連イベント https://linedev.connpass.com/
  40. 40. ありがとうございました @yukilab222 IoTLT新潟 Vol.6 は 7/29です 初上越市、新潟から近かったです(^^)//

×