ちなみに環境はwindows7+Cygwinになります。
順番にやっていきましょう。
1.SWIGライブラリの利用環境の構築
まず、PyBrainを動かすためのライブラリであるswigを用意します。
参考:SWIGのインストール / SWIGメモ - サンプルコードによるPerl入門
$ cd /usr/local/src $ wget http://prdownloads.sourceforge.net/swig/swig-2.0.4.tar.gz $ tar zxf swig-2.0.4.tar.gz $ cd swig-2.0.4 $ ./configure $ make $ make install
割と普通のインストールで済みます。
2.PyBrainライブラリの利用環境の構築
次はPyBrainそのものの用意。
参考:映像奮闘記: PyBrain - a modular Machine Learning Library for Python
$ git clone git://github.com/pybrain/pybrain.git
$ cd pybrain
$ python setup.py install
こっちはgitからクローンしてきてインストール。
swigを入れておけば多分エラーは出ない(はず)。
3.PyBrainライブラリのテスト
実際にサンプルコードを書いて使ってみます。
#!/usr/bin/env python # -*- coding: utf-8 -*- from pybrain.datasets import SupervisedDataSet from pybrain.tools.shortcuts import buildNetwork from pybrain.supervised import BackpropTrainer NN = buildNetwork(2, 3, 1) #buildNetwork(入力層, 隠れ層, 出力層) DataSet = SupervisedDataSet(2, 1) #SupervisedDataSet(入力データ, 出力データ) DataSet.addSample((0, 0), (0,)) DataSet.addSample((0, 1), (1,)) DataSet.addSample((1, 0), (1,)) DataSet.addSample((1, 1), (0,)) trainer = BackpropTrainer(NN, DataSet, verbose = True) for i in range(0,100): trainer.train() TestSet = SupervisedDataSet(2, 1) TestSet.addSample((0, 1),(1,)) trainer.testOnData(TestSet, verbose = True)
実行してみるとこんな感じ。
user@computer ~/python/pybrain $ python test.py Total error: 0.626118507064 Total error: 0.543774211211 Total error: 0.474400103703 ~ 中略 ~ Total error: 0.1282241188 Total error: 0.12822205904 Total error: 0.128221424354 Testing on data: out: [0.578 ] correct: [1 ] error: 0.08925095 All errors: [0.089250954480017408] Average error: 0.08925095448 ('Max error:', 0.089250954480017408, 'Median error:', 0.089250954480017408)
ちゃんと学習できてるっぽいですね。
こんなに簡単にニューラルネットワークが使えるんならいろいろと夢が広がりそう。
*1:PyBrainとは:Python上でとっても簡単にニューラルネットワーク;NNを利用できるようになるライブラリ,2013/08/01追記