points = [
1 1; #I
1 5;
3 1;
4 4;
-1 1; #II
-1 5;
-4 1;
-5 5;
-1 -1; #III
-1 -3;
-4 -1;
-4 -2;
1 -1; #IV
4 -1;
1 -5;
3 -5;
];
ht = size(points)(1);
wd = size(points)(2);
H1 = zeros(wd + 1, ht);
for i = 1 : size(H1)(2)
H1(3, i) = 1;
endfor
for i = 1 : (size(H1)(1) - 1)
for j = 1 : size (H1)(2)
H1(i, j) = points(j, i);
endfor
endfor
W = ones(4, 3)
Z2 = W * H1;
function resMatrix = softmax(matrix);
ht = size(matrix)(1);
wd = size(matrix)(2);
massum = zeros(1, wd);
for j = 1 : wd
for i = 1 : ht
massum(1, j) = massum(1, j) + exp(matrix(i, j));
endfor
endfor
for i = 1 : ht
for j = 1 : wd
resMatrix(i, j) = exp(matrix(i, j)) / massum(1, j);
endfor
endfor
#return resMatrix;
endfunction
H2 = softmax(Z2)
Y = zeros(size(H2)(1), size(H2)(2));
hty = size(Y)(1);
wdy = size(Y)(2);
for i = 1 : wdy
if points(i, 1) > 0 && points(i, 2) > 0
Y(1, i) = 1;
endif
if points(i, 1) < 0 && points(i, 2) > 0
Y(2, i) = 1;
endif
if points(i, 1) < 0 && points(i, 2) < 0
Y(3, i) = 1;
endif
if points(i, 1) > 0 && points(i, 2) < 0
Y(4, i) = 1;
endif
endfor
function retVal = lossFunction(H2, Y);
ht = size(H2)(1);
wd = size(H2)(2);
sum = 0;
for i = 1 : ht
for j = 1 : wd
sum += (H2(i ,j) - Y(i, j)) * (H2(i ,j) - Y(i, j));
endfor
endfor
retVal = sum;
endfunction
loss1 = lossFunction(H2, Y)
#hold on;
#X = -10 : 0.01 : 10;
#Y = -10 : 0.01 : 10;
#plot(X, 0, 'k');
#plot(0, Y, 'k');
#plot(x = -10 : 0.05 : 10, 0, y = 0, "-k");
#plot(0, y = -10 : 0.05 : 10, x = 0, "-k");
#X = linspace(-10, 0.1, 10);
#Y = linspace(-10, 0.1, 10)
#X = -10:0.1:10;
#Y = -10:0.1:10;
#plot(X, 0, y = 0, 'b-');
#plot(0, Y , x = 0, 'b-');
#for i = 1 : size(points)(1)
# if points(i, 1) > 0 && points(i, 2) > 0
# plot(points(i, 1), points(i, 2), 'r*');
# elseif points(i, 1) > 0 && points(i, 2) < 0
# plot(points(i, 1), points(i, 2), 'b*');
# elseif points(i, 1) < 0 && points(i, 2) < 0
# plot(points(i, 1), points(i, 2), 'g*');
# elseif points(i, 1) < 0 && points(i, 2) > 0
# plot(points(i, 1), points(i, 2), 'm*');
# endif
#endfor
#hold off;