исновок поточного шару
*/void ras4etOshibki (Layer preL, double [] realniiResult)
{= new double [koli4estvo];=new double [preL.getVIxodi ()];=preL.getMassivRas4et (); (int i=0; i lt; koli4estvo; i ++)
{= 0; (funkciya == 0)
{(int j=0; j lt; preL.getVIxodi (); j ++)
{= preL.getDeltaW (i, j) * tempArray [j] * (1-tempArray [j]);=sum + temp;
}=realniiResult [i] * (1-realniiResult [i]) * sum;
} (funkciya == 1)
{(int j=0; j lt; preL.getVIxodi (); j ++)
{= preL.getDeltaW (i, j) * (1-tempArray [j] * tempArray [j]);=sum + temp/2;
}=realniiResult [i] * (1-realniiResult [i]) * sum;
} [i]=delta;
}
}
/**
Повертає раніше обчислені значення помилок нейронів шару
@ return масив помилок
*/double [] getMassivOshibok ()
{massivOshibok;
}
/**
Корегує вагові коефіцієнти нейронів шару
@ param double normaObu4 - const норма навчання
@ param double [] resultPreL - результат предидущего шару, при прямому проході
@ param double [] oshibki - помилки нейронів поточного шару
*/void izmenenieVesov (double normaObu4, double [] resultPreL, double [] oshibki)
{(int i=0; i lt; koli4estvo; i ++)
{n=(Neiron) massivNeironov.get (i); (int j=0; j lt;=resultPreL.length; j ++)
{(j!=resultPreL.length)
{(funkciya == 0) temp=oshibki [i] * normaObu4 * resultPreL [j]; (funkciya == 1) temp=0.5 * oshibki [i] * normaObu4 * resultPreL [j] ; .setVesKoef (j, temp);
}
{(funkciya == 0) temp=oshibki [i] * normaObu4 * 1; (funkciya == 1) temp=0.5 * oshibki [i] * normaObu4 * 1; .setVesKoef (j, temp);
}
}
}
} int funkciya; double sum; double delta; double temp; ArrayList massivNeironov; double [] massivRas4et; double [] massivOshibok; double [] tempArray; int input; int output; int koli4estvo;
}
ДОДАТОК В
Лістинг програмного модуля, що описує роботу нейронного елемента
/**
Об'єкт класу Neiron є математичною моделлю біологічного нейрона. Нейрон іеет не менше одного входу і не менше одного виходу. Кожному входу відповідає ваговий коефіцієнт.
Так же нейрон характеризується функцією активності.
*/classNeiron; java.awt. *; javax.swing. *; java.io. *; java.util. *; class Neiron implements Serializable
{
/**
Конструктор класу Neiron
@ param int IN зберігає кількість входів в даний нейрон
@ param int OUT зберігає кількість виходів з даного нейрон
@ param int type зберігає тип нейрона, може бути вхідним, прихованим або вихідним
*/Neiron (int IN, int OUT, String type, int fun)
{= fun;=OUT; (type == in )
{= 1; _koef=new float [vxodi]; (int i=0; i lt; vxodi; i ++)
{_ koef [i]=1.0F;
}
}
{= IN + 1; _koef=new float [vxodi]; (int i=0; i lt; vxodi; i ++)
{= Math.random (); (vk lt;=0.45) {ves_koef [i]=(float) vk;} _ koef [i]=(float) (0.45-vk);
}
}
}
/**
Встановлює нове значення кількості виходів
@ param int out - кількість виходів з даного нейрон
*/void setVIxodi (int out)
{= out;
}
/**
Повертає кількість входів в нейрон
@ return кількість входів
*/int get_vxodi ()
{vxodi;
}
/**
Повертає кількість виходів з нейрон
@ return кількість виходів
*/int get_VIxodi ()
{VIxodi;
}
/**
...