Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Функция обучения нейронной сети





 

При обучении предполагается, что для каждого входного вектора существует парный ему целевой вектор, задающий требуемый выход. Вместе они называются обучающей парой.

Перед началом обучения всем весам должны быть присвоены небольшие начальные значения, выбранные случайным образом. Это гарантирует, что в сети не произойдет насыщения большими значениями весов, и предотвращает ряд других патологических случаев. Например, если всем весам придать одинаковые начальные значения, а для требуемого функционирования нужны неравные значения, то сеть не сможет обучиться.

 

 

function Y3= teaching(X, d)

 

global W1 W2 W3 B1 B2 B3 eta

 

%Проход вперёд

Y1 = out(W1*X + B1);

Y2 = out(W2*Y1 + B2);

Y3 = out(W3*Y2 + B3);

 

%Проход назад

e = Y3 - d;

 

%вычисляем дельта правило

delta3 = (ones(size(Y3)) - Y3).*Y3.*e;

delta2 = (ones(size(Y2)) - Y2).*Y2.*(W3'*delta3);

delta1 = (ones(size(Y1)) - Y1).*Y1.*(W2'*delta2);

 

%Обновление весов

W1 = W1 - eta*delta1*X'; %матрица весов первого слоя

W2 = W2 - eta*delta2*Y1'; %матрица весов второго слоя

W3 = W3 - eta*delta3*Y2'; %матрица весов третьего слоя

 

B1 = B1 - eta*delta1;

B2 = B2 - eta*delta2;

B3 = B3 - eta*delta3;

 

 


 




Выводы по настройке параметров нейронной сети

По прежнему, η - коэффициент скорости обучения, служащий для управления средней величиной изменения веса. В данном примере значение η равно 0.1.

Если увеличить коэффициент до 0.75 обучение весов будет происходить быстрее.

Если взять слишком большую η, то процесс обучения будет расходиться.

Так же возникала проблема с выбором количества эпох обучения. При выборе небольшого количества эпох создаётся ощущение, что ошибка растёт и сеть построена неправильно. Если же выбрать большое количество, то может возникнуть возможность переобучения сети.

 

Список всех используемых функций

Написанные функции:

· out – функция активации;

· teaching – функция обучения;

· Toline – функция записи матрицы в строку;

Встроенные функции Matlab:

· rand (n,m) – заполняет матрицу размерами nxm случайными числами из интервала, по умолчанию, (0,1);

· zeros (n,m) – создает нулевую матрицу размерами nxm;

· strcat - горизонтальное объединение строк;

· dlmread – чтение из ASCII-файла;

· logsig – сигмоидальная функция активации;

· size – возвращает размер массива;

· ones – формирование массива единиц;

· imread - считывает изображение из файла;

· im2bw - заменяет все пиксели входного изображения на 0 (черный цвет) и 1 (белый цвет);

· dlmwrite - записывает матрицу в ASCII-файл;

· str2num – преобразует строку в число;

· plot – построение графика.

 


 

Date: 2015-06-11; view: 313; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.013 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию