連載
» 2018年08月21日 05時00分 公開

Google Cloud Next ‘18発表まとめ(4):Cloud ML Engineに「scikit-learn」と「XGBoost」が追加、AutoMLは自然言語と翻訳に対応

Google Cloud Next ’18における発表を技術的に解説する本連載。今回は機械学習/AIに関連して、Cloud ML Engineへの「scikit-learn」と「XGBoost」の追加、およびCloud AutoMLのNatural Language Translation対応について解説する。

[神谷乗治,吉積情報株式会社]

 Google Cloud Next ’18における発表を技術的に解説する本連載。今回は機械学習/AIに関連して、Cloud ML Engineへの「scikit-learn」と「XGBoost」の追加、およびCloud AutoMLのNatural Language Translation対応について解説する。

Cloud ML Engineとは

 Cloud ML Engineは、機械学習モデルの開発やデプロイに関するフルマネージドのインフラを提供する。CPU、GPU、TPUが使え、分散的に学習やテストが実行できる。HyperTuneによってディープラーニングのパラメータチューニングや調整テストを自動化し、高品質で優れた結果を素早く得ることを目指している。

 機械学習ライブラリとしてオープンソースのTensorFlow SDKを使用し、クラウド上で大規模に学習し構築したモデルを、ローカルで実行したりモバイルに統合したりできる。クラウド上でscikit-learnのパイプラインやtf.transformを使用し、モデルの前処理を実行できるため、ローカルでの演算処理を軽減できる。Apache Beamのプログラミングモデルでデータパイプラインを構築するCloud Datafowや、さまざまな保存様式に対応するCloud Storageとの連携も容易である。

「scikit-learn」と「XGBoost」が新たに追加

 TensorFlowに特化していたML Engineだが、今回新たにscikit-learnとXGBoostが追加された。scikit-learnはクラスタリングや分類・回帰、前処理、パラメータチューニングのためのあらゆる機能を持つライブラリである。特徴量選択や特徴量エンジニアリングでも良く使われる。XGBoostは、「eXtreme Gradient Boosting」の略で、勾配ブースティングモデルを並列に行うライブラリであり、分散型環境でも実行できる。

参考リンク:Pythonの機械学習ライブラリ「scikit-learn」で実践する「教師あり学習」「教師なし学習」

 scikit-learnは一貫したインターフェースを持っており、fit関数で学習を行い、predict関数で予測を行うことができる。scikit-learnとXGBoostは同じインターフェースなので、シームレスに切り替えることができる。

 今回の発表によって、ML Engineは以下の機械学習ライブラリをそろえた。

  • scikit-learn: 幅広くシンプルなクラシカル機械学習
  • XGBoost: 簡単に使え、正確な高機能勾配ブースティングモデル
  • Keras: ディープラーニングの簡単かつ迅速なプロトタイピング
  • TensorFlow: 最先端のディープラーニングのパワーを活用

多様なビジネス要件に対応する機械学習インフラとしてのML Engine

 今回追加されたXGBoostが採用する勾配ブースティングモデルでは、複数の弱学習機(決定木)を多数組み合わせてより強力なモデルを構築するアンサンブル手法を取っている。精度、説明性、特徴量調整のしやすさをバランスよく備えている点で人気のモデルとなっており、Kaggleなどのデータ分析コンペではよく使われている。

 オンライン小売業、ocadoにおける注文詐欺検出の事例では、買い物カゴの内容や顧客の過去の行動、支払い方法などを特徴量にして予測を行った。「詐欺だとするには法的根拠が必要になるので、scikit-learnの決定木、ランダムフォレスト、XGBoostの勾配ブースティングモデルなどのように説明性がある(特徴量の重要度が数値として計測できる)モデルを使う必要があった」という。

Cloud AutoMLがNatural Language、Translationに対応

 Cloud AutoMLに「AutoML Natural Language(自然言語)」と「AutoML Translation(翻訳)」が追加された。現行の「Cloud AutoML Vision(画像)」と合わせて3つがβ版となっている。

そもそもAutoMLとは何か

 AutoMLを一言で表現するなら、「機械学習やコーディングの専門知識を必要とせずに、特定のニーズに合わせて拡張できる強力なMLモデルを作成し、使いやすい形で利用可能とするプラットフォーム」である。

 通常、機械学習や深層学習では、データの前処理、MLモデルのデザイン、MLモデルのパラメータチューニング、モデルの評価・デプロイ・更新といったフローがある。これらの処理は複雑で時間がかかる。大規模なコンピュータリソースを必要とするし、機械学習の専門性が要求される。また、教師あり学習のラベル付けは手動で行う必要がある。AutoMLはこれらの作業を自動化する。

 データセットをAutoMLに掛けた後、Auto ML内部でトレーニングを行い、モデルをクラウドにデプロイする。モデルの予測用の関数はREST APIの形に変換されるため、専用のサーバを立てる必要はない。Auto MLは一般的なデータサイエンティストや開発者でも高品質なカスタムモデルを簡単に作ることができる。

