[レポート]AIM202-L: Leadership Session: Machine Learning #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

本記事は現地時間2018/11/26-30で行われているre:Invent 2018のセッション「Leadership Session: Machine Learning」のレポートとなります。

セッション概要

本セッションの概要は以下の通りです。

セッションタイトル:
 Leadership Session: Machine Learning


登壇者:
Swami Sivasubramanian - VP, AWS Machine Learning, AWS Ratna Saripalli - Director of Data Science, GE Healthcare

セッション概要:
Amazon has a long history in AI, from personalization and recommendation engines to robotics in fulfillment centers. Amazon Go, Amazon Alexa, and Amazon Prime Air are also examples. In this session, learn more about the latest machine learning services from AWS, and hear from customers who are partnering with AWS for innovative AI.
(Amazonはパーソナライゼーションとリコメンデーションエンジンからフルフィルメントセンターのロボティクスまで、AIで長い歴史を持っています。 Amazon Go、Amazon Alexa、Amazon Prime Airも例です。 このセッションでは、AWSの最新の機械学習サービスについて学び、革新的なAIのためにAWSと提携しているお客様の意見を聞きます。)

セッションレポート

機械学習のための3つの挑戦

本セッションでは2018/11/28のキーノートで発表されたSageMakerの新機能がどういたものかを解説するとともに、なぜそれが必要だったか、その挑戦について語られています。

実現したいこととしては、

  • 柔軟性とコストへの挑戦
  • データに対する挑戦
  • 使いやすさへの挑戦

となっています。

柔軟性とコストへの挑戦

まずは、この点においての挑戦としてSageMakerで利用可能なフレームワークとそれに対する改善について話されています。

AWSでは複数のフレームワークを使うことが可能です。

Tensorflowを使った機械学習はAWS上で多く動かされていますが、新たに登場したAWS-Optimazed Tensorflowを利用することで、256GPUの環境におけるスケール効率が60%からなんと90%まで向上しています。 さらに処理速度も大幅に向上しています。

また、機械学習で多くの処理が複雑に連携します。

  • 検索機能による利便性の向上
  • バージョン管理によるコードの共有、権限による制御
  • 定期的な処理の自動化

といった要素があり、AWS上ではそれぞれに応じた機能が提供されています。

データに対する挑戦

データ分析というくらいなので、データの存在は何よりも大切です。 近年はビッグデータの活用も進み、大量のデータが集まるようになっています。一方で機械学習における"教師あり学習"を行おうと思ったときに何を正解データとするかというのは非常に重要な要素となります。

機械学習を行う際には大きく分けて、教師あり学習と教師なし学習に分けられます。

教師あり学習は、正解となるラベルが存在してデータからその値をうまく予測することを目的とするシステムとなります。 教師あり学習では、正解となるラベルが存在するので、何が結果がどうなるかを制御しやすいという特徴があります。

一方教師なし学習は正解となるラベルが存在しないデータに対して行う機械学習です。 教師なし学習はデータの傾向からデータをいくつかのクラスタに分けるなどの方法となります。 そのため、どのようにデータが分けられるかはあらかじめ人間が制御することはできませんし、分けられた結果から何が基準になっているのかは人間が判断する必要があります。

それら2つのどちらにも属さないような機械学習のアルゴリズムも存在します。 その中の一つとして強化学習というものがあります。 強化学習とはどういうものかというと、

  1. 最初はコンピュータがランダムなど適当に行動する
  2. 行動の結果によって報酬または罰則が与えられる
  3. コンピュータは報酬を最大化するために行動を修正していく

という処理になります。 先ほどの図中では、右上が教師あり学習で左下が教師なし学習となり、左上にあるのが今回SageMakerの新機能とした発表されたRL(Reinforcemanet Learning; 強化学習)となります。

セッションの中では、人間のようなものが最初は立つことすらできない状態から、最終的に走るところまでたどり着くような物理法則を学習するデモをしていました。

SageMaker RLを利用する際のアーキテクチャは以下のようになっています。

