オーストラリアで勉強してきたデータサイエンティストの口語自由詩

主に、ベイズ・統計・データ分析・機械学習について自由に書く。

SA Night行ったのでレポートするぜ

↓ この勉強会に参加したので、簡単ながらレポートします。 connpass.com 第一回開催なのか(`・ω・´) TL;DR SA Nightとは? SAのお仕事を紹介するイベント SAとは? ◯ Solutions Architect(ソリューションアーキテクト) ✕ Systems Architect(システムアー…

英語記事の翻訳 - ”Bayesian Analysis with Python - 第二版(オズワルド・マーティン)“ への序文(2019)

TL;DR 最近出版された「Bayesian Analysis with Python - Second Edition」への序文をPyMC3のコア開発者であるThomas Wieckiがブログ記事で書いていたので翻訳してみました. 「Pythonによるベイズ統計モデリング: PyMCでのデータ分析実践ガイド」という訳書…

英語記事のサマリ - UberのAIラボが #Pyro という深層学習+ベイズのライブラリを発表(2017)

UberのAIラボがPyroという深層学習+ベイズのPythonライブラリを発表したブログ記事をサマリ翻訳してみた. 2017年11月の記事で若干古いが, 他にPyMC4やTFP(Tensorflow Probability)などのライブラリがある現状, Pyroがどのようなポジショニングをしているか…

英語記事のサマリ - PyMC開発者のThomas Wieckiさんにインタビューした記事

気分転換にベイズや確率プログラミングに関する英語記事や論文の翻訳サマリをさっくり書いていく予定. 第一回目はPyMC3の開発者のインタビュー記事. TL;DR PyMC3の開発者であり, かつQuantopian という投資会社で働いている Thomas Wiecki へのインタビュー…

2019年の抱負: ベイジアンとしてやること・やらないことを宣言する(˘ω˘)スヤァ

目標ややりたいことは書き留めたり人に宣言した方がいいらしいので、改めてまとめてみた。 TL;DR 一言でいうと ベイズ x python x 金融 の3つに関連することだけやっていくつもり(`・ω・´) 基本方針として Focus(選択と集中) にこだわって、 やること も…

Chapter 3 統計モデリングをはじめる前に 3.3〜3.5 - pythonで『StanとRでベイズ統計モデリング』

3.3 背景知識の役割 背景知識を活用することで内部構造がブラックボックスな問題(逆問題: inverse problem)を解く手がかりとなる. 逆問題の回答は何通りもあり得, 答えが一意に定まらない問題は不良設定問題(ill-posed problem)と呼ぶ. データを活用して…

Chapter 3 統計モデリングをはじめる前に 3.1〜3.2 - pythonで『StanとRでベイズ統計モデリング』

3.1 データ解析の前準備 このあたりのデータ前処理(Data Preparation)のプロセスは一般的なものなので特に深入りしない. データの分布を可視化して確認する点は機械学習のEDA(Exploratory Data Analysis)のプロセスでも重要とされているが, 多くの統計モ…

Chapter 2 ベイズ推定の復習 2.4〜2.7 - pythonで『StanとRでベイズ統計モデリング』

