Python + OpenCV3の環境を構築する

機械学習を学習したり, 具体的に深層学習とくにCNNを使ってみようと思った時に
画像の読み込みや簡単な前処理、後処理にはOpenCVが非常に便利です.
そこでPython + CpenCV3の環境を構築してみました.

まずは、いつものようにAnacondaで専用の仮想環境を用意します.
仮想環境の名前をopencvとして, 以下のコマンドを実行.
conda create -n opnecv python=3.5 anaconda
Pyhtonのバージョンを3.5にした理由は,OpenCV3が3.5にしか対応していないからです.

次に, OpenCVをこの仮想環境にインストールします.

まずは先ほど作成した仮想環境を有効にします.
activate opencv
次に以下のコマンドでOpenCV3をインストールします.
conda install -c menpo opencv3

それ以外にもmatplotlib, numpyなどをインストールし, jupyter notebookを
使用すするのでそれもインストールしておきました.
conda install matplotlib
conda install numpy
conda install jupyter notebook

正常にインストールできたかどうかは, pythonを立ち上げて
import cv2
でエラーでないかどうかで判断できます.

東大の松尾研究室, Deep Learning基礎講座やってみた

東大の松尾研究室がDeep Learning基礎講座を開設しているらしいです.
以下のブログに触発されて私も早速ためしてみました.
karaage.hatenadiary.jp

すると確かに上のブログに書いてあるようにlecture_chap05_exercise_master.ipynbのTensorBoardの可視化のところでエラーがでました.
Tensorflowをいったんdeleteして再インストールすればいいのでしょうか?
今のところエラーの解消の方法がわからないです.

Kerasでmnist.load_data()したときにデフォルトでデータがセーブされる場所

WindowsでKerasのサンプルを実行したときの話です。
例えばmnist_cnn.pyを実行するとネットワークからmnistデータセットをはじめにロードしますが、そのファイルがおいてある場所は、
C:\Users\username\.keras\datasets
になります.

以下のソースコードを読めばデフォルトで置かれる場所がわかります.
C:\Users\username\Anaconda3\envs\envname\Lib\site-packages\keras\datasets\mnist.py

Kerasのバックエンドを変更する方法

Anacondaでpythonとtensorflow及びKerasをインストールしてpythonからimprot kerasを実行するとバックエンドがなぜかtheanoになってしまう問題の解決方法です。

解決方法:(環境変数を書き換える)

C:\Users\someone\Anaconda3\envs\someEnv\etc\conda\activate.d
以下にある, keras_activate.batを以下のように書き換える.
set "KERAS_BACKEND=tensorflow"
その後、いったんanaconda 環境をdeactivateして再びactivateするとkerasのバックエンドがtensorflowになります.


どうやらコマンドラインから
activate someEnv
とすると、anacondaの環境をactivate する際に
C:\Users\someone\Anaconda3\envs\someEnv\etc\conda\activate.d\keras_activate.bat
が実行されて
KERAS_BACKENDでtheanoがセットされてしまうようです。
Anaconda navigatorから仮想環境のコマンドプロンプトを立ち上げた場合にはこのbatch fileは実行されないので、kerasのデフォルトのバックエンドであるtensorflowがactiveになります。

ちなみにですが、上記環境変数とは別にkeras.jsonにKerasのバックエンドをしてしている記述があり、環境変数がない場合にはこちらが有効となるようですので、何かの時のために覚えておくといいと思います。
詳しくは以下のサイトを参照
qiita.com

機械学習の論文を効率よく読む方法

機械学習に関しては日々多くの論文が投稿されていて、すべてに目を通すことは時間的に難しいです。

以下のサイトでは、投稿される機械学習関連の論文をリスト化し簡単なサマリーが付けられているので
このサイトを見れば世の中のトレンドを知ることができます.
arXivTimes Indicator

