TENSORFLOW(テンソルフロー)の使い方とできることとは?

freelance

こんにちは!

ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズの木村です。

弊社では、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っています。
こちらでは、日々の現場でサポートさせていただいている中での、プロの目線で、エンジニアに役立つお話をしてまいります。

皆さんは「TENSORFLOW(テンソルフロー)」という機械学習ソフトウェアライブラリをご存じでしょうか?

身近なものですと、ECサイトなどの購入履歴を参照しおすすめ商品を表示や、スマートフォンのカメラに付いている顔検出機能も機械学習によって行われています。

今回は、機械学習ライブラリのなかでも注目されている「TENSORFLOW」について紹介します!

なお、フリーランスエンジニア全般の案件の特徴や仕事の取り方など総合的な情報は「フリーランスエンジニアの案件紹介!経験年数別の年収・実態を調査」でご紹介しているので、併せてご覧ください。

また、TENSORFLOWを活用してフリーランスになりたい方は「フリーランスエンジニアになるには?」の記事も参考になると思います。

TENSORFLOWとは?特徴と課題を紹介!

Fotolia_101960875_Subscription_Monthly_M-min

TENSORFLOWの概要

2011年にGoogleは「DistBelief」というディープラーニングインフラを開発しました。

これは「Google検索アプリ」「Googleフォト」など、音声認識とイメージ検索のサービス性能を大きく向上させただけではなく、検索エンジンやGmailなど、Googleのほとんどのサービスを支えるコア技術となりました。

しかし、社内のインフラに深く依存していたため外部へ公開することが難しくできませんでした。

そこで、その問題を解決し汎用性を高くして開発されたのが「TENSORFLOW」になります。

性能は「DistBelief」の2倍とされており、第2世代の位置づけとなっています。

TENSORFLOWの特徴

TENSORFLOWの最大の特徴ともいえるのが、「ニューラルネットワークの構築」を行うことができます。

このニューラルネットワークを使用することにより、機械が人間と同じような論理的思考、学習を行うことができます。

他にも「データの読み込み、前処理、計算、状態、出力」といった処理に対し全てテンソルが扱われています。

もともとはディープラーニングだけではなく、テンソル計算を行うためのライブラリとしても考えられていたため、基本的な計算処理の記述も可能のディープラーニングのフレームワークと考えると、最も優秀なライブラリといえます。

また、計算処理を計算グラフとして一度構築してからまとめて計算処理をする「Define and Run」があります。

TENSORFLOWは、どんなに簡単な計算でも基本的に全ての計算処理を計算グラフによって記述していきます。

そのため、扱うのに多少の慣れが必要です。

他にも、TENSORFLOWはiOSやAndroidといったどんな環境でも動作するように分散学習が行えます。

分散処理が行えることにより、ビッグデータといった大量のデータもTENSORFLOWは扱うことが可能です。

もちろん、高速で計算を行うための追加ライブラリも豊富に存在しています。

TENSORFLOWのラッパーなど、ユーザー数の多さから今後もさまざまな機能が拡張されていくことでしょう。

TENSORFLOWの課題

非常に優秀ともいえるTENSORFLOWですが、課題点がいくつかあります。

まず、とても性能が高いためにTENSORFLOWを使用するハードウェアにもそれ相応の性能の高さが求められます。

また、データ計算を分散学習できるのはメリットともいえますが、それを行うための環境を用意するのは少しハードルが高いといえます。

他にも、TENSORFLOWについて書かれているサイトやブログなど現時点では少なく、一から独学で習得するのは難しいでしょう。

TENSORFLOWを使える環境って?

shutterstock_527157238

TENSORFLOWに対応しているOSは、64bitの「Windows」「MacOS」「Ubuntu/Linux」です。

また、モバイル機器向けにも提供されており「TENSORFLOW for Mobile」「TENSORFLOW Lite」の二種類があり、Android、iOS、Raspberry Piといったモバイル機器でも利用することができます。

ここで注意したいのが、TENSORFLOWを本格的に使用する場合は、並列処理で大量の演算を高速に行えるGPUの性能が高いパソコンを必ず用意するようにしましょう。

GPUの性能が高ければ高いほど、TENSORFLOWの学習スピードを高速化することができます。

また、TENSORFLOWで使用可能なプログラミング言語は「Python」「C言語」「C++」となっています。

TENSORFLOWを使ってできることって?

shutterstock_437615350

①画像認識

TENSORFLOWでは画像に載っている情報を解析することが可能です。

この画像認識ですが、これには大きな可能性を秘めている技術で、例えば1枚の動物の画像を機械が認識して文章にする機能をGoogleは開発しています。

