close

Вход

Забыли?

вход по аккаунту

?

lab2

код для вставкиСкачать
Лабораторная работа №2
Тема: предсказание числовых последовательностей нейросетевыми методами.
Цель: Ознакомиться, проанализировать и получить навыки реализации модели нейронной сети для задачи предсказания числовых последовательностей.
Задана числовая последовательность: (x0, ... xq), где xi = f(t+i*h). Реализованная модель должна после обучения на выборке из L = q-p образов (xk, ... xk+p), где p < q и k = 0, ... q-p-1, эталонными значениями для которых являются xk+p+1, должна обеспечивать прогнозирование p+2-го значения, для произвольной последовательности из p+1 значений. Модель должна обеспечивать масштабирование значений заданной последовательности для любого диапазона, если того требует используемая функция активации. Если не поддерживается автоматический расчёт элементов последовательности для произвольной функции f, то предусмотреть чтение последовательности из файла.
Интерфейс к модели должен предусматривать:
* возможность явного указания p;
* возможность указания максимально допустимой среднеквадратической ошибки выборки;
* возможность указания максимально допустимого шага обучения;
* возможность указания максимально допустимого числа итераций обучения;
* возможность указания включения/отключения режима обязательного зануления, раздельно для первой и для каждой последующей итерации, контекстных нейронов как при обучении, так и при прогнозировании;
* возможность автоматического прогнозирования n значений от p+2 по p+1+n;
* возможности вывода значений весов и порогов для каждого слоя для текущей итерации;
Для данной лабораторной работы в качестве исходных входных данных задаются значениями:
1) Последовательность X размерностью k=q+1 (где q  0), по которой будет обучаться данная сеть. Также стоит учесть, что k  (p + L), где p, L описаны ниже. Для разных примеров это должны быть следующие последовательности:
a) Ряд Фиббоначи;
b) Факториальная функция;
c) Периодическая функция (на выбор);
d) Степенная функция (на выбор).
Примеры:
1, 0, -1, 0, 1, 0, -1, ...
1, 2, 3, 5, 8, 13, 21, ...
1, 2, 4, 8, 16, 32, 64, ...
1, 4, 9, 16, 25, 36, 49, 64, ...
1, 2, 5, 15, 52, 203, 877, 4140, 21147, ...
1, 2, 6, 24, 120, 720, 5040, 40320, ...
1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, ...
и т.д.
2) Ошибка е, где 0 < е  0.1;
3) Коэффициент , где 0 <   0.1 и   е;
4) Количество рядов в матрице обучения p, где p  1;
5) Количество строк в матрице обучения L, где L  1;
6) Количество шагов обучения N , которые может пройти сеть. Где N  1, но рекомендованное количество 1000000.
7) Последовательность Z размерностью r (где r  1), по которой будет выполняться результат Z(r + 1) элемента. Таких должно быть последовательностей Z(i), где i  1.
Например, при реализации алгоритм модели сети Элмана с линейной функцией активации, составляем матрицу Y, по которой будет проводиться обучение. Размерность матрицы будет (p + 1)*L. Рассмотрим это на Примере 1.
Пример 1.
Обучаемая последовательность:1, 2, 4, 8, 16, 32, 64;
p = 3;
m = 4.
Матрица обучения будет иметь следующий вид:
Y(i)1 2 4
Y2 4 8
4 8 16
8 16 32
Далее генерируем матрицу весов W на первом слое, которая будет иметь размер (p + m)xm. Генерация матрицы происходит только один раз. Значения случайного числа -1  Wjk  1.
Также генерируем матрицу весов W/ на втором слое, которая будет иметь размер mx1. Генерация матрицы происходит только один раз. Значения случайного числа -1  W/ k  1.
Создаём входной вектор обучения. Для этого каждого Y(i).
Выводятся результаты следующих вычислений:
- исходные данные;
- матрица весов после обучения на первом слое;
- матрица весов после обучения на втором слое;
- количество шагов обучения;
- ошибка обучения;
- ответы для всех заданных последовательностей, по которым будут производиться результат Z(i)(r + 1) элемента.
Задания:
1. Реализовать модель сети Элмана с линейной функцией активации.
2. Реализовать модель сети Джордана с линейной функцией активации.
3. Реализовать модель сети Джордана-Элмана с линейной функцией активации.
4. Реализовать модель сети Элмана с сигмоидной функцией активации.
5. Реализовать модель сети Джордана с сигмоидной функцией активации.
6. Реализовать модель сети Джордана-Элмана с сигмоидной функцией активации.
7. Реализовать модель сети Элмана с логарифмической функцией активации.
8. Реализовать модель сети Джордана с логарифмической функцией активации.
9. Реализовать модель сети Джордана-Элмана с логарифмической функцией активации.
10. Реализовать модель сети Элмана с функцией активации гиперболичекого тангенса.
11. Реализовать модель сети Джордана с функцией активации гиперболичекого тангенса.
12. Реализовать модель сети Джордана-Элмана с функцией активации гиперболичекого тангенса.
Литература:
1. Головко В.А. Нейроинтеллект: теория и применение. Книга 1. Организация и обучение нейронных сетей с прямыми и обратными связями. Брест, - БПИ; 1999.
2. Головко В.А. Нейроинтеллект: теория и применение. Книга 2. Самоорганизация, отказоустойчивость и применение нейронных сетей. Брест, - БПИ; 1999.
3. Осовский С. Нейронные сети для обработки информации. М., - "Финансы и статистика"; 2002.
Документ
Категория
Рефераты
Просмотров
40
Размер файла
131 Кб
Теги
lab2
1/--страниц
Пожаловаться на содержимое документа