Cloud OnAir 第14回 ~「機械学習はこうやる!準備と実際のプロセスをお見せします。」~ 速報まとめ

2017年10月5日より、【隔週木曜 18:00~18:45】に、Google社のエンジニアが、Google Cloud Platformの製品、サービスや導入事例等について解説する番組が始まっています。
ユーザー参加型の生放送番組となっており、視聴者からのリアルタイムQ&Aも受け付けています!

この記事では、動画を見逃した方や、見る時間が無い方向けに、要点をかい摘まんで、クイックに紹介したいと思います。
講師は、Google Cloud カスタマーエンジニアの大藪 勇輝さんです。

今回のテーマ: 機械学習はこうやる!準備と実際のプロセスをお見せします。

一口に機械学習と言っても、どうやって進めていくか、機械学習モデルを構築するにはどういう方法・ツールがあるのか、わからないことが多いと思います。
今回の放送では、まず機械学習とは何か、進めるには何が必要か、労力やコスト、ゴールの設定基準が紹介されました。

機械学習モデルとは

まずは、機械学習モデルとはどういったものか紹介されました。
例えば、下記のスライドのような果物を仕分けするとなったとき、どういった方法が考えられますでしょうか。

パッと見て思いつく方法として、色で仕分けすることですが、次のスライドはどうでしょうか。

この場合は色で判断できないため、りんごのヘタの部分や、形で仕分けをする方法が考えられます。
そこに新たにマンゴーを追加してみます。

さらに条件を決めるのが難しくなってきますね。
果物が増えていくにつれ、仕分けするルールが増えていくことがわかります。
今まではこういったルールを増やし、仕分けを自動化するのは困難でした。

しかし、現在は機械学習の技術が進歩し、ディープラーニングといった技術を使って自動化できるようになってきています。

機械学習は、最初の段階では何も考えられない状態ですが、学習データを渡し、何度も失敗させることにより、自律的にルールを作りだし、修正して行くことができます。このプロセスを何度も繰り返すことで、機械学習によってルールを正しく判断できるようになります。
非常に多くのルールを記述しなければいけない場合に機械学習は非常に適しています。

しかし、過信は禁物で、100%の精度を出すことは難しいため、いかにビジネスのワークフローでカバーしていくか考えることも重要になってきます。

機械学習プロジェクトの進め方

機械学習では、機械学習モデルの構築方法が注目されますが、それ以外のステップも重要になってきます。
機械学習プロジェクトを進めていく上で特に重要なのは、以下の3つです。

  • システム要件の定義
  • 機械学習モデルの構築
  • 機械学習モデルの運用

これらのプロセスを正しく行うことで、機械学習を用いて、ユーザーにより良いものが提供できるようになります。

システム要件の定義は5つのプロセス

システム要件の定義では、5つのプロセスを紹介されました。

システム要件を定義する上で、重要なことが1つあります。
それは、機械学習のスペシャリストのみではなく、ビジネスのスペシャリスト、社内調整をする人の存在が重要になることです。

上述したことを念頭におきつつ、5つのプロセスについて説明していきます。

1.機械学習が適用可能な問題を発見する

  • この部分では、ビジネスのスペシャリストが必須です。
  • ビジネスを理解する人が、社内の要件を汲み取り、機械学習を活かせるか、機械学習のスペシャリストに相談をするプロセスです。

2.機械学習以外で解決できないか検討する

  • 本当に機械学習で解決するべきことなのかを判断する部分です。
  • 機械学習は、メンテナンスコストが高いため、他に方法がないかを考えるプロセス。

3.問題解決に適した機械学習ツールやモデルを選ぶ

  • 機械学習のスペシャリストが考える部分です。
  • モデルを考える前に、前述したメンテナンスコストの高さや工数を考慮し、できるだけ簡単な方法で機械学習を行えるかを考える必要があります。
  • とにかく楽をしようとするという気持ちが大事であり、そのためのツールやモデルとして、以下の3つが紹介されました。
    • Machine Learning API
    • Cloud AutoML
    • 機械学習フレームワーク

4.機械学習モデルの構築に必要なデータを確認する

  • アプローチ方法が固まってきたら、機械学習モデルを最適化するのに必要なデータはどういったものか考えます。
  • 機械学習モデルから、どういったデータが必要か、そのデータは社内にあるのかを考えていくことが大事です。
  • 多部署にまたがってデータがある場合、ここでは社内調整をする人が重要になってきます。

5.機械学習モデルのデプロイ条件を決定する

最後のプロセスでは、下記3つを定義する必要があります。

  1. 最適化基準の決定(1つに絞ることが重要)
  2. 満足か基準の決定(1つに絞る必要はない)
  3. デプロイ条件の決定

機械学習モデルの構築

システム定義の要件を終えると、機械学習モデルの構築に移ります。
機械学習モデルの構築とは、End-to-Endのパイプライン(データ収集・ラベル付けから、構築されたモデルの性能評価までのシステム)を作ることです。
ここでは機械学習モデルの構築時に活用することをオススメするサービスが紹介されました。

データ収集とラベル付け

データ収集・ラベル付けでオススメのサービスはClolud Storageです。

データの前処理

一例ですが下記に該当するデータの前処理を実施する場合、GCPサービスのDataflow と Dataprep を活用することがオススメです。

  • データの分割
  • データ加工
  • データの書き出し
  • データ形式の変換

