2009年9月7日月曜日

AND演算(AND operation)でSVM(Support Vector Machine)で解いてみる

%----------------- MATLABソース -----------------%
% AND演算でSVM(サポートベクターマシン)で解いてみる
X=[0 0; 0 1; 1 0; 1 1; ];
G=[0; 0; 0; 1;];
% クロスバリデーションインデックスの生成
[train, test] = crossvalind('holdOut',G);
cp = classperf(G);
% サポートベクトルマシーンクラスタリングの学習
svmStruct = svmtrain(X(train,:),G(train),'Kernel_Function','polynomial', 'showplot',true,'Method','LS');
%svmStruct = svmtrain(X(train,:), G(train), 'showplot', true, 'Kernel_Function', 'polynomial', 'Polyorder', 3);
%r=svmtrain(train_set,%train_response,'Kernel_Function','rbf','showplot','true');
%svmStruct = svmtrain(X(train,:), G(train), 'showplot', true, 'Kernel_Function', 'quadratic');

% サポートベクトルマシーンを利用したクラスタリング
classes = svmclassify(svmStruct,X(test,:),'showplot',true);
grid on
% クラスタリングのパフォーマンスを計算
classperf(cp,classes,test);
% 正答率を表示する
cp.CorrectRate
%----------------- MATLABソース -----------------%

2009年2月6日金曜日

XOR(排他的論理和)でニューラルネットワークで解いてみる


%----------------- MATLABソース -----------------%
%訓練のための入力データ(XOR)
P = [ 0 0 1 1; 0 1 0 1 ];
%ターゲットデータ(XOR)
T = [0 1 1 0];
%ニューロンモデル
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingd');
%訓練パラメータ
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
net.trainParam.epochs = 900;
net.trainParam.goal = 1e-5;
%訓練
net = train(net, P, T);
%シミュレーション
S = sim(net,P)
%----------------- MATLABソース -----------------%
実行結果

S =

0.0013 1.0008 0.9954 0.0040