Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Прогнозирование умножения с помощью нейронных сетей




Инструмент «Нейронные сети» используют для прогнозирования и решения задач классификации. Они применяются в случаях, когда между результатом и входными факторами существуют нелинейные зависимости.

Рассмотрим пример прогнозирования результата умножения двух чисел с помощью файла «multi.txt». В данном файле содержатся поля «М1», «М2» – в виде множителей, «Multi» – их произведение.

Импортировав содержимое данного файла, мы получим следующую таблицу, реальные данные.

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

На втором шаге определим назначение полей «М1» и «М2» как входные, а поле «Multi «– выходное.

На третьем шаге предлагается настроить нормализацию полей, т.е. преобразовать данные к виду наиболее подходящему для обработки в Deductor Studio. При обработке с помощью инструментов «Нейронная сеть», «Линейная регрессия» и «Карты Кохонена» данные, поступающие на вход, должны иметь числовой тип (т.е. непрерывный характер), а их значения должны быть распределены в определенном диапазоне.

Существуют три вида нормализации полей:

- линейная – линейная нормализация исходных значений;

- уникальные значения – преобразование уникальных значений в их индексы;

- битовая маска – преобразование дискретных значений в битовую маску.

Копка «Настройка нормализации» в левой нижней части окна позволяет настроить параметры нормализации выбранного поля. Рассмотрим параметры нормализации для числовых (непрерывных) полей, соответствующего линейному виду нормализации.

Во вкладке «Параметры», установив галочку «Привести к диапазону», можно расширить диапазон значений, который принимает выделенный входной фактор или выходной фактор.

Для нашего примера текущие параметры вполне приемлемы, и мы переходим к следующему шагу.

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

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

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

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

Тестовое множество содержит записи как из входных данных, так и из выходных, и предназначено для проверки результатов обучения.

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

В столбце «Порядок сортировки» можно определить порядок следования записей внутри соответствующего множества.

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

Четвертый шаг предусматривает определение структуры нейронной сети – количество скрытых слоев, количество нейронов в скрытых слоях и активационную функцию нейрона.

Во вкладке «Нейроны в слоях» указано количество нейронов во входном и выходном слое, возможность определения количества скрытых слоев и нейронов в этих слоях. В таблице, расположенной ниже, необходимо указать количество нейронов в каждом скрытом слой.

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

Во вкладке «Активационная функция» указывается тип функции активации нейронов и ее крутизну. В раскрывающемся списке выбираем соответствующую функцию активации и либо с помощью счетчика, либо с помощью ползунка определяем ее крутизну. Результат отображается на графике.

В структуре нейронной сети укажем в качестве количества нейронов в скрытом слое – 1, остальные параметры остаются по умолчанию.

Следующий шаг предусматривает настройку параметров обучения и выбора алгоритма обучения.

Чтобы настроить тот или иной алгоритм необходимо выбрать его во вкладке «Алгоритм», а в «Параметрах» настроить требуемым образом.

При алгоритме обратного распространения ошибки (Back-Propagation) настраиваются два параметра:

скорость обучения определяет величину шага при итерационной коррекции весов в нейронной сети (0…1 рекомендуемый интервал);

момент учитывает величину последнего изменения веса при коррекции весов (0…1 интервал).

Для алгоритма Resilient Propagationтребуется настроить параметры:

шаг спуска - коэффициент увеличения скорости обучения. Задается шаг увеличения скорости обучения в случае не достижения алгоритмом оптимального результата;

шаг подъема - коэффициент уменьшения скорости обучения. Задается шаг уменьшения скорости обучения в случае пропуска алгоритмом оптимального результата.

Здесь тоже никаких изменений не вносим, переходим к следующему этапу.

Шестой шаг при обучении нейронной сети предполагает ввести условия остановки процесса обучения.

«Считать пример распознанным, если ошибка меньше» - критерием остановки обучения является условие, когда эталонное и реальное значение выхода сети различаются на число, не превосходящее заданного значения.

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

Кроме вышеперечисленных условий остановки обучения можно прекратить обучение, установив соответствующие ошибки непосредственно для обучающего и тестового множества:

- средняя ошибка меньше - средняя квадратичная ошибка на обучающем множестве или тестовом множестве меньше заданного значения;

- максимальная ошибка меньше - максимальная квадратичная ошибка на обучающем множестве или тестовом множестве меньше заданного значения;

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

Установим, что следует считать пример распознанным, если ошибка меньше 0,005, а количество эпох установим равным 10000.

Седьмой этап представляет собой процесс обучения модели нейронной сети.

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

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

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

Собственно запустить процесс обучения необходимо с помощью кнопки «Пуск», а приостанавливает процесс кнопка «Пауза».

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

После завершения процесса обучения выберем в качестве визуализатора «Диаграмму», «Диаграмму рассеивания», «Граф нейросети» и «Что - если».

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

Также сравнить прогнозируемые данные с эталонными можно на простой диаграмме, выбрав поля «Multi» и «Multi_OUT»/

Визуализатор «Что-если» позволит рассчитывать произведение множителей «М1» и «М2» с помощью нашей модели нейронной сети, полученной в процессе обучения.

Структуру построенной модели можно посмотреть в визуализаторе «Граф нейросети».

Граф нейросети ´   Что-если ´ Диаграмма рассеяния ´ Диаграмма ´
M1     MULNI
M2      
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...