第1回 TensorFlowとは? 入門連載始動! データフローグラフ、事例、学び方:TensorFlow入門(3/3 ページ)
TensorFlowの概要と適用範囲を説明。最重要な基本概念であるデータフローグラフについて解説する。また、深層学習との関係や、事例、学び方についても紹介する。
TensorFlowの事例
機械学習を用いたシステムの特徴
ビッグデータブーム、人工知能ブームの流れから、機械学習を現実のプロダクトに投入しよう(すなわち人工知能を構築しよう)という流れが加速している。ここで簡単に、機械学習を取り入れない従来のシステムと機械学習を取り入れたシステムとの違いについて説明しておこう。
従来のシステムと機械学習を取り入れたシステムの違いを簡単に言ってしまえば、「従来のシステムでは入力に対する出力の正当性が保証できるが、機械学習を取り入れたシステムでは入力に対する出力の正当性は保証できない」ということだ。例として架空の人事システムを考えてみよう。
このシステムで給与が500万円以上の社員すべてを抽出せよという操作を行えば、その通り給与が500万円以上の社員一覧を得ることができる。ところが、今年度末に行われる人事査定で給与が500万円以上となる社員をすべて予測せよという操作は、問い合わせ時のデータベースにはその情報が含まれていないため、従来のシステムでは操作を行うことができない。一方、機械学習を取り入れたシステムにおいては、過去の人事査定の履歴を学習してモデルを作り、そのモデルに従って給与が500万円以上になるであろう社員を予測して抽出できるようになる。しかしあくまでこれは予測であり、この結果が本当に正しいかどうかは人事査定のふたを開けてみなければ分からない。
このように機械学習のシステムは、正当性が保証できない結果を出力するが、それが役に立たないものであるかといえばそういうわけではない。機械学習のシステムの結果を用いて、それを参考にして意思決定を行ったり、あるいはそのものを意思決定にしたりするということができるようになるのである。
日本におけるTensorFlowの事例
TensorFlowも機械学習のライブラリとして活用され、Google Cloud Platform Japan Blogで日本の事例がいくつか紹介されている。以下に2つ事例を挙げる。
GMOアドマーケティング社では広告配信ログを学習データとして、TensorFlowを用いて広告主に適合したユーザーを見つけるモデルを構築している。TensorFlowのマネージドサービスであるCloud Machine Learningの利用も視野に入れている。キユーピー社では工場におけるジャガイモの不良品識別のための異常検知モデルをTensorFlowを用いて構築し、工場に持ち込んでの実証実験を行った。実証実験では精度よく不良品を判別でき、今後はさらなる完成度の向上や別の材料への拡張を検討している。
TensorFlowの学び方
TensorFlowはまだ歴史の長いプロダクトではないが、すでに多くのユーザーがおり、Web上では「使ってみた」系の記事から専門誌の論文まで、多くの利用例が見つかる。TensorFlowを学ぶに当たり、これら先人の知恵を借りない手はないだろう。また、ドキュメント類もしっかりと整備されており、公式ドキュメントを読むだけでも十分に理解を深めることができる。
Web
本連載は「エンジニア向けに、とりあえず使ってみる」というところをゴールに設定しているため、多くの重要な説明を省略している。本連載を読了したら、まずは公式サイトのドキュメントを眺めてみるとよいだろう。最低限でも以下の3つには目を通そう。
もし不明な点があれば、StackOverflowのTensorFlowタグ(日本語版StackOverflow)で質問してみるとよいだろう。
グーグルはMachine Learning Crash Course(MLCC)という機械学習のコースを公開している。MLCCはTensorFlowを用いて機械学習全般について解説を加えている。TensorFlowの学習に加えて、機械学習について基礎から学びたい場合はMLCCを利用するとよいだろう。
恐らく読者の中には、「機械学習を突き詰めて現実的で精度の高いモデルを作成していきたい人」と「TensorFlowの仕組みを理解してより高度な操作を行いたいと思う人」の2通りがいることだろう。それぞれに推奨する学び方は以下の通り。
まず前者のような読者は、最新の論文を当たるとよい。機械学習分野で論文を調査したい場合のオススメがarXivだ。arXivは計算機科学や統計学を含む自然科学の分野におけるプレプリント・サーバー(レビュー状態、すなわち論文誌で出版される前の論文を保存するサーバー)である。機械学習の分野は日進月歩で1年前に公開された論文が古い論文として扱われることもあるという。このようなスピード感の中で、正式に出版された論文を探索するよりも、arXivのようなプレプリント・サーバーを調査した方が優れた成果を得ることができる場合がある。ただしarXivはプレプリント・サーバーという性質上、玉石混交であることは注意しておく必要がある。
後者のような読者は、まず公式サイトのExtendを読もう。ここにはTensorFlowのアーキテクチャをはじめとして、TensorFlowを拡張していくための方法が記載されている。また、TensorFlow Discuss(Googleグループ)では、TensorFlowの開発指針などについて議論されている。さらに、TensorFlowがオープンソースであることの魅力として、ソースコードを利用できることにある。GitHubのリポジトリーをのぞくことは、TensorFlowの仕組みを知る上での最高の教材となる。
書籍
すでにTensorFlowに関する書籍は数多く出版されている。ここでは最近出版された2冊を取り上げる。
- 『TensorFlow活用ガイド』(技術評論社): TFUGの発起人らが執筆しており、TensorFlowの基礎、画像処理、自然言語処理、音楽生成、Androidとの連携について幅広く記載されている。
- 『TensorFlowではじめるDeepLearning実装入門』(インプレスブックス): TensorFlow勉強会(のちにTFUGと合流)の発起人が執筆しており、ニューラルネットワークの基礎、自然言語処理、画像キャプション生成について記載されている。
ユーザーグループ
TensorFlowには世界中にユーザーコミュニティが存在する。公式サイトで紹介されている日本のユーザーコミュニティを以下に挙げる。
- TensorFlow User Group Tokyo: 日本における最大のTensorFlowコミュニティであるTensorFlow User Group(TFUG)であり、イベントでの発表資料も積極的に公開されている。
- SOLEIL DATA DOJO: TensorFlowのみではなくデータ分析全般に関わるコミュニティであるが、TensorFlowについても積極的に研究会が開催されている。
- TensorFlow User Group Utsunomiya: TFUGで特に宇都宮を中心としたユーザーコミュニティ。
上記以外にも、会津を中心としたTensorFlow UserGroup Aizuというコミュニティも存在するようだ。読者の地域にもユーザーグループが存在しているかもしれないので、興味があれば探してみるのもよいだろう。
さて次回からは、実際にTensorFlowを使っていく。まずは環境構築方法について紹介する。
【TL;DR】TensorFlowと深層学習の基礎
- TensorFlow: 機械学習用のオープンソースの数値計算ライブラリ。深層学習のみではなく、より広い範囲で利用できる
- データフローグラフ: データの流れを示したグラフ。TensorFlowが数値計算処理に利用している
- グラフ: ノード(値定義と計算処理)とエッジ(データと処理の流れ)から成るデータ構造のこと
- テンソル: 数学用語。多次元配列とよく似ており、複数の要素(通常は数値)を直列状/行列状、その多次元拡張に並べたもの
- データフローグラフのメリット: 並列性、分散実行、コンパイル、移植性
- ニューラルネットワーク: 脳の情報伝達の仕組みを参考にした人工ニューロンを組み合わせて構築したネットワークのモデル
- ディープニューラルネットワーク: 隠れ層(=入力層と出力層の間にある中間層)が2層以上ある、層を深くしたネットワークのモデル
- 深層学習: 機械学習の一分野で、ディープニューラルネットワークを用いたの枠組み
- 従来のシステムとの違い: 「機械学習を取り入れたシステムでは入力に対する出力の正当性は保証できない」が、それを参考に意思決定したりできる
- TensorFlowの学び方: Web/書籍/ユーザーコミュニティなど情報源は多数ある。本連載読了後、特にWebにある公式サイトのドキュメントは必読
Copyright© Digital Advantage Corp. All Rights Reserved.