Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОНС / лабораторные работы / Методички / НКС_лаб_раб_№1_1_2012_ОНС.docx
Скачиваний:
44
Добавлен:
27.04.2015
Размер:
66.23 Кб
Скачать

16

Лабораторная работа №2

ИССЛЕДОВАНИЕ МНОГОСЛОЙНОГО ПЕРСЕПТРОНА

С ОБУЧЕНИЕМ ВР-АЛГОРИТМОМ

Часть 1

Формализация задачи, решаемой на многослойном персептроне

1. Цель работы

Исследование методов формализации задач, решаемых с помощью многослойных персептронов (МСП). В результате выполнения работы студент обучается правилам формирования обучающей выборки для нейронной сети МСП, знакомится с принципами подготовки входных и выходных данных на нейронную сеть.

2. Задание

2.1. Изучить основные правила формирования обучающей выборки на МСП и подготовки входных и выходных данных.

2.2. Выполнить формализацию задачи для заданной предметной области.

2.3. Сформировать обучающую выборку на многослойный персептрон.

2.4. Создать нейропроект в программе NeuroPro.

3. Рабочее место

Работы выполняются на ПЭВМ. При выполнении работы используется программа NeuroPro 0.25.

4. Теоретическая часть

4.1. Общий алгоритм решения задач с помощью МСП

Многослойный персептрон можно построить для решения различных классов задач. Причем связи в нейронной сети (НС) могут формироваться как в явном виде – формируемые НС (решение дифференциальных уравнения, воспроизведение функций, цифровая обработка сигналов и др.), так и в неявном – обучаемые сети (классификация, распознавание образов, звуковых сигналов и т.п.). В данной лабораторной работе исследуются обучаемые НС для задач классификации и распознавания.

Для настройки обучаемых нейронных сетей на решение определенной задачи необходимо составить множество примеров – обучающее множество (обучающую выборку (ОВ)). Эта выборка составляется экспертами в данной предметной области. В зависимости от типа используемой сети выборка может состоять:

1) из наборов входных данных (входных векторов) и эталонных выходных сигналов (целевых векторов) i,Di), i=1,…,m;

2) лишь из входных векторов Аi, i=1,…,m.

Многослойный персептрон требует для своего обучения выборку, состоящую из пар векторов.

Общий алгоритм решения задачи на многослойном персептроне можно представить как совокупность следующих действий.

1. Определить, какой смысл вкладывается в компоненты входного вектора А, подаваемого на вход НС. Входной вектор должен содержать формализованное условие задачи, т.е. всю информацию, необходимую для получения ответа.

2. Выбрать выходной (целевой) вектор D таким образом, чтобы его компоненты содержали полный непротиворечивый ответ задачи.

3. Выполнить формализацию векторов обучающей выборки, задавая, в зависимости от решаемого класса задач, следующие параметры:

- обоснование способа интерпретации ответа сети (целевого вектора);

- форматы входного и целевого векторов;

- диапазон изменения компонент этих векторов;

- способы кодирования компонент этих векторов;

- таблицу эталонных образов и т.п.

4. Выполнить формальное описание параметров обучающего множества.

5. Сформировать набор обучающих примеров (обучающую выборку), состоящий из совокупности входных А и соответствующих им целевых D векторов.

6. Определить модели нейронов сети, т.е. задать структуру нейрона, активационную функцию, функцию, вычисляемую адаптивным сумматором. При этом желательно учесть специфику задачи, т.к. удачный выбор сократит время обучения.

7. Задать диапазон изменения весовых коэффициентов и пороговых значений, учитывая множество значений выбранной функции активации.

8. Определить структуру нейронной сети, т.е. выбрать число элементов сети (слоев и нейронов в каждом слое) и топологию связей (наличие обратных, перекрестных и латеральных связей).

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

10. Определить подходящую стратегию обучения (алгоритм, по которому сеть будет обучаться, метод оптимизации, метод предъявления примеров), задать параметры алгоритма обучения и начальные значения.

