Skip to content

Instantly share code, notes, and snippets.

@bakfoo
Last active October 20, 2016 01:39
Show Gist options
  • Save bakfoo/da96809a62b9d2709539 to your computer and use it in GitHub Desktop.
Save bakfoo/da96809a62b9d2709539 to your computer and use it in GitHub Desktop.

PyCon Jp 2015「エンジニアのためのベイズ推定入門」要項

0 チュートリアル環境の構築前の注意

確率論的プログラミングはまだ若い分野ですので,計算環境の構築方法が成熟していません.チュートリアルではpymc3やpystanを利用しますが,それらの開発者は基本的にUbuntuにAnaconda Pythonを利用してるので,まともに動作する環境はどうしてもUbuntu + Anacondaが中心になってしまいます.以下に構築前の注意を列挙します.

  • Windowsで確率論的プログラミングを行うことは,pymc3のtheanoのGPUの問題,pystanのプロセス制限の問題等,制約が多すぎて困難な道となります.Windowsを利用する場合,VMWare, VirtualBox, Vagrant等の仮想環境またはDocker等のコンテナ技術を利用してLinuxを用意するほうが精神衛生上望ましいと考えています.
  • Python環境の構築はAnacondaディストリビューションを前提とします.素のPythonから確率論的プログラミングの環境を構築することは,数々の罠に嵌まる可能性が否定できませんので推奨できません.
  • もしも,チュートリアル当日までに環境を構築できなくても問題ありません.チュートリアルはJupyter Notebookで行いますので,Docker Imageを用意するか,JupyterHub等によりWebブラウザからチュートリアルマテリアルにアクセスし実行できるようにします.
  • 皆様には大変申し訳ございませんが,JupyterHubが技術的理由により用意できませんでした.お詫びを申しあげます.代わりに以下のnbviewerで代替させていただきます.

http://nbviewer.ipython.org/github/bakfoo/pyconjp/tree/master/

1 Linux/OSX環境に直接チュートリアル環境の構築する方法

それぞれのOS環境にて,C/C++のビルドができるところまで完了している,というのがチュートリアル環境を構築するための大前提です.たとえばUbuntuでは,

apt-get install build-essential

が完了している,ということです.OSX環境であればXcodeとコマンドラインツールがインストール済みで,コマンドラインでgccが動作するということです.

1.1 Python環境の構築

以下のサイトからダウンロードしてAnaconda Pythonをインストールしてください.Python3.4を使います.

https://www.continuum.io/downloads

すでにAnaconda環境がある場合は,以下のようにpython環境を新しくすれば,既存の環境を壊すことなくチュートリアルの環境が構築できます.

conda create -n pycon python=3.4
source activate pycon
conda install anaconda

1.2 pymc3のインストール

以下の手順でpipを利用してpymc3を構築します.ポイントはtheano, pymc3ともに最新版のリポジトリのものを利用しないとバグのために動作しない,ということです.インストール時にc/c++のビルドを行います.公式インストール手順:https://pymc-devs.github.io/pymc3/getting_started/

pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
pip install --process-dependency-links git+https://github.com/pymc-devs/pymc3
pip install pasty
pip install seaborn

1.3 pystanのインストール

次に以下の手順でpipを利用してpystanを構築します.インストール時にc/c++のビルドを行います.公式インストール手順:https://pystan.readthedocs.org/en/latest/getting_started.html

pip install pystan

以上でチュートリアル環境の構築は終了です.

2 Dockerを利用してチュートリアル環境を構築する方法

2.1 VirtualBoxをダウンロードしてインストール

2.2 Docker Toolboxをダウンロードしてインストール

2.3 以下のコマンドでDockerコンテナ起動

注意: 下記にある三番目のdocker runの"[LOCAL DIR]”の部分はご自分のディレクトリを指定ください.

docker-machine create --driver virtualbox --virtualbox-memory 3081 dev

eval "$(docker-machine env dev)"

docker run -t -i -v [LOCAL DIR]:/notebook -p 8888:8888 yutakashino/pyconjp:v1.2 /bin/bash

root@d3c2644d9fb3:/notebook# git clone https://github.com/bakfoo/pyconjp.git
root@d3c2644d9fb3:/notebook# ipython notebook --ip=* --port=8888

2.4 ブラウザでアクセス

  • ipは"docker-machine ip dev"により調べる
  • portは8888
http://192.168.99.101:8888/tree/pyconjp

3 当日用意するもの

  • インターネットに繋がるPC

4 当日の進め方

  • 教材となるJupyter Notebookをダウンロード,またはDocker ImageをDocker Hubからpull,さらには今回の講習で利用するJupyterHubサーバーまたは以下のnbviewerにアクセスします.

http://nbviewer.ipython.org/github/bakfoo/pyconjp/tree/master/

  • 教材,および捕捉資料はプロジェクタで投影します.
  • Jupyter Notebookのコードを一つ一つ実行させながら,確率論的プログラミングを理解していきます.
  • 質問は随時受け付けますが,時間内に答えることが難しい質問は後に回してまとめて回答します.

5 対象者

  • ベイズ推定の基本身につけたいと思っているエンジニア
  • 確率論的プログラミングが気になっている全ての人
  • Python / NumPy / SciPy を使ったプログラミングを何度か自分の力で書き上げた方,またはそれに必要な知識を持った方
  • 大学初年度程度の数学(線形代数,確率論,統計学)の知識があると理解がスムーズになります.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment