組込みディープラーニングフレームワーク KAIBER

KAIBER ~組込みに特化ディープラーニング。素早く・簡単に~

KAIBER ~組込みに特化ディープラーニング。素早く・簡単に~

「KAIBER」は、IoT分野で重要なトレンドになる「エッジコンピューティング」での利用に特化して開発されたエンベデッドディープラーニングフレームワークです。

KAIBER エンベデッドディープラーニングフレームワーク

組込み用途に特化した国産初の汎用深層学習フレームワーク

  • オープンソース未使用、商用ライセンスで提供
  • 完全分離された学習環境(ディープラーニングエンジン)と推論実行環境(推論実行モジュール)
  • IoTデバイスやスマートフォンなどに容易に組込が可能
組込み用途に特化した国産初の汎用深層学習フレームワーク

業界最小クラスの省スペース設計

  • フットプリント:組込みモジュール最小20KByte
    (学習済データサイズはシステムに依存)

使いやすさへのアプローチ

  • ディープラーニングエンジンはJAVAで開発されており多様なプラットフォームで動作可能
  • 組込み向け推論実行モジュールはCライブラリで提供可能
  • 直感的で使いやすい学習環境GUIを搭載
KAIBER ~組込みに特化ディープラーニング。素早く・簡単に~

独自実装の強み

  • 独自実装によりARMやGPU・FPGA等の多様なデバイスにカスタマイズ可能
  • 組込み向け学習済みデータ圧縮機能
    (実装予定)

商品構成

コンサルティングサービス
要件定義・機能企画・調査・学習データ収集作業など
KAIBER サーバライセンス
サーバ(PC上)で動作するディープラーニングエンジン
学習済みデータ生成サービス
アジャイル開発手法による基本機能設計・詳細機能設計・学習済みデータ生成作業
KAIBER エンベデッドライセンス
組込みマイコン上で動作する推論実行モジュールのライブラリ生成作業及び提供
組込みサービス
KAIBER エンベデッドライセンスをターゲットに組込む作業

仕様・特徴

KAIBER サーバライセンス ~学習環境(ディープラーニングエンジン)~

  • 独自設計、非オープンソース
  • 独自実装のため、機能強化やチューニングのサポートが容易
  • 学習環境(ディープラーニングエンジン)と推論実行環境(推論実行モジュール)の完全分離構造
  • サーバーのオンプレミス対応 (重要データのセキュリティ管理性が向上)
  • CNN/Faster R-CNN/RNN等に対応
  • 直感的でわかりやすい先進の開発用GUIを搭載
  • ライセンス形式
    • サブスクリプション型ユーザライセンス
    • 月額契約課金方式(6ヶ月からの契約、以降1ヵ月単位で延長が可能)
    • サポートはサーバライセンス契約に含まれます
  • GPUカードの推奨環境
    • NVIDIA CUDA Compute Capability 3.0 以上でGPUグローバルメモリ最低2GByte以上、推奨は4GByte以上
      https://developer.nvidia.com/cuda-gpus
      *グローバルメモリが 1GB 程度のカードは、大きなニューラルネットワークを構成することができません
    • サポートOS
      Windows
      Linux

KAIBER エンベデッドライセンス ~推論実行環境(推論実行モジュール)~

  • 独自設計、非オープンソース
  • 独自実装のため、機能強化やチューニングのサポートが容易
  • 世界最小クラスのコンパクトサイズ(フットプリント:組込みモジュール最小20KByte〜+学習済データサイズはシステムに依存)
  • JAVA/Cのライブラリの2種類を用意
  • ライセンス形式
    • スマートフォンAndroid、iPhonで利用されるJAVAライブラリは無償(著作権はディープインサイトに帰属します)
    • Cライブラリでの提供は数量ロイヤリティ(エンベデッドライセンス個別の契約が必要です)
    • ライブラリ生成作業(指定コンパイラの貸し出しをお願いします)
    • サポートはサーバライセンス契約中のみ対応