SageMaker RLではまず従来通り学習ジョブを実行すると初期モデルをRL Agentが受け取ります。 その後目標とする動作に対して行動を行い、その結果報酬を得て、データに結果を反映、モデルをアップデートするという流れになっています。

この処理を繰り返していくことで、獲得する報酬を最大化するように学習が進んでいきます。 最終的にモデルの検証を行います。

強化学習の使いどころとして様々なものが挙げられていました。

いくつかかいつまんであげると

  • ロボティクス
  • 産業での制御
  • 自動運転
  • ファイナンス

などがあがっています。

SageMakerで利用可能な強化学習のアルゴリズムは最新のものがそろっています。

GE Healthcareの事例

強化学習の事例としてGE Healthcareの活用について、Ratna Saripalli氏の発表となります。

こちらの事例では、まずレントゲン画像から疾患を判定するような機械学習システムがすでに動いている状態となります。

これに対して制度を下げずにディープラーニングのセットワークを圧縮する方法をSageMaker RLを使って実現したとのことです。

現在のネットワークを状態として、レイヤの削除を行うか否かの処理を行い、その結果の正解率とネットワークがどれだけ圧縮できたかの率を合わせたものを報酬としているようです。

使いやすさへの挑戦

最後の挑戦は機械学習システムをより使いやすくすることへの挑戦です。

機械学習のモデルと精度と推論時の処理速度、解釈性などにはトレードオフの関係があったりします。

モデルのチューニングは簡単ではありません。

  • デプロイ先としてクラウドネイティブな環境か、組込みシステムか
  • 機械学習のモデル学習やハイパーパラーメータチューニング
  • トラブルシューティングや最適化を行う
  • どのフレームワーク・ライブラリを利用するか
  • ハードウェアの構成は?
  • コンピュータのアーキテクチャは?

などなど、考え出すと無限に時間がかかります。

機械学習のデプロイには複雑な仕組みが必要となります。

ここではエッジデバイスへデプロイする例として、

  • 自前で用意したアルゴリズム
  • SageMakerで利用可能なアルゴリズム

を統合しのち、

  • デバイス上でパフォーマンを発揮するために最適化
  • デバイスへのデプロイ
  • A/Bテスト

という流れになっています。

デバイスでパフォーマンスを最適化するためのは様々なフレームワークとデバイスのアーキテクチャの組み合わせとなり、すべてをいい感じにするのは難しい作業です。

新サービスとして発表されたSageMaker Neoでは、この最適化の部分を自動化してくれます。

  1. 最初にモデルをパースして共通フォーマットに置き換える
  2. Deep Learningのネットワーク構造を最適化する
  3. 入力データの形を検出して効率的にメモリを割り当てる
  4. 各デバイスに特化したコンパイル済みコードを得る

という流れになっています。 これによって利用者はこのあたりの各エッジデバイスに特化した最適なコードの記述から解放されるわけです。

先ほどの組み合わせの間にSageMaker Neoが入るような感じになります。

Textractの紹介

3つの挑戦に対してのSageMakerの機能とは話題が変わりますが、最後にこちらも発表された新サービスであるTextractでどのようなことが実現可能なのかの紹介がありました。

このサービスはOCRによって紙から文字列を読み込んだ先の"ドキュメントを理解するとは?"という話から始まります。

  • レベル1はQRコードのような構造化されたもの
  • レベル2は文字を読み取るOCR
  • レベル3はフォームの構造を読み取る
  • レベル4は自動でドキュメントをハンドリングする
  • レベル5は人手を一切与えない(確認も不要)

となります。 この中でTextractで実現できることはレベル4となります。

これらのように人間の目で見ればわかりやすいけど、コンピュータにとってテーブルの切れ目がなかったり、行によって幅が違ったりするものに対しても対応して、テーブルの構造をそのままJSONで取得する、というのがTextractで実現できることのようです。

おわりに

今回は「Leadership Session: Machine Learning」のセッションレポートを書かせていただきました。

機械学習・AI系のサービスは今回のre:Invent2018の中でも多くの新機能が発表された熱い分野の一つでした。 ここでされている以外にも新規の目白押しですので、ぜひ皆さんチェックしてみてください。