Neural Network Toolbox

ニューラルネットに関して、Javaで作られたオープンソースのライブラリ(Joone)でちょこっと実験していたんですが、めんどくさくなってきたのでどこかにMatlabのNeural Network Toolboxが入ってないかなー、と探したら、研究室のマシンにインストールされていたのでした。そこで、それを使ってXORの実験。Matlabだと融通きかないところはあるけど、Javaで書くよりはるかに簡単でした。
% create new feedforwarding layers (two inputs of range [0, 1],
% three hidden layer, and one output layer
net = newff([0 1; 0 1], [3 1], {'logsig', 'logsig'});

% problem and target (XOR gate)
P = [0 0 1 1;   0 1 0 1];
T = [0 1 1 0];

% before training
Y = sim(net, P)

% training
net.trainParam.epochs = 100;
net = train(net, P, T);

% after training
Y = sim(net,P)