このサイトに関する解説は以下を参照
[medium.com

arxivtimesのGitHub 機械学習関係の論文を調査し、共有するためのリポジトリ
github.com

arxivtimesのtwitter
twitter.com

利用するだけではなくて、余裕があればcontributeしたいです

proxyの設定

windowsのターミナルでpipでパッケージのインストールができないとき、
proxyの設定がされていなことが原因の場合があります.

解決方法:
ウィンドウズのシステム環境変数に以下の二つを追加すればよい.
https_proxy
http_proxy

「これならわかる深層学習 入門」 瀧 雅人著 の正誤表

瀧 雅人さんの「これならわかる深層学習 入門」 を読み始めました。
本屋でパラパラと見たところ、機械学習や深層学習に関して非常に丁寧に数式を使って説明してあるようでしたのできちんと一冊読んでみようという気になりました。
まだ最後まで読んでいませんが、いくつかタイポや書き間違えらしき部分がありましたので、自分用のメモも兼ねて書いておきます。

(誤) -----> (正) という書き方で書いています

[2017/1/13追記]
以下の正誤表でアスタリスクが不要としていましたが、Chapter1に「アスタリスクのついた節は若干アドバンスな内容ですので、最初は読み飛ばしてかまいません.」という記述があるのを読み飛ばしていましたので、正誤表を訂正しました.


[Chapter 2]

p.15 式 (2.11)右辺の \mathrm{x}_nはイタリック体の x_n

p15 式 (2.15)は以下のように修正
 E_{\mathcal{N}} [ \frac{1}{N} \sum_{n=1} ^N (x_n -\hat{\mu} )^2 ]
  =  E_{\mathcal{N}} [ \frac{1}{N} \sum_{n=1} ^N \left( (x_n - \mu )^2 - 2(x_n - \mu)(\hat{\mu} - \mu ) - (\hat{\mu} - \mu)^2 \right) ]

p.16 式 (2.20)
 \frac{1}{N^2} (\cdots) ----->  \frac{1}{N} (\cdots)

p.18 式 (2.25)の2行下
 \log L(\theta) = -N \log \sigma^2 - \cdots ------>  \log L(\theta) = -\frac{N}{2} \log \sigma^2 - \cdots

p.26 (2.45)の2行下
 L = (\omega) ----->  L(\omega)

p.32
式(2.59)の3行下
対数オッズ比が1を超えると -------------------> 対数オッズ比が0を超えると

p.35 定義2.5
 P(C_k | x_n) の前に \logが抜けている

[Chapter 4]
p.81 4.2.7 Adamの2行下
式(4.26) -----> 式(4.27)

p.85 式(4.45)の2行下
同時に第 l層のユニットと結合している l+1層の -------> 同時に第 l+1層のユニットと結合している l層の

p.86 式(4.47)の1行下
 P( w^{(l-1)}) = P(- w^l) --------->  P( w^{(l-1)}) = P(- w^{(l-1)})

p.91 4.4.3節のタイトル文章のアスタリスクが不必要
[Chapter 5]
p.100
式(5.15), 式(5.16), 式(5.17)の \omegaの右肩の添え字のカッコが不必要

p.107
式(5.30)
 z = \sum_{k} ^{'} \cdots ------------>  z = \sum_{k'}  \cdots

p.109
式(5.32)の3行目exponentialの肩のカッコの数が合っていない.
式(5.33)の左辺も同様.

p.111 2行目文中の式
 p/(1-p) --------------->  (1-p)/p

[Chapter 6]
p.116
式(6.4)
d -----> y

p.119
(図 6.1)で \omega^{(l-1)} ----->  \omega^{(l)}

p.119 3行目の文中の式
 \omega^{(l)} (u^{(l-1)}) ----->  \omega^{(l)}f (u^{(l-1)})

p.119
式(6.9)
 \delta^{(l)} = \frac{\partial E}{\partial u^{(l)}} \frac{\partial u^{(l+1)} }{\partial u^{(l)}}=\cdots ---->  \delta^{(l)} = \frac{\partial E}{\partial u^{(l+1)}} \frac{\partial u^{(l+1)} }{\partial u^{(l)}}=\cdots

[Chapter 7]
p.146
演習 7.1
 l^{'} < l ----->  l < l^{'}

p.149
7.5 デノイジング自己符号化器 1行目
4.5節 ------> 5.5節

p.162
8.2.3, 8.2.4節のタイトルのアスタリスクが不必要


また、読み進めて気づけば追加していきます.