Perceptron
Program
// funkcia na zistenie celkovej chyby
// vrati, kolko % je zle klasifikovanych
function getTotalError()
{
var total_nets = nets.length;
var wrong = 0;
for(var i = 0; i < total_nets; i++)
{
var error = getError(nets[i]);
if(error != 0)
wrong++;
};
return wrong / total_nets;
}
// funkcia na zistenie chyby pre konkretny vstup
function getError(net)
{
// vypocita vystup
var out = w[0]*net.x + w[1]*net.y + w[2]*bias;
// klasifikuje do triedy
var group = (out > threshold) ? 1 : 0;
// vrati chybu
return net.z - group;
}
// ucenie neuronu
function educate()
{
// prejde cez vsetky vstupy
for(i = 0, len = nets.length; i < len; i++)
{
// zisti chybu pre vstup
var error = getError(nets[i]);
// ak je chyba, tak zmeni vahy
if(error != 0)
{
w[0] += learning_rate * error * nets[i].x;
w[1] += learning_rate * error * nets[i].y;
w[2] += learning_rate * error * bias;
}
}
}
// prejde vsetky iteracie
for(var k=0; k < max_iterations; k++)
{
// nauc perceptron
educate();
// zisti chybu
error = getTotalError();
// ak je postacujuca chyba, tak skonci
if(error < max_error)
break;
}
// nakresli ciaru
drawLine(w[0], w[1], w[2]);