エッジAIとは
エッジAI
という言葉を聞いたことはあるでしょうか。
エッジAIというのは、簡単に言うとエッジ(端末)にAIを組み込むことです。
エッジAIと対比されるのがクラウドAIです。クラウドAIは、その名の通りデータをクラウドに集約して学習、推論します。
これに対してエッジAIでは、端末で学習や推論という基本的なAIの働きを実現します。
近年エッジAIへの注目が高まっています。
今日は、エッジAIについて見ていきます。
エッジAIとIoT
IoTは、Internet of thingsの略です。
モノのインターネット化とも呼ばれ、スマートフォン、家電、車など様々なモノがインターネットにつながり、それらのモノに情報技術を活用できるようになります。
このIoTとエッジAIの関係が近年注目されています。
クラウドAIは、全てのデータをクラウドに集め、AIの学習、推論を行いますが、エッジAIでは家電や車などの端末(エッジ)側に近い部分で学習、推論を試みます。
このエッジAIには、
- 端末側で即時推論することでIoTでのAI活用が進む
- クラウドAIに比べて通信コストを減らすことができる
などのメリットがあると言われています。
全てのデータをクラウドに集めて学習、推論するクラウドAIに比べると、エッジAIでは即時判断可能、通信費の削減が見込めることなどからIoTと合わせて、様々な領域での実用化が期待されています。
様々なスタートアップが出てきており、Google、Intel、Nvidiaなどの巨大企業もエッジAIの研究開発を進めています。
エッジAI向けの様々なハードウェアが登場
エッジAI向けの様々なハードウェアが発表されています。
Edge TPU
Edge TPUは、Googleが販売しているエッジAI用の集積回路です。
TPUは、Tensor processing unitの略で機械学習向けの集積回路です。CPUといった一般的な処理装置に比べて効率的に機械学習ができるとされています。
Edge TPUを用いることで、端末側で推論が行えます。推論のみ実行なので、予め別環境で学習を済ませておく必要があります。
通常AIの文脈で機械学習やディープラーニングを見た場合、データから学習 → 推論、という手順でAIは実装されます。
エッジAIでは、学習は事前に別環境で済ませておいて、即時の判断が必要な推論のみエッジ(端末側)で処理するケースが多くあります。
この場合は、推論時にインターネット環境から切り離された状態でもエッジで処理できることも強みになります。
Edge TPUの使用環境は、
- Google Cloudで学習(トレーニング) → TensorFlow、scikit-learnなどを使用
- Edge TPUで推論 → TensorFlow Liteを使用
という形が想定されているようです。
TensorFlowとscikit-learnは機械学習、ディープラーニング用のPythonのフレームワーク / ライブラリです。
TensorFlow Liteは、TensorFlowのモデルを端末側で実行できるようにするためのフレームワークです。
Edge TPUを使用した画像認識や物体追跡の例などが紹介されています。
Neural Compute Stick 2
Neural Compute Stick 2はIntelが販売している、USBスティック型のデバイスです。
Neural Compute Stick 2には、VPU(Vision Processing Units)が搭載されていて、このデバイスを各種端末に接続することで画像認識性能を向上させることができます。
公式のチュートリアルが用意されています。
Jetson Nano
Jetson Nanoは、Nvidiaが販売しているエッジAI用のコンピュータです。
GPU(Graphics processing unit)が搭載されていて、ディープラーニングを実装することができます。
公式の学習用サイトが充実しています。様々なデモを確認することができます。
コミュニティサイトからは、
- 人間の姿勢推定
- 物体検出と追跡
- 音声認識
などの例を見ることができます。
Jetson Nanoも公式のチュートリアルが用意されています。
エッジAI入門
注目を集めているエッジAIは、入門者向けの教材も色々と出てきています。
オンラインコース
オンラインのコースがいくつかあります。
Intel Edge AI for IoT Developers
Intel Edge AI for IoT Developersは、オンライン学習プラットフォームとして広く知られているUdacityとIntelが共同で提供している学習コースです。
このコースでは、
- OpenVINOとエッジAIの基礎
- コンピュータビジョンとディープラーニングデプロイのためのハードウェア
などについて学ぶことができます。
OpenVINOというのは、Intelが提供しているエッジAIやディープラーニングのためのツールキットです。
エッジコンピューティングとエッジAI
エッジコンピューティングとは、エッジ(端末)の近くでデータを処理、計算することです。
このエッジコンピューティングの文脈でエッジAIの活用が試みられることがあります。
この点から、学習コースとして、
Advanced Deployment Scenarios with TensorFlow
があります。
このコースの
Data at the edge
というパートで、エッジコンピューティングと機械学習について学ぶことができます。
このコース全体では、PythonのディープラーニングフレームワークTensorFlowのエコシステム
などについて学ぶことができます。
このコースは、
TensorFlow: Data and Deployment専門講座
という専門講座の一部です。学習プラットフォームとして広く知られているCoursera上で提供されています。
電子工作×エッジAI入門
- Raspberry Pi
- Arduino
- Jetson Nano
などのコンピュータを使ってエッジAIについて学ぶことができます。
Raspberry PiとArduinoは、Jetson Nanoと同じように基盤に電子部品が取り付けられた形のコンピュータですが、GPUやTPUを搭載していません。
そのため、
- Neural Compute Stick 2 × Raspberry Pi
- Neural Compute Stick 2 × Arduino
- Edge TPU × Raspberry Pi
といった組み合わせにより電子工作でエッジAIに取り組みやすくなります。
これらにさらにOpenVINOツールキットを使うことで、画像認識を実現している例があります。
Edge TPUとRaspberry Piの組み合わせについては、
『ラズパイとEdge TPUで学ぶAIの作り方』という書籍が出ています。
Jetson Nanoは、JetBotという工作キットと組み合わせて使うことができます。
Jetson Nano × JetBot
でAIロボット開発に取り組むことが可能になります。
Jetson Nanoは入門用の記事が充実しています。
プログラミング学習×エッジAI
ここまで紹介してきたように、
エッジAIは近年注目されていて、学習用教材やハードウェアも出てきています。
プログラミング学習という面から見ると色々な組み合わせが考えられます。
- 電子工作 × 機械学習プログラミング
- ロボット × ディープラーニングのプログラミング
などです。
色々なハードウェアやツールキットを活用して
プログラミング学習でエッジAIに取り組むのも良いのではないでしょうか。
コメント