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

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

サンプリングのテスト追加と微修正[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には既に多くのユーザがいること(デファクトスタンダードであ…

biwrapを使用したinline関数 [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

TL;DR biwrap モジュールを使ってアノテーションを使った Model インスタンス生成用のヘルパー関数を作成しています。 コミット 2018/06/09から2018/06/11の間のコミットです。 tmp · pymc-devs/pymc4@e334115 · GitHub restructure + test point implementa…

アーキテクチャをPyMC3からPyMC4へ [e334115, d07338e, 93bc07b] - pymc4のソースコード読んでみた

TL;DR 今までのコミットの Model や RandomVariable は削除され、アーキテクチャも変更されています。削除されたコードはpymc3とほぼ同等だったので、試しに書いたコードだったようです汗。ほとんど0から読み進める感じになるので、焦らず読みやすそうな箇所…

pymc4のソースコード読んでみた - 依存ライブラリの対応やlint [ac77b27, bec2985, ce1d895]

TL;DR 依存ライブラリである tensorflow_probability が原因で requirements.txt の現状の書き方では最新バージョンを上手く取得できない問題があったみたいです。新しいライブラリなので仕方ないですね。 コミット 2018/06/03のコミットです。 Update requi…

pymc4のソースコード読んでみた - “RandomVariable”, Add model tests, fix travis pytest problem [4357d39]

TL;DR treedict クラスの依存性を以前のコミットで削除した代わりに、 RandomVariable クラス内で Model の contexts.stack 全てに値を設定することで、ほぼ同等の動きをしている。 コミット 2018/06/03のコミットです。 Add model tests, fix travis pytest…

pymc4のソースコード読んでみた - Add model tests, fix travis pytest problem [4357d39]

コミット 2018/06/03のコミットです。 Add model tests, fix travis pytest problem · pymc-devs/pymc4@4357d39 · GitHub 以下ファイルが変更されています。 .gitignore .pytest_cache/ を追記 .pylintrc naming convention のlintチェックをdisable: C0103 …

pymc4のソースコード読んでみた - Remove treedict dependency [10ea1aa]

TL;DR model nesting が不要になったので、 treedict が削除されたみたいです。 コミット 2018/05/31のコミットです。 Remove treedict dependency · pymc-devs/pymc4@10ea1aa · GitHub 以前は Model クラスで treedict クラスが使用されていましたが、その…

pymc4のソースコード読んでみた - lintや依存ライブラリ情報の更新などもろもろ [8c1d02a, d932437, a0879d4, 2b5946c, 10ea1aa, 9086d1a, c1ea662]

TL;DR pep8のlint系の対応やrequirements.txtの更新など、雑多なコミットが多かったので、1つの記事にまとめました。途中で jupyter notebook で test.ipynb を起動してもライブラリが無いとか、そもそもシンタックスエラー等があるので、コミット c1ea662 …

pymc4のソースコード読んでみた - “Model”の動作確認, Initial Model Class, sampling and random variable [aafa32d]

コミット 2018/05/30のコミットです。 Initial Model Class, sampling and random variable · pymc-devs/pymc4@aafa32d · GitHub 主に、pymc4の根幹となる Model と RandomVariable クラスが作成されています。 Model クラスの動作を確認してみます。 Model …

pymc4のソースコード読んでみた - (仮)図でまとめ, Initial Model Class, sampling and random variable [aafa32d]

まとめてみた(内容はまだ自信がないので、後日またチェックしてみる) メモ Model クラスは Context クラスを継承している Model は、クラスのスコープで contexts.stack を保持している with でmodelインスタンスを生成する度に、stackの末尾にそのmodelイ…

pymc4のソースコード読んでみた - “Model”, Initial Model Class, sampling and random variable [aafa32d]

コミット 2018/05/30のコミットです。 Initial Model Class, sampling and random variable · pymc-devs/pymc4@aafa32d · GitHub 主に、pymc4の根幹となる Model と RandomVariable クラスが作成されています。 以下ファイルが追加されています。 .vscode/se…

pymc4のソースコード読んでみた - “withparent”, Initial Model Class, sampling and random variable [aafa32d]

コミット 2018/05/30のコミットです。 Initial Model Class, sampling and random variable · pymc-devs/pymc4@aafa32d · GitHub 主に、pymc4の根幹となる Model と RandomVariable クラスが作成されています。 以下ファイルが追加されています。 .vscode/se…

pymc4のソースコード読んでみた - “treedict”, Initial Model Class, sampling and random variable [aafa32d]

コミット 2018/05/30のコミットです。 Initial Model Class, sampling and random variable · pymc-devs/pymc4@aafa32d · GitHub 主に、pymc4の根幹となる Model と RandomVariable クラスが作成されています。 以下ファイルが追加されています。 .vscode/se…

pymc4のソースコード読んでみた - “Context”, Initial Model Class, sampling and random variable [aafa32d]

コミット 2018/05/30のコミットです。 Initial Model Class, sampling and random variable · pymc-devs/pymc4@aafa32d · GitHub 主に、pymc4の根幹となる Model と RandomVariable クラスが作成されています。 以下ファイルが追加されています。 .vscode/se…

pymc4のソースコード読んでみた - “RandomVariable”, Initial Model Class, sampling and random variable [aafa32d]

コミット 2018/05/30のコミットです。 Initial Model Class, sampling and random variable · pymc-devs/pymc4@aafa32d · GitHub 主に、pymc4の根幹となる Model と RandomVariable クラスが作成されています。 以下ファイルが追加されています。 .vscode/se…