What you'll learn
- 確率プログラミング(NumPyro)
- ベイズ統計モデリングのさまざまな応用例
- ロバスト線形回帰・クラスタリング・変化点検出・レイティング
- 微分方程式のパラメータ推定・構造時系列モデルの基礎
Requirements
- Python を使ったデータ解析の基礎知識(グラフが書ける程度)
- 確率・統計の基礎知識
- 事前分布・事後分布・尤度・事後予測分布などの用語が理解できること
Description
本コースは、主にベイズ統計の基本的な考え方を理解している皆様に向けて、ベイズ統計モデリングのさまざまな応用例を紹介するコースとなっています。最初は、線形回帰やロバスト線形回帰などの基本的な例題からスタートして、徐々に変化点検出やレイティング、微分方程式のパラメータ推定などのさまざまな応用例を見ていきます。本コースでは、こうしたさまざまな応用例を Google Colaboratory 上で動かしてゆき、たくさんのスライドとサンプルコードの両方で、統計モデリングの知識を深めてゆきます。
また、こうした例題には NumPyro と呼ばれる確率プログラミングのパッケージを利用します。NumPyro は、JAX と呼ばれる高速なバックエンドを持っていることが特徴の確率プログラミングのパッケージであり、モデルのパラメータ推定などを高速に行えるのが、大きな特徴のひとつになっています。また、NumPyro は Python のパッケージであることから、Python の経験者にとっては、比較的少ない学習コストで統計モデリングや確率プログラミングという新しい世界を覗いてみることができることも大きなメリットのひとつとなっています。
NumPyro の最新バージョンは現在のところ 0.7.2 ですが(2021年9月現在)、動作は安定しており、普通に利用するには大きな問題はないものと考えています。ただ、パッケージがまだまだ発展途上であることには注意が必要です。業務等での利用の際には十分にご注意下さい。また、NumPyro に関しては、和書などの日本語の情報が少ないため、わからないことが出てきた場合には、ある程度英語で情報を読み解く力が必要になります。その点にもご注意下さい。
なお、本コースで使用している NumPyro のバージョンは 0.7.2 です。
【注意点】
本コースは、基本的には既に公開されている「NumPyro で学ぶベイズ統計モデリング【基礎編】」の続編にあたる講座となりますが、基礎編の全ての内容を前提としている訳ではありません。「MCMC 」や「事前分布・事後分布」といったベイズ統計の基本的な用語に関する知識があれば、概ねコースの内容を理解できるものと想定しています。
また、コースの前半では、線形回帰の例題を使った NumPyro の入門的な内容も紹介していますので、Stan や PyMC3 等に少しでも触れたことのある方であれば、あまり苦労せずに中身を理解して頂くことができるのではないかと考えています。
なお、本コースでは一部においてパッケージの実験的な機能を使っている部分がありますので、インターフェース等には将来的に変更がある可能性のある部分があります。予めご了承下さい。また、確率プログラミングの技術を広く拡散させるため、本コースで紹介しているコードをブログ等の記事で紹介する可能性が御座います。その点につきましても予めご了承頂けますと幸いです。
Who this course is for:
- ベイズ統計モデリング・確率プログラミングに興味がある人
- ベイズ統計モデリングのさまざまな応用例に興味がある人
Instructor
フリーランスのデータサイエンティスト・アルゴリズム開発者
東京工業大学 修士課程(数学科)修了。大学では位相幾何学・微分幾何学を専攻し、ゲージ理論を位相幾何学に応用したドナルドソン理論を学ぶ。
シンクタンクおよびベンチャー企業にて、無線通信分野の研究支援業務に従事し、企業の研究者と共同で第4世代携帯のためのアルゴリズムを研究・開発。通信分野における複数の特許の共同発明者。
2011年より、MathWorks にて統計解析・機械学習を中心に、プリセールスおよびコンサルンティング業務に従事。多数のイベント・講習会等において技術解説を行う。
2019年より、フリーランスのデータサイエンティスト・アルゴリズム開発者として活動中。