推論実行モジュール動作確認済み環境

ESPT-RX データテクノロジー株式会社

ESPT-RX データテクノロジー株式会社
CPU:
RX63N 100MHz ルネサステクノロジー株式会社
OS:
NORTi 株式会社ミスポ

評価内容:カメラ画像による数字の画像認識(CNN)

  • DNN学習済みデータ:1.8MByte(テキスト)
  • DNN階層:7
  • コードサイズ:5Kbyte
  • DNN処理時間:50ms

Raspberry Pi 3 Model B

Raspberry Pi 3 Model B
CPU:
BCM2837 1.2GHz Broadcom Ltd.
OS:
Linux

評価内容:カメラ画像によるジェスチャー認識制御(CNN)

  • DNN学習済みデータ:2.0MByte(テキスト)
  • DNN階層:10
  • コードサイズ:29Kbyte
  • DNN処理時間:60ms


参考1) 一般的な用語

畳み込みニューラルネットワーク(Convolutional Neural Network(CNN))

主に画像や自然言語処理に使われており、特に画像認識分野での実用化は急速に進んでいる。
中間層は主に畳み込み(convolution)層とプーリング(サンプリング)層を交互に繰り返すことでデータの特徴を抽出し、最後に全結合層で認識を行う。


Recurrent Neural Network(RNN)

時系列キーフレームを複数セットで解析する動画分類や、自然言語処理・音声認識での言語モデル、ロボットの行動制御などに使われる。このモデルの特徴は、唯一中間層への事故フィードバックが出来る点にある。たとえば、前時刻の層の出力を考慮して現中間層の出力を計算したり、次時刻の層の出力を考慮して現中間層へと両方向に情報をフィードバックが可能。他のニューラルネットワークとは違い、系列データへの対応と応用範囲が広い。


正則化(regularization)

過学習を避けるための手法。重み減衰(weight decay)、または重み上限(max norm)のどちらかを使用する。


ドロップアウト(dropout)

ランダムに入力データの一部を隠して学習させることにより、一つのニューラルネットワークの中に複数個のニューラルネットワークが入っているように学習を行うことができる。

  • 一般には複数のニューラルネットワークで学習したアウトプットの平均を取ると正解率が向上することが知られている。ドロップアウトを行うことにより一つのニューラルネットワークでこれを実現することが可能となる。

自己符号化器(auto encoder)、スパース自己符号化器(sparse auto encoder)

ニューラルネットワークの隠そうを教師無しデータで学習させることによって、トレーニングデータの冗長な特徴から少数の特徴をうまく選びだすことができる。

  • 自己符号化器を使用して各層の重みを初期化することにより、学習が効率的に行われることが知られている。

白色化(whitening)

トレーニングデータを変換して偏りを除去する手法。PCA(Principal Component Analysis)とZCA(Zero-phase Component Analysis)という手法がある。

  • トレーニングデータに偏り(特徴同士に相互関係がある場合)があると学習がうまく行われない場合があるため。

ミニバッチ確率的後輩降下法(mini batch stochastic gradient decent)

トレーニングデータの中からランダムに少数のデータを選択し、それらのデータに対して勾配を計算し重みを更新する手法。バッチ学習(トレーニングデータ全体を使用する手法)に比べて、誤差の大きい極小解に補われるリスクを軽減できる。


モメンタム(momentum)

重みの更新量を調整することにより、効率的に極小解にたどり着くことができる。


参考2) ニューラルネットワークの種類

ニューラルネットワークの種類
  • CNN:Convolutional Neural Network
  • DAE:Denoising Auto Encoder
  • DBN:Deep Belief network
  • DBM:Deep Boltzmann Machine
  • GMM:Gaussian Mixture Model
  • RBM:Restricted Boltzmann Machine
  • RNN:Recurrent Neural Network
  • SOM:Self Organizing Network
  • SVM:Support vector Machine
  • TICA:Topographic Independent Component Analysis
このページのトップへ