IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第70回 機械学習パイプラインにおける学習データの異常検知システム(パート1) (中井悦司) 2019年11月

はじめに

 今回からは、2019年に公開された論文「Data Validation for Machine Learning」を元にして、機械学習モデルの学習データに含まれる異常を検知するシステムについて解説します。このシステムは、機械学習を利用するGoogle社内のプロジェクトで標準的に利用されているもので、機械学習パイプラインを構築するためのオープンソースであるTFXを用いて構築されています。

機械学習パイプラインとは?

 第67回からのシリーズで取り上げたFederated Learningでは、モバイルデバイス上のデータを用いて、キーワード予測の機械学習モデルを学習する仕組みを説明しました。そこでは、新たなデータを用いて、日々、継続的にモデルの学習を行う仕組みが用意されていました。OCR(文字認識システム)のように、学習データが固定的なユースケースであれば、モデルの学習を繰り返す必要はありませんが、Webで提供されるサービスのように、利用者の行動に合わせて進化すべき領域では、Federated Laerning以外の一般的な機械学習システムであっても、このような継続的な学習は重要になります。一般に、「学習データの収集 → モデルの再学習 → 再学習済みのモデルによる予測」といった一連の処理を自動化して、これを継続的に実行するシステムを機械学習パイプラインと呼びます。
 次の図1は、TFXで構築した機械学習パイプラインの概要ですが、灰色の枠に囲まれた部分(Data Validation System)が、今回のメインテーマである学習データの異常検知を行う部分になります。

fig01

図1 TFXによる機械学習パイプライン(論文より抜粋)

 少し複雑な図ですので、まずは、「Data Validation System」以外の部分を簡単に説明しておきましょう。一番左にある「Training data generation code」は、学習データを収集するシステムにあたります。これによって収集・保存された「Training Data」を用いて、「Training Code」によってモデルの学習処理が行われます。学習によって得られたモデルが下部の中央にある「Model」です。これが、予測処理システムである「Tensorflow Serving」にデプロイされることにより、新たなデータに対する予測処理が可能になります。最後に、一番右側にある「Serving data generation code」は、予測対象のデータを収集するシステムで、これによって収集・保存された「Serving Data」に対する予測処理が実施されます。

学習データの異常による影響

 続いて、「Data Validation System」部分の説明に入るわけですが、その前に、「学習データの異常」が、機械学習システムにどのような影響を及ぼすのかを考えてみます。論文の中では、学習データ収集システムのバグで、学習データの異常が発生する例が挙げられています。たとえば、データ収集の仕組みをアップデートした際に意図しない不具合が発生して、収集データの特定のカラム値(フィーチャー)がすべて「-1」になったとします。データを取得する際のサービス呼び出しに対して、エラー値「-1」が返ってきたにも関わらず、誤ってこれをデータそのものとして扱ってしまうと、このような事が起こり得ます。
 通常のアプリケーションプログラムであれば、このような異常データがあれば、即座に不具合が発生するものですが、機械学習システムの場合は少し状況が異なります。機械学習では、学習データに異常があれば、それは予測精度の低下として現れます。さらに、このような精度の低下がデータの異常に起因するものなのか、あるいは、自然にデータの傾向が変化したことで発生したのかを区別することは困難です。誰も気づかないうちに予測精度が下がっていき、そのモデルの予測を利用したビジネスへの悪影響が長期間に渡って発生することもあり得ます。このような問題を避けるためには、モデルの予測精度とは別に、学習データそのものの特徴を個別にチェックする仕組みが必要となります。この機能を提供するのが、図1の「Data Validation System」に他なりません。

次回予告

 今回は、2019年に公開された論文「Data Validation for Machine Learning」を元にして、機械学習モデルの学習データに含まれる異常を検知するシステムを紹介しました。本文中では、オープンソースのTFXに含まれる機能と説明しましたが、実際のソースコードは、「TensorFlow Data Validation」で確認することができます。また、図1の仕組みの中では、「データスキーマによる異常値検知」「データ統計値の変化による異常値検知」「スキーマから自動生成したデータによるモデルとデータの不整合検知」という3種類の異常検知システムが実装されています。次回は、これらの仕組みを個別に解説していきます。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes