ビッグデータブーム、人工知能ブームの流れから、機械学習を現実のプロダクトに投入しよう(すなわち人工知能を構築しよう)という流れが加速している。ここで簡単に、機械学習を取り入れない従来のシステムと機械学習を取り入れたシステムとの違いについて説明しておこう。
従来のシステムと機械学習を取り入れたシステムの違いを簡単に言ってしまえば、「従来のシステムでは入力に対する出力の正当性が保証できるが、機械学習を取り入れたシステムでは入力に対する出力の正当性は保証できない」ということだ。例として架空の人事システムを考えてみよう。
このシステムで給与が500万円以上の社員すべてを抽出せよという操作を行えば、その通り給与が500万円以上の社員一覧を得ることができる。ところが、今年度末に行われる人事査定で給与が500万円以上となる社員をすべて予測せよという操作は、問い合わせ時のデータベースにはその情報が含まれていないため、従来のシステムでは操作を行うことができない。一方、機械学習を取り入れたシステムにおいては、過去の人事査定の履歴を学習してモデルを作り、そのモデルに従って給与が500万円以上になるであろう社員を予測して抽出できるようになる。しかしあくまでこれは予測であり、この結果が本当に正しいかどうかは人事査定のふたを開けてみなければ分からない。
このように機械学習のシステムは、正当性が保証できない結果を出力するが、それが役に立たないものであるかといえばそういうわけではない。機械学習のシステムの結果を用いて、それを参考にして意思決定を行ったり、あるいはそのものを意思決定にしたりするということができるようになるのである。
TensorFlowも機械学習のライブラリとして活用され、Google Cloud Platform Japan Blogで日本の事例がいくつか紹介されている。以下に2つ事例を挙げる。
GMOアドマーケティング社では広告配信ログを学習データとして、TensorFlowを用いて広告主に適合したユーザーを見つけるモデルを構築している。TensorFlowのマネージドサービスであるCloud Machine Learningの利用も視野に入れている。キユーピー社では工場におけるジャガイモの不良品識別のための異常検知モデルをTensorFlowを用いて構築し、工場に持ち込んでの実証実験を行った。実証実験では精度よく不良品を判別でき、今後はさらなる完成度の向上や別の材料への拡張を検討している。
TensorFlowはまだ歴史の長いプロダクトではないが、すでに多くのユーザーがおり、Web上では「使ってみた」系の記事から専門誌の論文まで、多くの利用例が見つかる。TensorFlowを学ぶに当たり、これら先人の知恵を借りない手はないだろう。また、ドキュメント類もしっかりと整備されており、公式ドキュメントを読むだけでも十分に理解を深めることができる。
本連載は「エンジニア向けに、とりあえず使ってみる」というところをゴールに設定しているため、多くの重要な説明を省略している。本連載を読了したら、まずは公式サイトのドキュメントを眺めてみるとよいだろう。最低限でも以下の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には世界中にユーザーコミュニティが存在する。公式サイトで紹介されている日本のユーザーコミュニティを以下に挙げる。
上記以外にも、会津を中心としたTensorFlow UserGroup Aizuというコミュニティも存在するようだ。読者の地域にもユーザーグループが存在しているかもしれないので、興味があれば探してみるのもよいだろう。
さて次回からは、実際にTensorFlowを使っていく。まずは環境構築方法について紹介する。
Copyright© Digital Advantage Corp. All Rights Reserved.