世界中で利用される機械学習向けのオープンソース「TensorFlow」とは何か

TensorFlowのメリットやその特徴、周辺サービスについて説明する。また、今後の拡張の方向についても紹介する。

シェアする

近年研究成果が注目され、実用化、導入が進んできている深層学習の開発をより効率化しているのが機械学習向けオープンソースライブラリである。その中でもGoogleが内部利用向けに開発し、公開したTensorFlowは世界中で最も利用されているライブラリである。ここではTensorFlowのメリット、特徴等について説明する。

tensorflow_アルゴリズム

ライブラリとは

ライブラリとはプログラミング言語において、よく利用すると思われる複数の関数や機能、データなどを再利用可能な形でまとめたファイルのことである。ライブラリは単独では実行することはできない。似た言葉としてモジュールと言う言葉があるがモジュールはライブラリよりも小さな集まりを指すことが多い。

TensorFlowの歴史

深層学習をプログラムで実装するためには、様々なアルゴリズムによって構成される深層学習の処理フローをPythonやC言語などのプログラム言語で設計、コーディングする必要があり、多くの時間と経験が必要となる。しかし、深層学習としての処理フローは汎用的に整理されており、学習内容には大きく依存せず共通であるとされている。したがって、これらの処理をそれぞれの固まりとして汎用的なコマンドで呼び出すことができるよう開発されたライブラリがTensorFlowを含む機械学習向けオープンソースライブラリである。

TensorFlowはGoogleのAI開発チームであるGoogle Brainによって内部利用向けに開発され、その後、機械学習向けオープンソースとして公開されたライブラリである。最初の版は、2015年11月にリリースされた。それ以前にリリースされた他の機械学習向けオープンソースライブラリにはCaffe、Torch7、Chainerなどがあるが、TensorFlowは現在、世界中でもっとも利用されていると言うことができる。

TensorFlowの特徴と仕組み

TensorFlowは、Google による公式サポートが充実しており、定期的に無料セミナーも開催されているため世界的にユーザが拡大している。開発者はソースコードを管理するために利用するサイトGithubで公開される様々な課題に対する深層学習アルゴリズムの実装例もTensorFlowを利用したものが多い。

また、ユーザが多くなるにしたがってStack OverFlowなどのQAサイトでの問い合わせ、回答の事例も増え、公式サポート以外でのユーザ間での情報交換も充実しているため、さらに利用が拡大するというエコシステムが構築されている。

TensorFlowは、ブラウザ上で様々なネットワークやパラメータを設定しニューラルネットワークの動作をオンラインで可視化できるplayground(https://playground.tensorflow.org/)というサービスが2016年より提供されている。このサイトでは、ニューラルネット初学者でもplaygroundによって設定・学習することでTensorFlowをインストールする前に学習における、パラメータの役割や影響をイメージすることができる(図1)。

tensorflowとは

図1TensorFlow playground

TensorFlowは、処理を内部的にTensor(テンソル)の流れ(Flow)として表現し動作する。ここでテンソルとは、データの表現形態であるスカラー、ベクトル、マトリックス、それ以上の高次元配列を総称する概念である。つまり、TensorFlowでは、入力データであるベクトル、各層ごとのニューロン応答の計算をまとめて表現するマトリックス、誤差総和を表現するスカラーなどを全て内部ではテンソルとして同一に取り扱い、それらの組み合わせでフローを表現し、実行処理のバリエーションを少なく単純化することで処理の高速化、分散処理を可能としている。

さらにTensorFlowの処理を効率化するために、GoogleはTPU(Tensor Processing Unit)と呼ばれる専用アクセラレータチップを開発した。このTPUによって構成されるクラウドのベータ版「Cloud TPU」を2018年2月よりサービス開始した。2018年5月にはさらに効率化したTPUも発表しており、GoogleはTensorFlowを利用した開発効率、学習効率の双方の効率化をサポートしつつある。

また、学習結果を動作させる環境をブラウザ、Raspberry Pi、スマホに拡張するためTensorFlow.jpを開発、リリースし、Swiftを開発言語に追加することも計画されており、さらなるAIの普及に向けシェアを拡大しようとしている。

まとめ

TensorFlowは、世界中で最も利用される機械学習向けオープンソースライブラリとなっているが、より効率的な開発・学習の実現を目指して現在も進化し続けている。また、ブラウザやRaspberry Piでの動作を可能とするTensorFlow.jpの開発等、動作環境の拡張も進んでいる。深層学習を導入するためにはTensorFlowは必須と言えるライブラリある。


<参考>

  1. An open source machine learning framework for everyone
    https://www.tensorflow.org/
  2. Tinker With a Neural Network Right Here in Your Browser. Don’t Worry, You Can’t Break It. We Promise.
    https://playground.tensorflow.org/
  3. Cloud Tensor Processing Units (TPUs)
    https://cloud.google.com/tpu/