11. Сформулировать критерий остановки (останова) обучения, т.е. задать параметры момента завершения процесса обучения.

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

13. Протестировать обученную сеть, вычислить ошибку и оценить качество работы сети (диапазон применения) на подтверждающем (тестирующем) множестве. Если сеть удовлетворяет предъявляемым к ней требованиям, то процесс проектирования сети завершается. Сеть готова решить задачи того типа, которым она обучена.

14. Использовать сеть в рабочем режиме, т.е. подавать на вход сети условия задачи в виде вектора X. Выданный сетью выходной вектор Y и даст формализованное решение задачи.

Данный алгоритм можно разбить на три этапа. Шаги 1-5 алгоритма отражают этап формализации задачи, для решения которой строится нейронная сеть. Этап построения структуры МСП и обучение сформированной нейронной сети заключается в пунктах 6-13. Заключительным этапом является этап решения задачи на построенной нейронной сети (шаг 14).

4.2. Формализация задачи

Прежде чем приступить к формированию обучающей выборки необходимо выполнить формализацию (формальное описание) той задачи, для решения которой строится НС. Под формализацией в данном случае понимается полное математическое описание входных и целевых векторов, а также задание параметров всей обучающей выборки. Условно можно разделить этот процесс на три этапа:

1) формализация входных векторов;

2) формализация целевых векторов;

3) формализация обучающей выборки в целом.

Рассмотрим каждый из этих этапов в отдельности.

4.2.1. Формальное описание входного вектора

Задача формализации, т.е. выбора смысла, которым наделяются компоненты входного и целевых векторов, пока решается только человеком на основе практического опыта. Жестких алгоритмов формализации для нейронных сетей еще не создано. Рассмотрим, как выбирается смысл входных и выходных данных в наиболее распространенных случаях.

Каждая прикладная задача, решаемая на НС, имеет определенные особенности в средствах обработки и представления данных, потому вначале необходимо выполнить априорный анализ объекта исследований. Если этот этап будет исключен, то возможно получение неадекватных результатов в процессе эксплуатации сети. Технология априорного анализа предметной области и решаемой прикладной задачи при нейросетевом моделировании отличается от априорных процедур при статистическом моделировании. Она включает следующие действия:

- обобщение опыта и профессиональных знаний об объекте;

- получение предварительных рекомендаций от экспертов;

- изучение литературных источников и существующих прототипов;

- сбор данных и формирование обучающей выборки для нейросети.

Обучающая выборка представляется в виде базы данных. Очевидно, невозможно предусмотреть все варианты интерфейса между пользователем (разработчиком НС) и этой БД, т.к. примеры могут иметь числовые поля, содержать графическую информацию или представлять собой текст. Наиболее подходящим форматом представления входной информации является формат реляционных (табличных) баз данных.

Выбор переменных, т.е. компонент входного вектора (по крайней мере, первоначальный) осуществляется интуитивно на основе знаний о предметной области, с которой предстоит работать нейронной сети. При формировании ОВ не всегда удается точно определить, сколько и какие входные данные нужно подавать на вход сети при обучении. В случае недостатка данных сеть не сможет обучиться решению задачи. Проблема усугубляется тем, что в большинстве плохо формализуемых областей человеческой деятельности (например, медицина) эксперт часто не может точно сказать, какие именно данные являются важными. Поэтому на вход сети подается избыточный набор данных. Тем не менее, это может вызвать увеличение времени обучения и снижение качества работы сети.

Понижение размерности входного вектора обычно осуществляется тремя способами:

- более тесное взаимодействие с экспертом и доскональное изучение предметной области;

- определение влияния (значимости) входных сигналов на выходной вектор и удаление малоинформативных параметров;

- использование методов понижения размерности с целью преобразования (чаще всего линейного) входных данных так, чтобы та же информация была записана с помощью меньшего числа переменных.

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

1) преобразование входных/выходных данных в числовые значения;

2) приведение входных и выходных данных к требуемому диапазону значений.

Рассмотрим каждый из этих вопросов.

Соседние файлы в папке Методички