Исследование алгоритмов обучения нейронных сетей "с учителем"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
В°тель имеет возможность убедиться, что значения на входе сети достаточно точно определяют позицию точки максимального возбуждения на ее выходе.
Необходимо отметить, что обучение без учителя гораздо более чувствительно к выбору оптимальных параметров, нежели обучение с учителем. Во-первых, его качество сильно зависит от начальных величин синапсов. Во-вторых, обучение критично к выбору радиуса обучения и скорости его изменения. И наконец, разумеется, очень важен характер изменения собственно коэффициента обучения. В связи с этим пользователю, скорее всего, потребуется провести предварительную работу по подбору оптимальных параметров обучения сети.
Несмотря на некоторые сложности реализации, алгоритмы обучения без учителя находят обширное и успешное применение. Возникающее после обучения разбиение на классы может в случае необходимости уточняться с помощью обучения с учителем. По сути дела, по алгоритму обучения без учителя функционируют и наиболее сложные из известных на сегодняшний день искусственные нейронные сети - когнитрон и неокогнитрон, - максимально приблизившиеся в своем воплощении к структуре мозга. Однако они, конечно, существенно отличаются от рассмотренных выше сетей и намного более сложны. Тем не менее, на основе вышеизложенного материала можно создать реально действующие системы для распознавания образов, сжатия информации, автоматизированного управления, экспертных оценок и много другого.
ЗАКЛЮЧЕНИЕ
Результатом написания данной курсовой работы стала программная реализация алгоритмов обучения нейронных сетей "с учителем".
Серия работ М. Г. Доррера с соавторами посвящена исследованию вопроса о возможности развития психологической интуиции , заключающийся в исключении построения описанной реальности. Он позволяет сократить и упростить работу над психодиагностическими методиками.
Нейронные сети широко используются в химических и биохимических исследованиях. В настоящее время нейронные сети являются одним из самых распространенных методов хемоинформатики , благодаря чему они активно используются как для прогнозирования физико-химических свойств и биологической активности химических соединений, так и для направленного дизайна химических соединений и материалов с заранее заданными свойствами, в том числе при разработке новых лекарственных препаратов.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.Стюарт Рассел, Питер Норвиг Искусственный интеллект: современный подход (Artificial Intelligence: A Modern Approach). 2-е издание. Вильямс, 2006 г.
.Тархов Д.А. Нейронные сети. Модели и алгоритмы. Радиотехника, 2005 г.
3.Рутковская.Д. Нейронные сети, генетические алгоритмы и нечёткие системы, Горячая линия-Телеком, 2004 г.
.Усков А.А., Кузьмин А.В. Интеллектуальные технологии управления. Искусственные нейронные сети и нечеткая логика, Горячая линия-Телеком,2004 г.
5.Иванов А.И. Нейросетевые алгоритмы биометрической идентификации- Радиотехника, 2004 г.
6.С.Хайкин
7.Л.Г.Комарцова, А.В.Максимов. Нейрокомпьютеры. М., Изд-во МГТУ им. Баумана, 2002 г.
.Круглов, Борисов - Искусственные нейронные сети. Теория и практика, 2002 г.
9.В.А.Головко. Нейронные сети: обучение, организация и применение. М., ИПРЖР, 2001 г.
.В.А.Головко. Нейронные сети: обучение, организация и применение. М., ИПРЖР, 2001 г.
ПРИЛОЖЕНИЕ
Листинг 1. Фрагмент заголовочного файла с описаниями классов и функций
// FILE neuro_mm.h
#include "neuro.h" // описание базовых классов
class LayerUL;NetUL;NeuronUL: public NeuronFF
{ friend LayerUL;NetUL;delta;inhibitory;:(unsigned num_inputs);(void){delta=0.;};
~NeuronUL();
// int IsConverged(void); // можно реализоватьvoid Propagate(void);Equalize(void);Normalize(void);CountDistance(void);SetInhibitory(unsigned in){inhibitory=in;};GetInhibitory(void){return inhibitory;};
};LayerUL: public LayerFF
{ friend NetUL;_FAR *neurons;neuronrang;allocation;imax, imaxprevious1;:(unsigned nRang, unsigned nSinapses);(NeuronUL _FAR *Neu, unsigned nRang,nSinapses);(void)
{=NULL; neuronrang=0; allocation=EXTERN;=imaxprevious1=-1;
};
~LayerUL();Propagate(void);Randomize(float);Normalize(void);NormalizeSynapses(void);Equalize(void);void Show(void);void DigiShow(void);void PrintSynapses(int,int);void PrintAxons(int x, int y, int direction);TranslateAxons(void);*GetNeuron(unsigned n)
{(neurons && (n< f); SetInhibitionFreshold(float float in); SetInhibitionUL(int void md); SetMaxDistanceUL(float ac); SetAccreditationUL(int d); SetDSigmaUL(unsigned unsigned lr); SetLearnRateUL(float Al); SetSigmoidAlfaUL(float st); SetSigmoidTypeUL(int int }; **Net); Reverse(NetUL step); *In, ConvexCombination(float *mv); _FAR NormalizeNetInputs(float AddNoise(void); In); Change(float virtual x="0,...){};" PrintSynapses(int l){learncycle="l;};" SetLearnCycle(unsigned *IN); LoadNextPattern(float *file); char LoadFromFile(unsigned SaveToFile(unsigned Equalize(void); NormalizeSynapses(void); Normalize(void); Randomize(float); Learn(void); *mvalue); SetNetInputs(float Propagate(void); FullConnect(void); } NULL; return else layers[n]; {if(n
Листинг 2. Тексты функций помещен