AIや機械学習を学ぶ際にはPythonやサーバサイドのプログラミング言語を習得するのが一般的です。しかし、最近ではエッジやオフラインでも実行できるAI、機械学習環境に注目が集まっています。そうすることでクラウドにデータを上げず、プライバシーに配慮したAI利用が可能になります。
今回はそんなWebブラウザで実行できる機械学習エンジンを紹介します。
TensorFlow
TensorFlow.jsはGoogleが主導して開発している機械学習エンジンになります。ベースとなっているのはTensorFlowで、TensorFlow.jsはそのWeb版です。同じモデルが利用できます。
ONNX.js - Run ONNX models in the browser
ONNX.jsは機械学習モデルの共通フォーマットであるONNXを実行するライブラリです。Microsoftが主導して開発を行っています。
ONNX.js - Run ONNX models in the browser
Synaptic - The javascript neural network library
Synapticはアルゼンチンのブエノスアイレスで始まったオープンソースプロジェクトです。多層パーセプトロン、LSTM、液体状態機械およびホップフィールドネットワークなどに対応しています。
Synaptic - The javascript neural network library
Brain.js: GPU accelerated Neural Networks in JavaScript
GPUを活用したニューラルネットワークエンジンで、WebブラウザとNode.js両方で動作します。Webブラウザの場合はWebGLを利用します。
Brain.js: GPU accelerated Neural Networks in JavaScript
Mind - Flexible neural network library
レコメンドがデモとして上がっているニューラルネットワークライブラリです。学習データのダウンロード、およびアップロードが可能です。
Mind - Flexible neural network library
ConvNetJS: Deep Learning in your browser
連結層、非線形、分類(SVM/Softmax)、回帰、畳み込みネットワークといった一般的なニューラルネットワークモジュールを提供します。実験的ではありますがDeep Q Learningを用いた強化学習モジュールもあります。
ConvNetJS: Deep Learning in your browser
ml5js·Friendly Machine Learning For The Web
ml5jsはTensorflow.jsをより使いやすくラッピングしたライブラリになります。PoseNet、オブジェクト認識、Pix2Pix、カテゴライズなどが簡単なメソッドで使えるようになります。
ml5js·Friendly Machine Learning For The Web
neuro.js
AIアシスタントやチャットボットを作るのに特化したニューラルネットワークライブラリです。
Keras.js - Run Keras models in the browser
KerasモデルをWebブラウザ上で扱えるようにするのがKeras.jsです。AC-GAN、ImageNet、LSTMなど様々なアーキテクチャが用意されています。
Keras.js - Run Keras models in the browser
MIL WebDNN
Web上でDNN(ディープニューラルネットワーク)を行うのに合わせて最適化されたモデルを作成、実行します。既存ライブラリと比べて200倍近く高速化されるようです。
まとめ
Webブラウザで学習させることもできますが、多くの場合はあらかじめモデルを作成しておき、それを読み込んで実行するでしょう。そうすることで、Webカメラの映像から情報を読み取ったり、キーボード入力を解析したりできます。Webブラウザであれば、開発やテストがより簡単になりそうです。ぜひお試しください。
FRONT-END.AIはデザインを理解するAIとして、画像をアップロードするとHTML/CSSコードを生成するサービスを提供しています。この画像解析部分において、AIが用いられています。画像解析に興味があるAI、機械学習エンジニアの方は、ぜひ私たちの求人情報をご覧ください。