From 0f589b48e4deef92feee3cdc92a780332c94aa0b Mon Sep 17 00:00:00 2001 From: Luis Marzoratti Date: Wed, 10 May 2017 20:04:38 -0300 Subject: [PATCH] get_output bug fix --- multilayer_perceptron.m | 8 +++++++- plotter.m | 11 +++++++++++ test.m | 4 ++-- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 plotter.m diff --git a/multilayer_perceptron.m b/multilayer_perceptron.m index bcece9a..d8de308 100644 --- a/multilayer_perceptron.m +++ b/multilayer_perceptron.m @@ -12,7 +12,7 @@ for m = 2:M layer_entry{m}(2:end) = activation_func(weights{m-1} * layer_entry{m-1}'); end - output(i) = activation_func(weights{M} * layer_entry{M}'); + output(i) = (weights{M} * layer_entry{M}'); i = i + 1; end end @@ -81,6 +81,12 @@ if error_per_iteration(iteration) <= tolerance return end + if error_per_iteration(iteration) <= 5e-4 + learning_factor = .02; + end + if error_per_iteration(iteration) <= 4e-4 + learning_factor = .01; + end end end diff --git a/plotter.m b/plotter.m new file mode 100644 index 0000000..e78ec19 --- /dev/null +++ b/plotter.m @@ -0,0 +1,11 @@ +source multilayer_perceptron.m +for i = 1:length(x) + for j = 1:length(y) + z(i,j) = get_output([x(i);y(j)],weights,net,f); + end +end + +plot3(terrain(:,1),terrain(:,2),terrain(:,3),'.','markersize',12) +hold on; +surf(x,y,z); +hold off; diff --git a/test.m b/test.m index 2223542..9e407b9 100644 --- a/test.m +++ b/test.m @@ -2,8 +2,8 @@ source multilayer_perceptron.m terrain = dlmread('terrain/terrain03.data'); [f,fder] = activation_tanh(1); -net = [2,200,50,10,1]; -[weights,output,mse] = multilayer_perceptron_learn(terrain(:,1:2)',terrain(:,3)',net ,f,fder,.05,1e4,2e-4); +net = [2,45,50,1]; +[weights,output,mse] = multilayer_perceptron_learn(terrain(:,1:2)',terrain(:,3)',net ,f,fder,.05,5e4,2e-4); x = [-3:0.01:3]; y = x; %dlmwrite('weights.csv',cell2mat(weights));