人口知能/AIライブラリ紹介vol.1 機械学習の分野で活用される「TensorFlow」
16 January,2019

人口知能/AIライブラリ紹介vol.1 機械学習の分野で活用される「TensorFlow」

 

目次

1.TensorFlow概要とは?
2.TensorFlowの歴史は?
3.TensorFlowの強みとは

 

1.TensorFlow概要とは?

TensorFlow(テンソルフロー)とは、オープンソフトウェアライブラリの一つで、深層学習(ディープラーニング)、機械学習の分野で活用されています。

TensorFlowの公式サイトhttps://www.tensorflow.org/には下記の様に概要が記載されています。

 


TensorFlow™は、データフローグラフを使用して数値計算を行うためのオープンソースソフトウェアライブラリです。
グラフ内のノードは数値演算を表し、グラフのエッジはノード間でやり取りされたデータの多次元配列(テンソル)を表します。
柔軟性の高いアーキテクチャが採用されているため、単一の API を使用して、デスクトップ、サーバーまたはモバイル端末の1つ以上の CPU または GPU に計算機能をデプロイすることができます。
TensorFlowは本来、Google のマシン インテリジェンス研究組織内の Google Brainチームに参加している
研究者やエンジニアが機械学習や高度なニュートラル ネットワークの研究用に開発したものでしたが、
このシステムは汎用性が高く、他の領域にも幅広く適用することができます。


 

上記の説明をもう少し要約すると
●深層学習(ディープラーニング)の学習モデル(プログラム)を計算グラフという形で記述することができる
●柔軟性が高く、モバイルからサーバーまで幅広く活用することができる
●機械学習に必要となる膨大な計算を複数のGPUやマシンで分散・並列処理ができる
●元々はGoogle研究組織内の Google Brain チームが研究用に開発したもの
ということがわかります。

 

TensorFlowのTensor(テンソル)とは線形の量を表す概念で、多次元データ構造(多次元配列)を指します。
TensorFlowのFlow(フロー)はData flow graphs(データ・フロー・グラフ)= データの流れを定義した「グラフ」で処理します。

データフローグラフにおけるグラフとは、ノード(頂点)とノードの間の連結を示すエッジ(枝)から成るデータ構造のことを指します。

つまり、TensorFlowのTensorとは多次元データ構造を流れる様に処理をすることで深層学習が行えるライブラリです。
そのため、TensorFlowを始めるには、前提に機械学習や深層学習といった基礎知識が必要になります。
もっと視覚的に理解したい方は、TensorFlow Playgroundサイト http://playground.tensorflow.org/が仕組みをイメージで分かりやすく説明しています。

 

2.TensorFlowの歴史は?

TensorFlowはGoogle研究組織内の Google Brainチームが機械学習や高度なニュートラルネットワークの研究用に開発したものです。2015年11月9日にGoogle Brainチームによってベータ版が公開されました。

Googleは、当初2011年に「DistBelief」というディープラーニング基盤を開発しましたが、各プロダクトとの結合が強く汎用性が低かったため、公開できませんでした。
そのような問題を解決し、依存性を排除し、汎用性を高め、性能を高めて開発されたのがTensorFlowです。
TensorFlowの性能は、DistBeliefの2倍とされています。
参考:Phttps://www.ossnews.jp/oss_info/TensorFlow
 
現在は、TensorFlowがGoogleの下記サービスで活用されています。
 

  • ・音声認識・自然言語処理(翻訳)
  • ・Google検索エンジン(画像検索やウェブ検索最適化)
  • ・Googleフォト(顔認識/被写体認識)
  • ・Gmail(メール分別)
  • ・Inbox(メール自動返信文作成)
  • ・YouTube(広告事業など)

 
開発のスピードや汎用性の高さからGoogleをはじめ、TwitterやCocaCola、intelなど、多くの企業でマーケティングや製品開発など、多方面で使われています。

 

3.TensorFlowの強みとは

TensorFlowは人間の脳機能を模した計算シミュレーション(ニューラルネットワーク)を容易にすることができる計算ライブラリといえます。
TensorFlowでできるニューラルネットワークや深層学習は、画像認識、音声認識、自然言語処理などの分野の問題に対して、近年においてもっとも優れた解決策を与える手法です。

TensorFlow主な強みをわかりやすく記載すると

1.モデル設計が簡単でコード記述も簡潔に書ける
2.商用フリーのライセンスであるため、機械学習システム導入のコストを抑えられる
3.学習がし易い
4.導入しやすい

が挙げられます。詳しくは下記でご紹介します。

 
1.モデル設計が簡単でコード記述も簡潔に書ける
機械学習の開発にTensorFlowを使うことで得られる最大の強みは抽象化です。一昔前であればアルゴリズムの細部まですべて作る必要がありました。TensorFlowはそんなアルゴリズムの適切な実装方法を理解したりしなくても、開発者が簡単に構築することができます。開発者はバックで動く基幹ロジックをTensorFlowに任せるだけですみます。
 

2.商用フリーのライセンスであるため、機械学習システム導入のコストを抑えられる
64ビットのPython開発環境をサポートしているプラットフォームであれば、どのプラットフォーム上でも TensorFlowを利用することができます。また、オンプレミスではハードルの高い大規模な機械学習環境も、Google Cloud Machine LearningやAmazon Machine Learning、Azure Machine Learning などのクラウド環境を利用することで手軽に構築することが可能です。
 

3.学習がし易い
参考文献や知識の共有が盛んに行われいるため、TensorFlowを利用した機械学習を学ぶための環境が整えられています。スタックオーバーフローサイトhttps://stackoverflow.com/のようなQAサイトでもTensorFlowの質問が盛んに行われています。そのため、問題が発生した時に、解決策の見つけやすいです。

 
4.導入しやすい
全世界で便利なライブラリの開発が盛んに行われており、フリーライセンスのため導入も容易です。有名なサードパーティーライブラリとして高水準のニューラルネットワークを構築できるPythonディープラーニングライブラリKerasやニューラルネットの計算グラフ、パラメータやデータを可視化するTensorBoardなどがあります。

そんなTensorFlowは「被写体の認識(コンピュータービジョン)」、「画像検索」、「リアルタイム翻訳」、「Web検索最適化」、「メール分別」、「自動運転」などの分野での応用が想定されています。

 

次回は、TensorFlowの環境構築方法、チュートリアルなどTensorFlowの実践的な内容をご紹介します。

※当サイトに掲載されている一部画像、スクリ-ンショット、文章に置いては著作権侵害を目的に利用しておらず、第三十二条で定められる引用の範囲で使用しています。万が一問題があればお問い合わせからご連絡ください。即刻削除いたします。
本ブログは業務の研究開発のためのものとなり、一部、弊社に関連性が無いものも掲載しております。

mieru