どちらもフルマネージド&オートスケールのサービスですが、

  • Dataflow は非構造化データも扱うことができるが、データ処理内容をプログラム言語を用いて記述する必要がある
  • Dataprep は非構造化データを扱うことができないが、データ処理内容をGUIで簡単に指定できる

などの特徴があります。

機械学習モデルの実装

機械学習モデルの実装では、TensorFlow を活用することをオススメです。
TensorFlow はGCPサービスではありませんが、Googleが開発しGCPとの親和性が高いソフトウェアです。

機械学習モデルの最適化

機械学習モデルの最適化においては、Cloud ML Engin を活用することをオススメします。
Cloud ML Engin を活用することで、機械学習モデルのデプロイが簡単にでき、分散トレーニングにより最適化時間を短縮することが可能です。

機械学習モデルの性能評価

Data Studio を活用し、機械学習のモデルの性能評価パイプラインを構築することで、可視化をすることができます。
次週の e-Learning編では、実際にモデルの性能評価パイプラインを構築して結果をData Studioで可視化する内容が行なわれます。

e-Learning の申し込みは Cloud OnAirの公式HPからできるので、興味がある方は、ぜひご参加ください!
https://cloudplatformonline.com/onair-japan.html

機械学習モデルの運用

機械学習モデルのデプロイ

前項末、「機械学習モデルの性能評価」の結果、デプロイ基準として定めた性能を満たすようになったら、モデルのデプロイに移ります。
モデルのデプロイとは、『API経由でモデルにリクエストを送り、結果を得られる』というような状態を作ること。
このために利用できるツールが2つ用意されている。

  1. Cloud Machine Learning Engine(Cloud ML Engine)
  2. Google Kubernetes Engine(GKE)

オススメは、Cloud ML Engine。

モデルのデプロイに関するオートスケール、バージョン管理といった処理を簡略化することができる。
ただ、「online prediction」というタイプのデプロイにおいては、GPUが利用できないため、そのケースにおいてはGKEに利がある。
また、機械学習モデルが複雑、かつ、オンラインの予測時間にセンシティブな、パフォーマンスが重要なアプリケーションを実装する場合もGKEに利がある。
GKEで構築する場合は、TensorFlow等が実行できるコンテナ環境を自分で構築する必要がある。

機械学習モデルの性能監視

デプロイしたモデルも、運用していくうちに、入力されるデータの性質が当初想定していたものと変わってきてしまうことがある。
たとえば季節の移り変わりの変化に対して、ある季節のデータだけでモデル構築した場合、次の季節に対する予測結果がずれ易くなってくる。
これに対処するには、実際の運用環境におけるデータを随時取り込み、現時点でデプロイされているモデルの性能がどの程度なのか?ということを監視していく必要がある。
これらの情報から、モデルをアップデートするタイミングを図っていく。

モデルのアップデートタイミングの見極めについて


縦軸は、正解率のようなものと考えてよい。
たとえば4月(Apr)の時点では十分に高かった精度が、6月(Jun)ごろにはデプロイ条件を割り込む寸前まで低下。
理想的には、デプロイ条件を割り込む前に余裕を持ってモデル更新基準を設定しておき、早め早めに更新することで、モデルの精度を保つようにする。
こういった継続的な監視には、「機械学習モデルの性能評価」節で紹介した「Cloud Datastudio」が活用できる。

振り返り・まとめ

機械学習モデルの構築についてばかり注目されがちだが、どういったモデルを構築するのか?という要件部分について、機械学習のスペシャリスト、ビジネスのスペシャリストの間でしっかり詰めた上で運用していくことが大事。
方式・ツールの選定については機械学習のスペシャリストの範疇だが、ビジネスKPIを考慮に入れたデプロイ条件の擦り合わせについては、やはり綿密な協議が必要になる。

定義された要件について、どうモデルを構築・効率化していくか?という部分については、GCPの提供するサービスが特に強みを持っている部分。活用して、しっかり効率化しましょう!

最後にひとこと

いかがでしたでしょうか。
今回の放送では、機械学習の構築方法の紹介ではなく、機械学習プロジェクトの成功に必要な以下の3つが紹介されました。

  • システム要件の定義
  • 機械学習モデルの構築
  • 機械学習モデルの運用

これから機械学習プロジェクトを始める方は、その構築方法だけに着目するのではなく、上記プロセスを正しく実行することを念頭に置くことが成功の秘訣となります。

参考リンク

Youtube視聴

Cloud On Airの放送は、今回分含め、バックナンバーも全てYoutubeで視聴できます。
スライドと合わせて進行する解説を、是非ご覧ください!
Youtube URL:https://www.youtube.com/watch?time_continue=3&v=QXoD0NHJ4Xk

SlideShare

今回の動画で説明に使用されたスライドについても、SlideShareでいつでも閲覧可能です。
登場した用語について振り返りたい、用語同士の関係性を確認したい等、大変参考になります!
スライドURL:https://www.slideshare.net/GoogleCloudPlatformJP/cloud-onair-live-2018524

Cloud on Air 速報記事のバックナンバー

過去回はCloud OnAir カテゴリにまとめてありますので、ぜひこちらもチェックしてください!

それでは、次回も06/07(木) 18:00にお会いしましょう。

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます