Нормализация значений полей.

После того, как указаны входные и выходные поля, следует нормализация данных в обучающей выборке. Целью нормализации значений полей является преобразование данных к виду, наиболее подходящему для обработки средствами Deductor Studio. Для таких обработчиков как нейронная сеть, дерево решений, линейная модель прогнозирования данные, поступающие на вход, должны иметь числовой тип, а их значения должны быть распределены в определенном диапазоне. Нормализатор может преобразовать дискретные данные к набору уникальных индексов или значения, лежащие в произвольном диапазоне к диапазону [0..1]. Для нейросети доступны следующие виды нормализации полей.

1. Линейная нормализация. Используется только для непрерывных числовых полей. Позволяет привести числа к диапазону [min..max], то есть минимальному числу из исходного диапазона будет соответствовать min, а максимальному – max. Остальные значение распределятся между min и max.

2. Уникальные значения. Используется для дискретных значений. Такими являются строки, числа или даты, заданные дискретно. Тогда все значения необходимо расположить в порядке возрастания. Далее они нумеруются по порядку и значения заменяются их порядковым номером.

3. Битовая маска. Используется для дискретных значений. Этот вид нормализации следует использовать для величин, которые можно только сравнивать на равенство или неравенство, но нельзя сказать, какое больше, а какое меньше. Все значения заменяются порядковыми номерами, а номер рассматривается в двоичном виде или в виде маски из нулей и единиц. Тогда каждая позиция маски рассматривается как отдельное поле, содержащее ноль или единицу.

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

1) вид дискретный – нормализация списком уникальных значений;

2) вид непрерывный:

· тип целый или дата – линейная нормализация в диапазоне [-1..1];

· тип вещественный ‑ линейная нормализация в диапазоне [0..1].

Настройка обучающей выборки.

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

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

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

Настройка нейросети

Далее задаются параметры, определяющие структуру нейронной сети -количество скрытых слоев и нейронов в них, а также активационная функция нейронов.

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

Обучение нейросети.

После настройки конфигурации сети следует выбрать алгоритм ее обучения.

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

Для алгоритма обратного распространения ошибки нужно указать два параметра:

Скорость обучения- определяет величину шага при итерационной коррекции весов в нейронной сети (рекомендуется в интервале 0…1). При большой величине шага, сходимость будет более быстрой, но имеется опасность «перепрыгнуть» через решение. С другой стороны, при малой величине шага, обучение потребует слишком многих итераций.

Момент – его значение задается в интервале 0…1. Рекомендуемое значение 0.9±0.1.

Метод Resilent Propogation (Rprop) ‑ эластичное распространение. Алгоритм использует так называемое «обучение по эпохам», когда коррекция весов происходит после предъявления сети всех примеров из обучающей выборки. Преимущество данного метода заключается в том, что он обеспечивает сходимость, а, следовательно, и обучение сети в 4-5 раз быстрее, чем алгоритм обратного распространения.

Для алгоритма Resilient Propagation указываются параметры:

· Шаг спуска - коэффициент увеличения скорости обучения;

· Шаг подъема - коэффициент уменьшения скорости обучения.

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

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

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

Наши рекомендации