рдбрдореА рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЗрдЦ
ред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓реЗрдЦрдХ
рдкреЙрд▓_рд╕реНрдорд┐рде рдиреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдд рд╣реИ - рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдирд╣реАрдВ рд╣реИред рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЖрдкрдХреЛ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреЛрд╣реЗрдирди рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХрд╛рд▓реЗ рд░рдВрдЧ рдкрд░ рд╕рдлреЗрдж рд░рдВрдЧ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЕрдВрдХреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рдпреЗ:






рдЫрд╡рд┐рдпрд╛рдВ 45 рд╕реЗ 45 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ 45 * 45 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреАред
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ 0 рд╕реЗ 5 рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП 6 рдиреНрдпреВрд░реЙрдиреНрд╕ рд╣реЛрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕рдВрд░рдЪрдирд╛:

рдиреНрдпреВрд░реЙрди рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдЗрдирдкреБрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЕрдкрдирд╛ рд╡рдЬрди рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЖрд╡реЗрдЧ, рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реИ, рдмрджрд▓рддрд╛ рд╣реИ: рдЖрд╡реЗрдЧ = рдЖрд╡реЗрдЧ * рдХрдиреЗрдХреНрд╢рди_рд╡реЗрдЯред
рдПрдХ рдиреНрдпреВрд░реЙрди рд╕рднреА рдЗрдирдкреБрдЯреЛрдВ рд╕реЗ рджрд╛рд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд░рдХрдо рджреЗрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдмрдбрд╝реА рдХреБрд▓ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдиреНрдпреВрд░реЙрди рдЬреАрддрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рд╣рдо рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!
рдиреЗрдЯрд╡рд░реНрдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдПрдВ (C #):
//
public class Input
{
//
public Link [] OutgoingLinks;
}
//
public class Link
{
//
public Neuron Neuron;
//
public double Weight;
}
public class Neuron
{
//
public Link [] IncomingLinks;
//
public double Power { get; set; }
}
рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдирд╛ рдФрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдПрдХ рдЙрдмрд╛рдК рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИ, рдЬреЛ рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рд╕рдВрд▓рдЧреНрди рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВред рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рд░рдВрдЧ 0 рд╕реЗ 255 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 0 рдХрд╛рд▓реЗ, 255 рд╕рдлреЗрдж рд╣реИрдВ, рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рд░рдВрдЧ рдЧреНрд░реЗ рд░рдВрдЧ рдХреЗ рд╣реИрдВред
KohonenNetwork рд╡рд░реНрдЧ рдХреА рд╕реНрдерд┐рддрд┐ рдЗрдирдкреБрдЯ [] рд╕рд░рдгреА рдФрд░ рдиреНрдпреВрд░реЙрди [] рд╕рд░рдгреА рд╣реИ:
public class KohonenNetwork
{
private readonly Input [] _inputs;
private readonly Neuron [] _neurons;
...
}
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╣реИред рдлрд┐рд░, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рд╣реИрдВрдбрд▓ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╡рд╣рд╛рдВ рдЧреБрдгрд╛, рдЬреЛрдбрд╝ рдФрд░ рдЕрдзрд┐рдХрддрдо рд╣реЛрдЧрд╛:
//
public int Handle( int [] input)
{
for ( var i = 0; i < _inputs.Length; i++)
{
var inputNeuron = _inputs[i];
foreach ( var outgoingLink in inputNeuron.OutgoingLinks)
{
outgoingLink.Neuron.Power += outgoingLink.Weight * input[i];
}
}
var maxIndex = 0;
for ( var i = 1; i < _neurons.Length; i++)
{
if (_neurons[i].Power > _neurons[maxIndex].Power)
maxIndex = i;
}
// :
foreach ( var outputNeuron in _neurons)
{
outputNeuron.Power = 0;
}
return maxIndex;
}
рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдкреВрдЫрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд┐рддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрди рдкрд░ рдХреНрдпрд╛ рдЪрд┐рддреНрд░рд┐рдд рд╣реИ:

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рднрд╛рд░ рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ:
public void Study( int [] input, int correctAnswer)
{
var neuron = _neurons[correctAnswer];
for ( var i = 0; i < neuron.IncomingLinks.Length; i++)
{
var incomingLink = neuron.IncomingLinks[i];
incomingLink.Weight = incomingLink.Weight + 0.5 * (input[i] - incomingLink.Weight);
}
}
рджреЛ рдлреЛрдВрдЯ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЕрдиреНрдп рдлреЛрдВрдЯ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реИред рдЗрди рдирдВрдмрд░реЛрдВ рдкрд░ рдХрдВрдЯреНрд░реЛрд▓ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:






рдмреЗрд╢рдХ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╢рд┐рд▓реНрдк рдХреИрдкреНрдЪрд╛ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдЫрд╡рд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛, рдЦреАрдВрдЪрдирд╛ рдпрд╛ рдШреБрдорд╛рдирд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рд╢рд┐рд▓реНрдк рдХрд╛ рд╕реНрд░реЛрдд