あらためて、AutoML Visionとは

 AutoML Visionでは、データセットの画像とそのラベル付けを画面上から行える。トレーニング後には、Precision(適合率)やRecall(再現率)、PRカーブといったグラフの表示や、スコアの閾値調整をビジュアルツールから実行できる。この機能によって、ビジネスのユースケースに合わせて理想的なトレードオフを決定できる。

 モデルによって予測されたラベルと実際のラベルとの混同行列も表示可能で、どの画像が間違って振り分けられてしまったかを瞬時に見ることができる。これらの機能によって、「モデルを改善するためにどのラベルの画像を追加すればいいか」などの洞察を得ることができる。

 モデルが確定した後、テスト用の画像をアップロードし分類結果を確認できる。デフォルトでは、トレーニング用に80%、検証用に10%、テスト用に10%の画像を使用する。分割比率は手動で設定することもできる。

AutoML Visionの活用事例

 海外ではAutoMLの活用が進んでいるようだ。例えば住宅価格の最適化を家の外装や内装(家具、キッチン、バスルーム等)のパーツ写真を用いて行う例がある。構造化データではなく、コンピュータビジョンを使っているところが面白い。ファッション予測では、人々が次に着るものを予測する。また、現在のトレンドを把握するために、売れている商品の画像をカテゴライズする。

新発表のAutoML Translateとは

 Googleは機械翻訳の分野で実績のあるTranslate APIを持っている。AutoML Translateは、高品質のデータがある場合、Translate APIよりも有効だという。入力データには、ある文章と翻訳された文章のペアを用意する。

 Google Cloudでは、幾つかの言語(ドイツ語、フランス語、ロシア語、スペイン語、韓国語、中国語)で翻訳技術における競合技術の性能比較実験結果を紹介している。

 PE(Post-Edit) Distance(*1)を最小化する実験(*2)、文章の理解のしやすさを人間が評価する実験(*3)のいずれにおいても、Google AutoMLが全ての言語で最も優れた性能を発揮したという。

*1 編集後距離。1つのテキストを別のテキストに変更するために必要な変更の量(文字数)。数字が小さいほど翻訳機の生産性が向上し市場投入までの時間が短縮される。また数字が小さいほど翻訳割引率が高くなる(コスト削減)

*2 Generic NMT1、Google AutoML Translation、Google Cloud Translation、Generic NMT2、Custom SMTで比較

*3 Generic NMT1、Google Cloud Translation、Google Cloud AutoML Translation、Generic NMT2、Custom NMT、Custom SMTで比較

こちらも新たに登場、AutoML Natural Language

 AutoML Natural Languageは、限定された機械学習専門知識を持つ開発者でも、高品質のカスタムモデルを訓練して、構造化されていないテキストから洞察を得られるようにするサービス。構築が容易なカスタムモデルを通じてテキストの構造と意味を明らかにする。例えば、テキスト文書、ニュース記事、ブログ投稿などの非構造化自然言語から人、場所、イベントなどに関する情報を抽出することができる。

 例えば、次のような用途に使える。

スタックオーバーフローのタグを予測

 プログラムコードと質問内容から、例えば「JavaScript」のタグを付けるべきであることを予測する

ニュースヘッドラインの出所を予測

 ニュースの見出しからこれがどこの出版社や新聞社から出されたものか予測する

患者の症例に関連する状態を予測

 医者のカルテから患者の症状(例:インフルエンザ)を予測する

 事例として、企業のアンケート調査をより対話的にし、エンゲージメントを高めることに使う例が紹介された。飛行機に乗った後の顧客に対するアンケート結果を、Auto MLで以下のようにラベル付けする。

  • あなたたちは私のバッグを壊した→荷物
  • 飛行機が乱雑である→清潔さ
  • トイレが汚い→清潔さ
  • 床がベタベタしていた→清潔さ
  • ちょうど良いですが、もっと良くできたかもしれません→フォローアップ

 この分類結果を基にして、顧客の回答に呼応する形で、より詳細な質問をタイムリーに投げ返すことに成功していた。Q&A形式のチャットボットツールで対話の精度を上げるのにも使えそうだ。

 インテリジェントな調査をするために良い質問を作成する、そしてそれらの調査からのフィードバックを統合する。調査結果を分析し、フィードバックループを進行させる。それは好循環を作り出す。データ駆動型の意思決定にAuto ML は使われている。

参考資料:Google Cloud Next 18セッション
Machine Learning with Scikit-Learn and Xgboost on Google Cloud Platform
Vision: API and Cloud AutoML
Latest Developments in Translate, Natural Language AI&AutoML

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。