簡単かつ高性能な統計モデル構築!TensorFlow Probability によるベイズモデリング入門

簡単かつ高性能な統計モデル構築!TensorFlow Probability によるベイズモデリング入門

GCP

投稿日:2020/06/23 | 最終更新日:2020/09/10

Googleが開催するイベントのGoogle Cloud Dayでは、Google Cloudの最新ソリューションを学ぶことができます。今年はCOVID-19の影響でオンラインでの開催となりました。この記事ではTensorFlow Probability によるベイズモデリング入門についてご紹介します。

セッションの概要

こちらのレポートは、ベイズ手法の考え方に基づく統計モデル、機械学習モデル、深層学習モデルの構築方法を解説します。

これまでベイズ手法は、モデル設計の際に高度な数学の知識を要することや、学習や予測のために多くの計算量が必要となることが知られていました。これを解決する手段として、本講演では TensorFlow Probability を使った簡単かつ高性能なモデル構築方法を紹介します。

取り上げる主な Google Cloud 製品 / サービスは以下になります。

  • TensorFlow

ベイズモデリングとは

データ解析を行うには様々な方法があります。例えばデータベースから数字を抜き出し、ヒストグラムを作ったり、色々なモデリングの手法があります。

ベイズモデリングとは、その中でも確率計算に基づいたモデリング手法です。

特徴としてモデル設計の自由度・柔軟度が非常に高いということがあります。また現在のAIなどでよく使われる機械学習、深層学習の多くがベイスモデリングで構築されています。
ベイズモデリングとは?

ベイズモデリングでできることとは?

ベイズモデリングでできること

不確実性を伴った予測

実測値をから幅を持った予測を行えます。グラフの右側の緑の部分で予測値の上振れ下振れを確率を持って予測します(上振れ予測は○○%など)。これにより結果を非常に理解しやすくなります。

課題に合わせた柔軟な解析

課題が、教師なしデータモデルの場合はそれに適したモデル、また時間変動を持ったモデルであればそれに合わせたモデルなど、課題に合わせた解析を行うことができます。

オーバーフィットの回避

実測値から予測を行う際に、オーバフィット(上側のグラフでのガタガタになった線)を避け、データ特性に合わせた精度の高い予測(下側のグラフのなめらかな線)が可能です。

ベイズモデリングの構成要素

Bayes model Essiensials
ベイズモデリングはデータ、モデル、推論計算、解析結果、から構成されます。

まずデータがあり、分析者がモデルを設計します。その後計算機で、学習である推論計算を行い、解析結果を可視化します。これがベイズモデリングの構成要素と一連の流れになります。

機械学習とモデリングの違いは?

機械学習とモデリングの違い

ツールボックスアプローチとは

多くの機械学習がこの方法で、取り組んでいる問題に対して既存のアルゴリズムを見つけてきて組み合わせて対応する方法です。パターンがある程度決まっているため早く行うことができます。

モデリングによるアプローチとは

データや課題に応じた数理モデルを自分でデザインしデータを学習させるアプローチです。既存アルゴリズムの組み合わせで行うツールボックスアプローチと違い、オーダーメイドで作れるため非常に自由度の高いアプローチになります。ベイズモデリングはこれに該当します。

ツールボックスアプローチの問題点

ツールボックスアプローチの問題点

  1. 低い設計自由度
    幅広い既存アルゴリズムの実装が用意されているものの、多種多用で複雑な現実課題には対応できない場合が多いです。特に、教師なし学習モデルなどほとんど設計できません。
  2. データ処理段階での情報欠損
    ツールボックスではデータに対して段階的な前処理・特徴量抽出が数多く行われることが多いですが、このようなシーケシャルな処理は予測に必要hな情報が欠損をもたらします。
  3. 本運用での精度劣化
    ツールボックスアプローチでは、課題やデータ自体の理解よりも、天下り的に設計された数値目標の達成に重点が置かれることが多いです。これは本運用での予測精度劣化の原因となります。

ベイズモデリングによるアプローチ

ベイズモデリングによるアプローチ
モデルに自由度がある分、状況に合わせてモデルを改善していくことができます。新しいデータやアイデアに対し柔軟にモデルを拡張していくことができます。

モデルとデータの方向性のアプローチが一貫しており、進捗が進むほど新しい応用が拡大できます。例えば最初は将来予測だけだったのが、データの理解が進むと、異常検知も加えてできるようになる、などです。

考え方として、自由度がある分理解しながら進むため、手戻りが少ないということが上げられます。

TensorFlow Probabilityによるモデリングと計算

ベイズモデリングの現状と理想

