Perceptron

Váš prehliadač nepodporuje element canvas.
%

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]);