BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ブラウザ上でディープラーニングを可能にするTensorflow.js

ブラウザ上でディープラーニングを可能にするTensorflow.js

原文(投稿日:2018/04/18)へのリンク

読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。

先日のTensorFlow Dev Summit 2018でGoogleは、同社のオープンソースのディープラーニングフレームワークであるTensorflowをJavascriptで実装したTensorflow.jsのリリースを発表した。Tensorflow.jsでは、WebGL JavaScript APIの高速演算を活用して、モデルをブラウザ内で直接トレーニングすることが可能である。

Tensorflow.jsは、Googleが2017年8月にリリースしたJavaScriptライブラリのdeeplearn.jsを発展させたものだ。deeplearn.jsは、TypeScriptで記述されたニューラルネットワークをインタラクティブに視覚化するTensorflow Playgroundの成功から生まれた。

Tensorflow.jsには4つのレイヤがある — GPUをサポートする数値演算用のWebGL API、ユーザインタラクション用のWebブラウザ、そしてCoreLayersという2つのAPIだ。低レベルのCore APIは以前のdeeplearn.jsライブラリに相当し、ハードウェアによる線形代数演算と、自動微分(automatic differentiation)用のeager APIを提供する。上位レベルのLayers APIは、Core API上にマシンラーニングモデルを構築するために使用される。Layers APIはKerasをモデルに、相当の機能を実装したものだ。Kerasを使用してpythonで事前にトレーニングされたモデルやTensorFlow SavedModelsをインポートして、リファレンスとして使用したり、あるいはブラウザ内で学習結果を転送することも可能である。

Tensorflow.jsを使用することにより、マシンラーニングモデルを3つの方法でブラウザ内で利用することが可能になる — トレーニング済みのモデルをインポートして推論のみに使用する方法、ブラウザ内でモデルをスクラッチからトレーニングする方法、そして、最初はトランスファラーニングを使ってユーザのコンテキストにインポートしたモデルを採用し、その後に改善されたモデルを推論に使用する方法である。

TensorflowチームのNikhil ThoratDaniel Smilkov両氏が発表ビデオで指摘しているように、Tensowflowをブラウザ内で実行することにはいくつかのメリットがある — バックグラウンドAPI要求が不要になるために要求セットがシンプルになること、コンピュータ上のwebcamやマイク、モバイルデバイス上のGPSやジャイロスコープなど、新たにアクセス可能となるセンサによって、利用可能なデータが必然的にリッチになること、データもクライアント側に残ることでプライバシ上の懸念に対応できること、などだ。

JavaScriptベースのディープラーニングは、多くのWeb開発者に対して、データ科学分野へのハードルを下げる効果もある。マシンラーニング機能を自分たちのアプリケーションに統合することによって、このドメインでの革新的アプローチが可能になるのだ。感情分析手のジェスチャ検出スタイル変更などのオンラインデモでは、マシンラーニングがブラウザ内で直接実行されることによる、インタラクションの速度と品質の面での向上が確認できる。

同じようなディープラーニングフレームワークのJavaScriptによる実装としては、先駆者であるbrain.jsプロジェクトや、畳み込みニューラルネットワークを対象としたスタンフォードのConvNet.jsライブラリなどが既に存在する。さらに新しいものでは、KerasJSTensorFireなどがある。しかしこれらのライブラリには、いずれもGPUベースの演算を行うためのブラウザWebGLコンポーネントを活用する機能や、あるいはブラウザ上でモデルを直接的にトレーニングする機能を欠いている。科学計算用のPropelやマシンラーニングを目的とするml5は、Tensorflow.jsをベースとした最新のプロジェクトであるため、このような欠点に苛まれることはない。

Tensorflowチームは現在、Tensorflow.jsでNode.jsをサポートする開発に取り組んでいるが、現時点で提供スケジュールの発表はない。TensorFlow Dev Summitではその他にも、2018年4月にリリース予定のTensorFlow for Swiftや、“さまざまなビルド済みモジュールを共有して、複数のモデル間での再利用可能にするためのリポジトリを提供する”TensorFlow Hubなど、TensorFlow関連の重要な開発がいくつか発表されている。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT