「TensorFlow」は当初、Google Brain Teamのディープラーニング研究プロジェクトだったが、Googleの50のチームの共同作業によって新たなオープンソースライブラリーとなり、「Google Assistant」「Google Photos」「Gmail」「Google Search」など、Googleのエコシステム全体に展開された。GoogleはTensorFlowを導入したことで、知覚や言語理解のタスクを使用して、ディープラーニングをさまざまな分野に応用することができる。
この入門記事では、TensorFlowに関する最新情報を紹介する。
概要
- どんなものなのか:Googleは世界最大の機械学習インフラストラクチャーを有しており、TensorFlowによって、それを共有できるようになった。オープンソースライブラリーであるTensorFlowでは、ソフトウェア開発者が製品にディープラーニングを適用するためのツールが提供されている。
- なぜ重要なのか:ユーザーのサービスやデバイスとの関わり方の進化において、AIは極めて重要な要素になった。開発者は、こうした強力なライブラリー群を利用することで、ディープラーニングの強力な進化を製品に組み込むことができる。
- 誰が影響を受けるのか:開発者とユーザーに永続的な影響があるだろう。TensorFlowはオープンソース化されたため、すべての開発者が利用できるようになった。これにより、製品を大幅に強化して、さらに高度なインテリジェンスを組み込み、精度を高めることができる。
- いつリリースされたのか:米国時間2015年11月9日に最初にリリースされ、安定版が2017年2月15日にリリースされた。Googleが先ごろリリースした「TensorFlow 2.4」には、多数の新機能とプロファイラーツールが含まれている。
- どうすれば利用できるのか:開発者はTensorFlowのGitHubリポジトリーからソースコードをダウンロードできる。ユーザーはすでにその効果をGoogleのエコシステムで実感しているはずだ。
どんなものなのか
写真にエッフェル塔が写っていると、Google Photosはその画像を識別できる。これを可能にしたのが、ディープラーニングとTensorFlowのような技術の発展だ。TensorFlowができる前は、機械学習の研究者と実際の製品の開発者の間に溝があり、その溝のせいで、開発者がソフトウェアにディープラーニングを組み込むのが困難だったが、TensorFlowがその溝を埋めた。
TensorFlowで提供される一連のモジュール(「Python」APIと「C/C++」APIの両方に対応)によって、TensorFlowの計算を構築して実行することができる。これらの計算はステートフルなデータフローグラフで表現され、このグラフを使用することで、Google Photosなどのアプリケーションはよく知られるランドマークに基づいて画像内の場所を極めて正確に認識することが可能になる。
Googleは2011年、正の強化モデルを使用する「DistBelief」という製品を開発した。機械に猫の写真を見せて、それが猫の写真かどうかを尋ね、正しく推測できた場合はその旨を伝え、推測が間違っていた場合は調整を加えて、画像の認識精度の向上を図る。
TensorFlowではこの概念を発展させ、ノードと呼ばれるデータの層を調べて分類する。層が深くなればなるほど、画像に関する質問の数を増やし、尋ねる内容を複雑にすることができる。たとえば、最初の層での質問は円形を認識するという単純な内容だが、もっと深い層では、猫の目を識別させるという具合だ。このフロープロセス(入力からデータの層を経て出力に至るまで)は、「tensor」(テンソル)と呼ばれる。これがTensorFlowという名前の由来だ。
TensorFlow 2.0とはどんなものなのか
Googleがロールアウトを進めているTensorFlow 2.0には、以下のような改善点がある。
- APIコンポーネントと「tf.keras」(複数のバックエンド上で動作するニューラルネットワーク用の高レベルインタフェース)の統合が改善される。
- 「TensorFlow.js」バージョン1.0を搭載。これにより、既製の「JavaScript」モデルの使用や既存のJSモデルの再訓練が可能になるほか、JavaScriptで直接モデルの構築や訓練ができるようになる。
- 分散データを使用して機械学習(やその他の計算)の実験を行うためのオープンソースフレームワーク「TensorFlow Federated」を搭載する。
- 「TF Privacy」を搭載。これは、訓練データのプライバシーに配慮しつつ、機械学習モデルを訓練するためのライブラリーだ。
- 「eager execution」を備える。この命令型プログラミング環境は、演算を即座に評価するが、具体的な値を返すまでグラフを作成しない。
- 「tf.function」を使用する。これにより、Python構文のサブセットを移植可能な高性能グラフに変換でき、eager executionのパフォーマンスと展開可能性が向上する。
- 高度な実験を実施できるようになる。これを可能にするのが、「Ragged Tensors」(TensorFlowで入れ子構造の可変長リストに相当する機能)、「TensorFlow Probability」(確率モデルとディープラーニングを容易に組み合わせることができるTensorFlowのPythonライブラリー)、「Tensor2Tensor」(ディープラーニングモデルとデータセットのライブラリー)といった新しい拡張機能だ。
- TensorFlow 1.x Pythonコードを自動的に更新して、TensorFlow 2.0互換のAPIで使用できるようにする(またコードを自動で変換できない場合にフラグを設定する)変換ツール。
なぜ重要なのか
機械学習は、未来の技術革新を支えるものだ。ディープラーニングとも呼ばれ、以下のような特徴を持つアルゴリズム群と考えられている。
- 多数の層の非線形処理ユニットを使用して、特徴の抽出と変換を行う。
- データの複数レベルの特徴や表現の学習をベースとする。
- さまざまなレベルの抽象化に対応する複数レベルの表現を学習する。
機械学習によって、ソフトウェアとデバイスはますますスマートになっている。現在は消費者の要求が厳しく、ビッグデータが広く利用されているため、この進化は開発者とその製品の成功に欠かせないものになった。また、TensorFlowのオープンソース化により、Googleが生み出したこの驚異的な先進技術を誰もが利用できるようになっている。TensorFlowは実際のところ、「Apache 2.0」ライセンスで利用可能になった初めての本格的なディープラーニング用フレームワークだ。