1 of 21

ベイズ統計と

確率的プログラミング言語

須山敦志@sammy_suyama

TensorFlow User Group ベイズ分科会

2020/09/06

2 of 21

こんな悩みないでしょうか?

機械学習を課題解決に使いたいが、使えるデータ量が少なすぎる。。

データはたくさんあるが、教師ラベルがなくて何もできない。。。

3 of 21

こんな悩みないでしょうか?

とりあえず解析の目標設定やデータの準備はできたが、課題やデータ自体が複雑すぎて適切なアルゴリズムが見つけられない。。

予測システムをなんとか構築したが、本運用後に予測精度が低下し使い物にならなくなった。。

4 of 21

こんな悩みないでしょうか?

機械学習やディープラーニングを使ってみたが、結果の解釈性が低く、予測ができたところで具体的なアクションにつながらない。。

機械学習やディープラーニングはとにかく意味不明な調整パラメータが多すぎる。。

5 of 21

こんな悩みないでしょうか?

機械学習や統計手法は多すぎる!もうこれ以上勉強できない。。

AutoMLなどの機械学習の自動化ツールが発達しており、今後のデータサイエンティストとしてのキャリアが心配。。

6 of 21

ベイズモデリングとは?

7 of 21

俗説的なトレードオフを断ち切る

扱う対象の複雑さ

結果の解釈のしやすさ

深層学習?

機械学習?

古典統計?

ベイズモデリング

データ・課題の複雑度。画像データや時系列データなどが複雑度の高いデータの例

データ解析の結果が具体的なアクションにつながりやすいかを示す

解釈度・複雑度の

両立を実現する

8 of 21

チューニングから設計へ

モデルを選んで

チューニング

課題ベースの

ソリューション設計

9 of 21

ベイズモデリングとは何か?

  • データ解析手法の1つ。
  • データに対して確率モデルと呼ばれる数学的な仮定を与えることにより、データから何かしらの判断に有用な情報(解析結果)を引き出す。

データ

確率モデル

解析結果

10 of 21

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

不確実性を伴った予測

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

オーバーフィットの回避

11 of 21

もう少し数理的に説明すると。。。

確率分布(確率モデル)

確率計算(推論計算)

  • 次の式を満たすような関数pを確率分布あるいは確率モデルなどという。
  • 基本的には下記の2つの式をいかに効率よく計算できるかがベイズ統計の技術的な関心。

周辺確率

条件付き確率

※なお、いわゆる「ベイズの定理」とベイズ統計は本質的には無関係。

12 of 21

用語に関する注意点!

用語

一般的な使われ方

ベイズモデリングにおける使われ方

学習、推論、予測

訓練データからパラメータを決定する過程を学習と呼び、学習済みモデルを使った新規データに対する予測を推論と呼ぶ場合が多い。

大量データの学習および新しいデータに対する予測をまとめて推論と呼ぶ。ベイズの理論的には、学習と予測は区別する必要はない

モデル、

モデリング

学習によって得られる予測器のことをモデルと呼び、最終的な予測器を得るまでのプロセスをモデリングと呼ぶ。

データに対して置く数理的な仮定をモデルと呼ぶ。人手でモデルを設計するので、データを与える前からモデルは存在する。

アルゴリズム

データに対して、何らかの数式を何らかの方法でパラメータチューニングする方法を指す?

条件付き分布を数値的に解析する計算手法のことを指す。(例:MCMC、変分推論法)

13 of 21

普通の機械学習との違いは?

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

モデリングアプローチ

  • 取り組んでいる問題に使えそうな既存アルゴリズムを探してくる。
  • 前処理や特徴量抽出などを使って,既存アルゴリズムが動作するように“合わせ込む” 。
  • 多くの機械学習はこちらのアプローチ。
  • データや課題に応じた数理モデルをデザインする。
  • モデルの未知の値や構造をデータから学習する.
  • 簡単に言うと“オーダーメイド”。
  • ベイズモデリングはこちらのアプローチ。