2.4 ベイズ推定とMCMC 伝統的な統計学の手法や最尤推定の問題を解決する一つの手法がベイズ推定(Bayesian inference)とマルコフ連鎖モンテカルロ法(MCMC). ベイズ統計 パラメータを確率変数とみなして確率分布を推定する(伝統的な統計学の点推定と異な…

Chapter 2 ベイズ推定の復習 2.1〜2.3 - pythonで『StanとRでベイズ統計モデリング』

TL;DR 確率周りに関する基本事項についてカバーしている. 詳細に理解するには別途参考文献を参照した方が良い. 2.1 基本用語と記法 次のような内容が前提知識のようです. 基本的にはベイズ推定など確率周りの事柄を理解しておく必要がありそうです. あとは微…

Chapter 1 統計モデリングとStanの概要 - pythonで『StanとRでベイズ統計モデリング』

1.1 統計モデリングとは 以前、「はじめに」でも触れた統計モデリングについてまとめてみます. 統計モデリングとは確率分布を取り入れたモデルをデータに当てはめて理解と予測をすることです. 整理すると, 確率分布を数理モデルに取り入れたモデルを 確率モ…

統計モデリング - pythonで『StanとRでベイズ統計モデリング』

はじめに この本はStan(スタン)というソフトウェアとそのR用のパッケージであるRStan(アールスタン)を使って, 統計モデリングを習得する本である イントロで書籍の目的や内容や流れ, 前提知識や対象読者が記載されていたいりするので意外と大事です. ま…

Stan/R - pythonで『StanとRでベイズ統計モデリング』

はじめに この本はStan(スタン)というソフトウェアとそのR用のパッケージであるRStan(アールスタン)を使って, 統計モデリングを習得する本である イントロで書籍の目的や内容や流れ, 前提知識や対象読者が記載されていたいりするので意外と大事です. ま…

『StanとRでベイズ統計モデリング』をpythonでやってみる

TL;DR 今後は以下の書籍を読んで勉強した内容をブログに書いていこうと思います(`・ω・´) StanとRでベイズ統計モデリング (Wonderful R) StanとRでベイズ統計モデリング (Wonderful R)作者: 松浦健太郎,石田基広出版社/メーカー: 共立出版発売日: 2016/10/2…

pymc4の現状整理

ちょっとブログ更新の間があいてたのですが、そろそろ再開したいと思います. pymc4のソースコードリーディングがだいたい完了したので、現状のライブラリの現状を整理します. 現状整理 主な処理はtensorflow probabilityを内部的に使用 可視化はarvizを使用 …

サンプリングのテスト追加と微修正[6717b3e, 007cd06, d896372] - pymc4のソースコード読んでみた

TL;DR 主にサンプリングのテスト追加 コミット 2018/07/06のコミットです. fix pylint error · pymc-devs/pymc4@6717b3e · GitHub add test for sampling · pymc-devs/pymc4@007cd06 · GitHub solve pycodestyle errors · pymc-devs/pymc4@d896372 · GitHub …

対数確率計算用インターセプタ(実装はちょっと怪しい)[f223e4e] - pymc4のソースコード読んでみた

TL;DR 対数確率計算用インターセプタの実装を読んだが, なんだか実装が怪しい気がする. コミット 2018/07/01のコミットです. make target_log_prob_fn to use class based interceptor · pymc-devs/pymc4@f223e4e · GitHub 以下が変更対象ファイルです. pymc…

対数確率関数の計算をインターセプター処理 [f223e4e] - pymc4のソースコード読んでみた

TL;DR 変数に対する処理は基本的にインターセプターで対応する方針のため, 対数確率も同様に対応. コミット 2018/07/01のコミットです. make target_log_prob_fn to use class based interceptor · pymc-devs/pymc4@f223e4e · GitHub 以下が変更対象ファイル…

pycodestyle追加ともろもろ[a7cef9b, bd381b1, 89edc5c, 9f46878] - pymc4のソースコード読んでみた

TL;DR pycodestyle でコードチェックの追加 不要なテストの削除 コミット 2018/07/01のコミットです. remove some tests · pymc-devs/pymc4@a7cef9b · GitHub fix pycodestyle errors · pymc-devs/pymc4@bd381b1 · GitHub remove test_interceptors · pymc-d…

(細かい修正なのであまり重要ではない) [c27e97f, a8e3dae, 4f5382f, e06d946, ca9f334] - pymc4のソースコード読んでみた

TL;DR 細かい修正が多いのであまり重要ではないです. コミット 2018/06/26から2018/06/30の間のコミットです. minor fixes · pymc-devs/pymc4@c27e97f · GitHub add some tests · pymc-devs/pymc4@a8e3dae · GitHub add tests and fix model.configure() · p…

target_log_prob_fn: MCMCサンプリングの実装 [66f95ca, 8aaa0ff, cded7c5] - pymc4のソースコード読んでみた

TL;DR 前回の log_prob_fn と同様に複数の未観測変数の対数確率の合計を計算している様子なので細かい点は省略 コミット 2018/06/21から2018/06/23の間のコミットです. add target_log_prob_fn which works with the tff mcmc sampler · pymc-devs/pymc4@66f…

log_prob_fn: MCMCサンプリングの実装 [66f95ca, 8aaa0ff, cded7c5] - pymc4のソースコード読んでみた

TL;DR 複数の未観測変数の対数確率の合計を計算しています. これがMCMCサンプリングのコアの部分です. コミット 2018/06/21から2018/06/23の間のコミットです. add target_log_prob_fn which works with the tff mcmc sampler · pymc-devs/pymc4@66f95ca · G…

PyMC4のInstallation failsというissueに対応するPR送った

TL;DR 次のissueにあるように, 現状だと依存性の解決の部分でfailしてインストールできないのでとりあえずforkして dependency-resolution というbranchで修正してみた. see: Installation fails · Issue #23 · pymc-devs/pymc4 · GitHub 修正点 これを tf-n…

Add model.target_log_prob_fn() sampling [a703c21] - pymc4のソースコード読んでみた

TL;DR ターゲットとなる unobserved(未観測なRandomVariableインスタンス) の対数確率の合計を返すメソッドを実装しています. コミット 2018/06/18のコミットです. Add model.target_log_prob_fn() · pymc-devs/pymc4@a703c21 · GitHub 以下ファイルが修正…

python3.5削除 + pep8対応 [bb4de21] - pymc4のソースコード読んでみた

TL;DR python3.5は対応せず、3.6以上対応の方針 pep8のコードスタイルの修正なので、特に重要な点はなさそうです。今後はlint系のコミットは冗長なので省略するかもしれません。 コミット 2018/06/11のコミットです。 pep8 · pymc-devs/pymc4@bb4de21 · GitH…

テストサンプルの生成 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

概要 Model クラスのサンプル生成のメソッドを読んでみます。 test_point コミット 2018/06/09から2018/06/11の間のコミットです。 tmp · pymc-devs/pymc4@e334115 · GitHub restructure + test point implementation · pymc-devs/pymc4@d07338e · GitHub fi…

tensorflowのグラフ構造 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

概要 まずは Model クラスの初期化処理系のメソッドを読んでみます。 _init_variables: 今回はここの self.graph.as_default() の処理を読みます コミット 2018/06/09から2018/06/11の間のコミットです。 tmp · pymc-devs/pymc4@e334115 · GitHub restructur…

edward2のinterception処理 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

概要 まずは Model クラスの初期化処理系のメソッドを読んでみます。 _init_variables: 今回はここの ed.interception() の処理を読みます コミット 2018/06/09から2018/06/11の間のコミットです。 tmp · pymc-devs/pymc4@e334115 · GitHub restructure + te…

Modelの_init_vatiables内のInterceptor処理 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

概要 まずは Model クラスの初期化処理系のメソッドを読んでみます。 _init_variables: 今回はここを読みます コミット 2018/06/09から2018/06/11の間のコミットです。 tmp · pymc-devs/pymc4@e334115 · GitHub restructure + test point implementation · p…

Modelクラスの初期化処理 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

TL;DR まずは Model クラスの初期化処理系のメソッドを読んでみます。 __init__: 初期化処理いろいろ define: self._f を設定して変数初期化しているようですが、今のところテスト用のヘルパー関数に見えます configure: 設定を上書きして変数初期化 _init_v…

なぜPyMC4のバックエンドにTensorFlowが採用されたのか?

TL;DR 以下記事をもとに、PyMC4のバックエンドにtensorflowが採用された経緯をまとめました。 see: Theano, TensorFlow and the Future of PyMC – PyMC Developers – Medium ポイント tensorflowには既に多くのユーザがいること(デファクトスタンダードであ…