ベイズモデリングの課題

A:高度な数理知識が必要
B:実装に大きな労力と時間がかかる
C:計算に膨大な時間やメモリ量を要する
以上3つの代表的な課題があります。これらに対する解決策を次章で説明します。

TensorFlow Probabilityによる課題の解決

前章の各課題に対して、TensorFlow Probabilityによる各解決策を説明します。
数理知識に関する課題と解決
A:数理知識に関する課題の解決
数式を扱うことなくPythonなどのコーディングによりモデリングが可能です。
モデルからデータシュミレートをする機能を持っており、実際のシミュレート結果を目でみながら直感的にシミュレートすることが可能です。
例:加速度センサーを利用したモデルの場合、実際の挙動とデータを目で見ながら数式を触らずにコーディングで調整できます。

実装時間に関する課題と解決
B:実装時間に関する課題の解決
手計算で行っていた実装が、アルゴリズムの自動導出機能により、推論アルゴリズムが導出されるため、実装の手間が軽減されます。
これにより、一般的に数百行にも及ぶ手動でのプログラミングが軽減され、バグが減り、数週間から場合によっては数ヶ月レベルの工数が削減できます。

計算効率に関する課題の解決
C:計算効率に関する課題の解決
TPUやGPUが選択可能になり、これらアクセラレータを活用して非常に早い計算を行うことができます。

解析事例

事例1:ガウス過程回帰モデルによる予測的指標管理

ガウス過程回帰モデルによる予測的指標管理
右側の緑色の部分の予測をグラフで表したものです。色分けされている通り振れ幅を持って予測ができます。別の下のグラフにあります通り上振れ予測確率は20%、下振れ確率は0%となっており、このように振れ幅を確率を持って予測することができます。
これにより非常に理解し易い予測結果となります。

実装としては、TensorFlow ProbabilityのAPIを使います。この場合、カーネル設計、パラメータの事前分布、MAP推定による学習、を行いますが、いずれもTensorFlow Probabilityにあらかじめ該当する式やパラメータセットがコーディングで提供されており、手動に比べ簡易に実装が可能です。

事例2:潜在変数モデルによるセンサーデータ解析

潜在変数モデルによるセンサーデータ解析
ある製造装置にセンサーを付けデータを観測し製品の出来映えに対する予測を行います。潜在因子と言われるセンサーデータの裏に潜在している出来映えの本当の要因となる因子を予測するものです。例えば一見温度が製品の出来映えに影響していると見えるものが、実際には温度の裏に潜在している因子は湿度であり、それとの関係を導き出すものです。

実装としてはこの場合、モデルの設計、近似推論の設計、による学習を行いますが、事例1と同様にTensorFlow Probabilityに、各設計であらかじめ該当する式がコーディングで提供されており、手動に比べ簡易な実装が可能です。

参加者さんから出たご質問とGoogleの回答

以下、Q&A方式で当日のイベントで出た質問をQとして、Googleからに回答をAとして記載します。

Q:難解な数学の知識が無くてもモデルが構築できるということですが、そもそも既存のツールボックスモデルに当てはまらない問題をモデル化するには、ベイズモデルに関する深い知識が必要なのではないでしょうか?

A:ご指摘の通りで数学の知識が完全にいらなくなるというのは現状難しいと思います。今後さらに分かりやすいツールが必要になります。ただ既に実装されているモデルがかなり多く共有されているので、それを改造しながら利用していくやり方をすれば、それほどハードルは高くはありません。

Q:ベイズとノンベイズモデルの使い分けはどのようにしたらいいですか?

A:ご紹介したツールボックスとモデリングアプローチの比較であれば、クイックに解析したりアルゴリズムを構築したい場合にはツールボックスアプローチ、つまりノンベイズを試すのもよいと思います。

まとめ

ベイズモデリングは非常に有用なデータ解析方法論です。

ただ、数理知識が必要であったり、実装に手間がかかったり、計算に非常にリソースを必要としたりと、いくつかの課題があります。TensorFlow Probabilityはこれらの多く課題を解決することができます。

ベイズモデリングは少し難解に見えるかもしれませんが、非常に有用なアプローチ手法です。ぜひTensorFlow Probabilityを活用して、試してみてはいかがでしょうか?



弊社トップゲートでは、 GCP 、または G Suite 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!

お申込みはこちら

メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
GCP、G Suite、TOPGATEの最新情報満載!

メルマガ登録はこちら

記事を探す

GCP のメリットを最大限に活用しよう!

GCP・Google Workspace のご相談・
お見積り依頼はお気軽に
お問合せフォーム