これは、将来的には視覚障害者の方に役に立つのでは?と大きく期待されています。

もっと身近なものですと、画像認識によってぶつかりそうになると自動でブレーキがかかる「自動ブレーキシステム」にも利用されています。

他にも、スピードの制御やハンドル操作なども画像認識が利用されています。

ネットショップなどでは、ブランドバックの偽物画像を学習させておくことにより、同様の画像が見つかった際に検知して教えてくれるシステムも可能となりました。

また監視カメラからの画像を元に顔を認識し、顔の画像が登録されたデータベースと比較し識別を行うことで、どういった人物がいつ来店したかの情報を、人を使わず取得することができます。

また、この画像認識の精度の高さでよく話題に上る話しが、「キュウリの仕分け」についてです。

これは、元エンジニアの方がディープラーニングを利用しキュウリの等級鑑定を行うことができないかと考え、実際に試してみました。

その結果、本来ならばベテランの鑑定眼が必要なキュウリの等級も約8割の正確さで実現することができたのです。

この画期的なアイデアに、Googleの公式ブログでも取り上げられ「Maker Faire Tokyo 2016」で展示されました。

参考:Google Cloud Platform Japan Blog

https://cloudplatform-jp.googleblog.com/2016/08/tensorflow_5.html

②画像検索

Googleといえば画像検索と答える人も少なくはないはず、何気なく利用している人も多いこの画像検索にもTENSORFLOWが活躍しています。

元となる画像を学習させておくことにより、これまで学んできた特徴と照らし合わせ、適切な画像の検索が可能。

現在この識別性能は1年で倍以上になる早さで進化しているといわれています。

世界トップクラスの識別性能を持つGoogleだからこそ、近い将来人間とほぼ変わらない性能にまで進化している可能性があるといえます。

③音声認識

「OK、Google」のワンフレーズでお馴染み、音声認識も今では当たり前になってきている機能の一つですね。

現在でも音声の認識率は高く、大半の最新機器は音声で操作することも可能になり、この音声認識もGoogleはトップクラスの性能を持っています。

Googleの研究チームでは、近い将来ニューラルネットワークを利用せずに、チップだけで音声認識ができないかと考えています。

しかも、それを使い捨てレベルの安値なチップで行おうと考えているから驚きです。

④言語翻訳

言語翻訳の環境にも、TENSORFLOWは大きな影響を与えました。

例えば今までの音声翻訳といえば、それがGoogle翻訳だとしても精度が高いと言えるものではありませんでした。

しかし、ニューラルネットワークを利用することによりテキストはもちろん、音声翻訳にも非常に精度の高い結果を出すことが可能になったのです。

この結果に世界中は驚き、Googleに置いてかれないようニューラルネットワークを利用した翻訳サービスを企業が次々と提供するようになりました。

また、人間の通訳や翻訳に比べ圧倒的な低コストで行え、24時間365日休みなしで働いてくれるため、最近ではAIを利用し英会話を学ぶ学校も出てきているようです。

⑤アート作成

次に、アートの世界でもTENSORFLOWは非常に面白い可能性を見せてくれています。

例えば、写真と画像のデータを学習させてその2つを重ねたアートを作成したり、1枚の絵画を読み込ませそれの外枠を描くなど、アートを生むのではなく学習させることで、「その先を」予測することができるAIならではの作品だと思います。

日本では、ソフトバンク社が5万枚の画像を学習させ線画からお父さんぽい写真を生成する「おとうさんAIスケッチ」なども公開されています。

まとめ

shutterstock_646218664

いかがでしたでしょうか?

もちろん、まだまだ解決していかなければならない課題も多いですが、今後はさらにAIテクノロジーが進化し実現できることが増えていくと思われます。

現状でも、映像や音声はAIを使って生成できる可能性が高いといわれており、AIを利用したビジネスはますます白熱していくことでしょう。

今後、どのように実用化され活躍していくのか注目していきたいと思います。

フリーランスの方でこのようなお悩みありませんか?
  • 高額案件を定期的に紹介してもらいたい
  • 週2日、リモートワークなど自由な働き方をしてみたい
  • 面倒な契約周りはまかせて仕事に集中したい

そのような方はぜひ、ITプロパートナーズをご利用ください!

フリーランスの方に代わって高額案件を獲得
週2日、リモートなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート

まずは会員登録をして案件をチェック!

この記事を書いた人
ITプロパートナーズ編集部
ITプロパートナーズはITフリーランスの方に案件紹介をしているエージェントです。当メディア「アトオシ」では、フリーランスの働き方から仕事探しまで幅広い情報を日々発信しています。