14 of 21

ベイズモデリングと解析業務

状況に合わせたモデル改善

新しいデータやアイデア・課題に対して、柔軟にモデルを拡張することができる。

一貫したアプローチ

モデルの改善とデータの理解が一体となっており、双方の進捗が進むほど新たな応用が拡大していく。

「理解」を主軸にした開発

データの生成過程の理解を主軸に置いているので、業務としての手戻りが少ない。

15 of 21

とはいえ

(That's great, but...)

16 of 21

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

【C】計算効率の課題

【B】実装時間の課題

【A】数理知識の課題

現状

理想

モデル設計・計算設計・手法の理解・解析結果の理解のすべてにおいて高度な数理的知識が必要

モデルを設計した後は、計算アルゴリズムを自力で導出する必要があり、実装までに大変な時間と労力がかかる

大規模データや高度なモデルは、結果を得るまで膨大な計算時間やメモリ量を要する

高度な数学的知識がなくても、モデルの設計が直感的に行え、モデルや結果の共有が容易にできる

モデルを設計した後は、計算アルゴリズムはツールで自動的に生成される。これにより、分析者はモデル設計や評価に集中できる。

データの規模やモデルの構造、利用可能な計算リソースに合わせて、ツールが自動的に高効率な並列化計算を行う

17 of 21

解決策:確率的プログラミング言語の活用

確率的プログラミング言語とは

手計算を排除

解析サイクルを効率化

  • Probabilistic programming language (PPL)
  • モデリング作業を簡略化するためのソフトウェア
  • 多くはPythonやRのライブラリとして利用可能。
  • コーディングによってモデルを記述する。データシミュレーションによって挙動を確認しながらモデル設計できる。
  • 推論アルゴリズムは自動微分によって自動的に導出される。
  • モデル設計の直感化、推論計算の自動導出、GPU/CPUによる計算高速化により、データ解析サイクルは圧倒的に効率化。
  • 解析者は課題理解・モデルの試行錯誤に多くの時間を費やすことができる。

手計算

コーディング

モデル

設計

実験

評価

推論

計算

18 of 21

TensorFlow Probability (TFP) を使ったデモ

19 of 21

まとめ

  • ベイズモデリングでは、確率モデルと呼ばれるデータに対する数理的な仮定を設計し、推論計算によって有益な情報を引き出す。
  • 確率的プログラミング言語(PPL)の進化によって、ベイズモデリングの活用のハードルは年々下がってきている。
  • PPLが特に便利なのは次の理由。
    • コーディング&データシミュレーションによる直感的なモデル設計
    • 自動微分などの技術に基づく効率的な推論計算アルゴリズムの自動導出

20 of 21

ツールボックスアプローチの限界点

低い設計自由度

幅広い既存アルゴリズムの実装が用意されているものの、多種多様で複雑な現実課題には対応できない場合が多い。特に、教師なし学習のモデルなどはほとんど設計できない。

データ処理段階での情報欠損

ツールボックスアプローチではデータに対して段階的な前処理・特徴量抽出が数多く行われることが多いが、このようなシーケンシャルな処理は予測に必要な情報の欠損をもたらす。

本運用での精度劣化

ツールボックスアプローチでは、課題やデータ自体の理解よりも、天下り的に設計された数値目標の達成に重点が置かれることが多い。これは本運用での予測精度劣化の原因となる。

精度

21 of 21

少しだけ補足しておくと。。。

<注意点>

  • ベイズ統計の方法論は、確率の条件付けと周辺化の2つの規則のみをベースに成り立つ。
  • ベイズの定理は2つの規則から自然に導かれるただの便利公式の1つ。
  • ベイズの定理を使っているからといってベイズ手法であるとは限らないことに注意!�(その逆も。)

ベイズの定理

Thomas Bayes?

(1701 - 1761)