SoftCraft
разноликое программирование

Отправная точка
Программирование
Windows API
Автоматы
Нейроинформатика
Парадигмы
Параллелизм
Проектирование
Теория
Техника кодирования
Трансляторы
Учебный процесс
Прочие вопросы

Разное

Беллетристика
Брюзжалки
Цели и задачи
Об авторе


Нейроинформатика. Учебное пособие


Оглавление | Введение | П1 | П2 | П3 | Литература
Лекции: 1, 2-3, 4-6, 7.1, 7.2, 8, 9, 10, 11.1, 11.2-12, 13-14, 15-16


Лекция 8. Предобработчик

Данная глава посвящена компоненту предобработчик. В ней рассматриваются различные аспекты предобработки входных данных для нейронных сетей. Существует множество различных видов нейронных сетей (см. главу «Описание нейронных сетей»). Однако, для большинства нейронных сетей характерно наличие такого интервала входных сигналов, в пределах которого сигналы различимы. Для различных нейронных сетей эти интервалы различны. Большинство работающих с нейронными сетями прекрасно осведомлены об этом их свойстве, но до сих пор не предпринималось никаких попыток как-либо формализовать или унифицировать подходы к предобработке входных сигналов. В данной главе дан один из возможных формализмов этой задачи. За рамками рассмотрения осталась предобработка графической информации. Наиболее мощные и интересные способы предобработки графической информации описаны в [91]. При аппаратной реализации нейрокомпьютера, компонент предобработчик также следует реализовывать аппаратно, поскольку вне зависимости от источника входных данных их надо обрабатывать одинаково. К тому же большинство предобработчиков допускают простую аппаратную реализацию.

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

Наиболее важным в данной являются следующее.

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

Нейрон

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

x – вектор входных сигналов нейрона;

α – вектор синаптических весов нейрона;

Σ– входной сумматор нейрона;

p = (α,x) – выходной сигнал входного сумматора;

σ – функциональный преобразователь;

y – выходной сигнал нейрона.

Обычно нейронные сети называют по виду функции σ(p). Хорошо известны и наиболее часто используются два вида сигмоидных сетей:

где c - параметр, называемый «характеристикой нейрона». Обе функции имеют похожие графики.

Каждому типу нейрона соответствует свой интервал приемлемых входных данных. Как правило, этот диапазон либо совпадает с диапазоном выдаваемых выходных сигналов (например для сигмоидных нейронов с функцией S1), либо является объединением диапазона выдаваемых выходных сигналов и отрезка, симметричного ему относительно нуля (например, для сигмоидных нейронов с функцией S2), Этот диапазон будем обозначать как [a,b]

Различимость входных данных

Очевидно, что входные данные должны быть различимы. В данном разделе будут приведены соображения, исходя из которых, следует выбирать диапазон входных данных. Пусть одним из входных параметров нейронной сети является температура в градусах Кельвина. Если речь идет о температурах близких к нормальной, то входные сигналы изменяются от 250 до 300 градусов. Пусть сигнал подается прямо на нейрон (синаптический вес равен единице). Выходные сигналы нейронов с различными параметрами приведены в табл. 1.

Таблица 1

Входной Нейрон типа S1 Нейрон типа S2
сигнал c=0.1 c=0.5 c=1 c=2 c=0.1 c=0.5 c=1 c=2
250 1.0 1.0 1.0 1.0 0.99960 0.99800 0.99602 0.99206
275 1.0 1.0 1.0 1.0 0.99964 0.99819 0.99638 0.99278
300 1.0 1.0 1.0 1.0 0.99967 0.99834 0.99668 0.99338

Совершенно очевидно, что нейронная сеть просто неспособна научиться надежно различать эти сигналы (если вообще способна научиться их различать!). Если использовать нейроны с входными синапсами, не равными единице, то нейронная сеть сможет отмасштабировать входные сигналы так, чтобы они стали различимы, но при этом будет задействована только часть диапазона приемлемых входных данных - все входные сигналы будут иметь один знак. Кроме того, все подаваемые сигналы будут занимать лишь малую часть этого диапазона. Например, если мы отмасштабируем температуры так, чтобы 300 соответствовала величина суммарного входного сигнала равная 1 (величина входного синапса равна 1/300), то реально подаваемые сигналы займут лишь одну шестую часть интервала [0,1] и одну двенадцатую интервала [-1,1]. Получаемые при этом при этом величины выходных сигналов нейронов приведены в табл. 2.

Таблица 2

Входной Нейрон типа S1 Нейрон типа S2
сигнал c=0.1 c=0.5 c=1 c=2 c=0.1 c=0.5 c=1 c=2
250 (0.83) 0.52074 0.60229 0.69636 0.84024 0.89286 0.62500 0.45455 0.29412
275 (0.91) 0.52273 0.61183 0.71300 0.86057 0.90164 0.64706 0.47826 0.31429
300 (1.0) 0.52498 0.62246 0.73106 0.88080 0.90909 0.66667 0.50000 0.33333

Сигналы, приведенные в табл. 2 различаются намного сильнее соответствующих сигналов из табл. 1. Таким образом, необходимо заранее позаботиться о масштабировании и сдвиге сигналов, чтобы максимально полно использовать диапазон приемлемых входных сигналов. Опыт использования нейронных сетей с входными синапсами свидетельствует о том, что в подавляющем большинстве случаев предварительное масштабирование и сдвиг входных сигналов сильно облегчает обучение нейронных сетей. Если заранее произвести операции масштабирования и сдвига входных сигналов, то величины выходных сигналов нейронов даже при отсутствии входных синапсов будут различаться еще сильнее (см. табл. 3).

Таблица 3

Входной Нейрон типа S1 Нейрон типа S2
сигнал c=0.1 c=0.5 c=1 c=2 c=0.1 c=0.5 c=1 c=2
250 (-1) 0.47502 0.37754 0.26894 0.11920 -0.9091 -0.6667 -0.5000 -0.3333
275 (0) 0.50000 0.50000 0.50000 0.50000 0.0000 0.0000 0.0000 0.0000
300 (1) 0.52498 0.62246 0.73106 0.88080 0.9091 0.6667 0.5000 0.3333

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

Другой способ определения различимости входных сигналов приведен в разделе «Оценка способности сети решить задачу».

Классификация компонентов входных данных

Информация поступает к нейронной сети в виде набора ответов на некоторый список вопросов. Можно выделить три основных типа ответов (вопросов).

  1. Бинарный признак (возможен только один из ответов – истина или ложь).
  1. Качественный признак (принимает конечное число значений).
  1. Число.

Ответ типа качественный признак - это ответ с конечным числом состояний. Причем нельзя ввести осмысленное расстояние между состояниями. Примером качественного признака может служить состояние больного - тяжелый, средний, легкий. Действительно, нельзя сказать, что расстояние от легкого больного до среднего больше, меньше или равно расстоянию от среднего больного до тяжелого. Все качественные признаки можно в свою очередь разбить на три класса.

  1. Упорядоченные признаки.
  1. Неупорядоченные признаки.
  1. Частично упорядоченные признаки.

Упорядоченным признаком называется такой признак, для любых двух состояний которого можно сказать, что одно из них предшествует другому. Тот факт, что состояние x предшествует состоянию y, будем обозначать следующим образом – x < y. Примером упорядоченного признака может служить состояние больного. Действительно, все состояния можно упорядочить по тяжести заболевания:

легкий больной < средний больной < тяжелый больной

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

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

 Черный < Синий < Голубой < Белый;

 Черный < Красный < Ярко красный < Белый;

 Черный < Зеленый < Ярко зеленый < Белый;

 Черный < Фиолетовый < Ярко фиолетовый < Белый

и т.д. Однако, между состояниями Синий и Красный отношения порядка нет.

Известно, что любой частично упорядоченный признак можно представить в виде комбинации нескольких упорядоченных и неупорядоченных признаков. Так, рассмотренный выше частично упорядоченный признак распадается на три упорядоченных признака: интенсивность синего, красного и зеленого цветов. Каждый из этих признаков является упорядоченным (цепочки порядка для этих признаков приведены в первых трех строчках рассмотрения примера). Каждое состояние исходного качественного признака описывается тройкой состояний полученных качественных признаков. Так, например, состояние Фиолетовый описывается в виде (Синий, Красный, Черный).

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

Кодирование бинарных признаков

Таблица 4

Кодирование бинарного признака

Смысл значения ложь Значение входного сигнала
Истина Ложь
Отсутствие заданного свойства при b = 0 a 0
Отсутствие заданного свойства при b ≠ 0 b 0
Наличие другого свойства b a

Бинарные признаки характеризуются наличием только двух состояний – истина и ложь. Однако даже такие простые данные могут иметь два разных смысла. Значение истина означает наличие у описываемого объекта какого-либо свойства. А ответ ложь может означать либо отсутствие этого свойства, либо наличие другого свойства. В зависимости от смысловой нагрузки значения ложь, и учитывая заданный диапазон [a,b], рекомендуемые способы кодирования бинарного признака приведены в табл. 4.

Кодирование неупорядоченных качественных признаков

Таблица 5.

Кодирование неупорядоченного качественного признака

Состояние Вектор входных сигналов
α1 (b,a,a,...,a)
α2 (a,b,a,...,a)
αn (a,a,...,a,b)

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

Кодирование упорядоченных качественных признаков

Таблица 6.

Кодирование упорядоченного качественного признака

Состояние Вектор входных сигналов
α1 (b,a,a,...,a)
α2 (b,b,a,...,a)
αn (b,b,b,...,b)

Упорядоченные частные признаки, в отличие от неупорядоченных, имеют отношение порядка между состояниями. Однако кодирование их разными значениями одного входного сигнала неразумно из-за того, что расстояние между состояниями не определено, а такое кодирование эти расстояния задает явным образом. Поэтому, упорядоченные частные признаки рекомендуется кодировать в виде стольких входных сигналов, сколько состояний у признака. Но, в отличие от неупорядоченных признаков, накапливать число сигналов с максимальным значением. Для случая, когда все состояния обозначены через , рекомендуемая таблица кодировки приведена в табл. 6.

Числовые признаки

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

Содержательное значение признака. Если входными данными сети является угол между двумя направлениями, например, направление ветра, то ни в коем случае не следует подавать на вход сети значение угла (не важно в градусах или радианах). Такая подача приведет к необходимости "уяснения" сетью того факта, что 0 градусов и 360 градусов одно и тоже. Разумнее выглядит подача в качестве входных данных синуса и косинуса этого угла. Число входных сигналов сети увеличивается, но зато близкие значения признака кодируются близкими входными сигналами.

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

Расположение значений признака в интервале значений. Следует рассмотреть вопрос о равнозначности изменения значения признака на некоторую величину в разных частях интервала значений признака. Как правило, это связано с косвенными измерениями (вместо одной величины измеряется другая). Например, сила притяжения двух небесных тел при условии постоянства массы  однозначно характеризуется расстоянием между ними. Пусть рассматриваются расстояния от 1 до 100 метров. Легко понять, что при изменении расстояния с 1 до 2 метров, сила притяжения изменится в четыре раза, а при изменении с 99 до 100 метров – в 1.02 раза. Следовательно, вместо подачи расстояния следует подавать обратный квадрат расстояния .

Простейшая предобработка числовых признаков

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

, (1)

где [a,b] – диапазон приемлемых входных сигналов,  – диапазон значений признака c,  – предобработанный сигнал, который будет подан на вход сети. Предобработку входного сигнала по формуле (1) будем называть простейшей предобработкой.

Оценка способности сети решить задачу

В данном разделе рассматриваются только сети, все элементы которых непрерывно зависят от своих аргументов (см. главу «Описание нейронных сетей»). Предполагается, что все входные данные предобработаны так, что все входные сигналы сети лежат в диапазоне приемлемых входных сигналов [a,b]. Будем обозначать вектора входных сигналов через , а требуемые ответы сети через . Компоненты векторов будем обозначать нижним индексом, например, компоненты входного вектора через . Будем полагать, что в каждом примере ответ является вектором чисел из диапазона приемлемых сигналов [a,b]. В случае обучения сети задаче классификации требуемый ответ зависит от вида используемого интерпретатора ответа (см. главу «Оценка и Интерпретатор ответа»).

Нейронная сеть вычисляет некоторую вектор-функцию F от входных сигналов. Эта функция зависит от параметров сети. Обучение сети состоит в подборе такого набора параметров сети, чтобы величина  была минимальной (в идеале равна нулю). Для того чтобы нейронная сеть могла хорошо приблизить заданную таблично функцию  f необходимо, чтобы реализуемая сетью функция F при изменении входных сигналов с  на  могла изменить значение с  на . Очевидно, что наиболее трудным для сети должно быть приближение функции в точках, в которых при малом изменении входных сигналов происходит большое изменение значения функции. Таким образом, наибольшую сложность будет представлять приближение функции f в точках, в которых достигает максимума выражение . Для аналитически заданных функций величина  называется константой Липшица. Исходя из этих соображения можно дать следующее определение сложности задачи.

Сложность аппроксимации таблично заданной функции f, которая в точках  принимает значения , задается выборочной оценкой константы Липшица, вычисляемой по следующей формуле:

  (2)

Оценка (2) является оценкой константы Липшица аппроксимируемой функции снизу.

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

  (3)

В формулах (2) и (3) можно использовать произвольные нормы. Однако для нейронных сетей наиболее удобной является евклидова норма. Далее везде используется евклидова норма.

В следующем разделе описан способ вычисления оценки константы Липшица сети (3) сверху. Очевидно, что в случае  сеть принципиально не способна решить задачу аппроксимации функции f.

Оценка константы Липшица сети

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

  1. Для композиции функций  константа Липшица оценивается как произведение констант Липшица:
. (4)
  1. Для вектор-функции  константа Липшица равна:
. (5)

Способ вычисления константы Липшица

Для непрерывных функций константа Липшица является максимумом производной в направлении  по всем точкам и всем направлениям. При этом вектор направления имеет единичную длину: . Напомним формулу производной функции  в направлении r:

  (6)

Синапс

Обозначим входной сигнал синапса через x, а синаптический вес через α. Тогда выходной сигнал синапса равен αx. Поскольку синапс является функцией одной переменной, константа Липшица равна максимуму модуля производной – модулю синаптического веса:

  (7)

Умножитель

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

 .

Используя это выражение, можно записать константу Липшица для умножителя:

. (8)

Если входные сигналы умножителя принадлежат интервалу [a,b], то константа Липшица для умножителя может быть записана в следующем виде:

. (9)

Точка ветвления

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

Сумматор

Производная суммы по любому из слагаемых равна единице. В соответствии с (6) получаем:

, (10)

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

Нелинейный Паде преобразователь

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

.

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

  (11)

Нелинейный сигмоидный преобразователь

Нелинейный сигмоидный преобразователь, как и любой другой нелинейный преобразователь, имеющий один входной сигнал x, имеет константу Липшица равную максимуму модуля производной:

. (12)

Адаптивный сумматор

Для адаптивного сумматора на  входов оценка константы Липшица, получаемая через представление его в виде суперпозиции слоя синапсов и простого сумматора, вычисляется следующим образом. Используя формулу (7) для синапсов и правило (5) для вектор-функции получаем следующую оценку константы Липшица слоя синапсов:

.

Используя правило (4) для суперпозиции функций и оценку константы Липшица для простого сумматора (10) получаем:

. (13)

Однако, если оценить константу Липшица адаптивного сумматора напрямую, то, используя (6) и тот факт, что при фиксированных длинах векторов скалярное произведение достигает максимума для сонаправленных векторов получаем:

. (14)

Очевидно, что оценка (14) точнее, чем оценка (13).

Константа Липшица сигмоидной сети

Рассмотрим слоистую сигмоидную сеть со следующими свойствами:

  1. Число входных сигналов – .
  1. Число нейронов в i-м слое – .
  1. Каждый нейрон первого слоя получает все входные сигналы, а каждый нейрон любого другого слоя получает сигналы всех нейронов предыдущего слоя.
  1. Все нейроны всех слоев имеют вид, приведенный на рис. 1 и имеют одинаковую характеристику.
  1. Все синаптические веса ограничены по модулю единицей.
  1. В сети m слоев.

В этом случае, учитывая формулы (4), (5), (12) и (14) константу Липшица i-о слоя можно оценить следующей величиной:

.

Используя формулу (4) получаем оценку константы Липшица всей сети:

.

Если используется нейроны типа , то  и оценка константы Липшица сети равна:

Для нейронов типа , то  и оценка константы Липшица сети равна:

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

Предобработка, облегчающая обучение

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

Для упрощения задачи необходимо уменьшить выборочную оценку константы Липшица. Наиболее простой способ добиться этого – увеличить расстояние между входными сигналами. Рассмотрим пару примеров – , – таких, что . Определим среди координат векторов  и  координату, в которой достигает минимума величина , исключив из рассмотрения совпадающие координаты. Очевидно, что эта координата является «узким местом», определяющим сложность задачи. Следовательно, для уменьшения сложности задачи требуется увеличить расстояние между векторами  и , а наиболее перспективной координатой для этого является l-я. Однако увеличение расстояние между  и  не всегда осмыслено. Дело в том, что все параметры, как правило, измеряются с конечной точностью. Поэтому, если величина  меньше чем точность измерения l-го параметра, значения  и  можно считать совпадающими. Таким образом, для изменения масштаба надо выбирать тот из входных параметров, для которого значение  минимально, но превышает точность измерения этого параметра.

Таблица 7.

Кодирование параметра после разбиения на два сигнала

Значение Первый сигнал Второй сигнал
a
b

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

Наиболее простой путь – разбить диапазон l-го параметра на два. Зададимся точкой x. Будем кодировать l-й параметр двумя входными сигналами в соответствии с табл. 7. При таком кодировании критерий Липшица, очевидно, уменьшится. Вопрос о выборе точки x может решаться по-разному. Простейший путь – положить . Более сложный, но часто более эффективный – подбор x исходя из требования минимальности критерия Липшица.

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

Другие способы предобработки числовых признаков

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

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

Модулярная предобработка

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

, (15)

где  – функция, вычисляющая целую часть величины x путем отбрасывания дробной части. Очевидно, что величина x mod y лежит в интервале . Кодирование входного признака x при модулярной предобработке вектором  производится по следующей формуле:

. (16)
Таблица 8.

Пример сигналов при модулярном вводе

x x mod 3 x mod 5 x mod 7 x mod 11
5 2 0 5 5
10 1 0 3 10
15 0 0 1 3

Однако модулярная предобработка обладает одним отрицательным свойством – во всех случаях, когда , при целом r, разрушается отношение предшествования чисел. В табл. 8 приведен пример векторов. Поэтому, модульная предобработка пригодна при предобработке тех признаков, у которых важна не абсолютная величина, а взаимоотношение этой величины с величинами . Примером такого признака может служить угол между векторами, если в качестве величин y выбрать .

Функциональная предобработка

Функциональная предобработка преследует единственную цель – снижение константы Липшица задачи. В разделе «Предобработка, облегчающая обучение», был приведен пример такой предобработки. Рассмотрим общий случай функциональной предобработки, отображающих входной признак x в k-мерный вектор z. Зададимся набором из k чисел, удовлетворяющих следующим условиям:

.

Таблица 9

Пример функциональной предобработки числового признака , при условии, что сигналы нейронов принадлежат интервалу [-1,1]. В сигмоидной предобработке использована , а в шапочной - . Были выбраны четыре точки.

x
Линейная предобработка
1.5 0.5 -0.5 -1 -1
3.5 1 1 0.5 -0.5
Сигмоидная предобработка
1.5 0.3333 -0.3333 -0.6 -0.7142
3.5 0.7142  0.6  0.3333 -0.3333
Шапочная предобработка
1.5  0.6  0.6 -0.3846 -0.7241
3.5 -0.7241 -0.3846  0.6  0.6

Пусть φ – функция, определенная на интервале , а  – минимальное и максимальное значения функции φ на этом интервале. Тогда i-я координата вектора z вычисляется по следующей формуле:

  (17)



Линейная предобработка. В линейной предобработке используется кусочно линейная функция:

  (18)





Графики функций  представлены на рис. 2а. Видно, что с увеличением значения признака  ни одна функция не убывает, а их сумма возрастает. В табл. 9 представлены значения этих функций для двух точек –  и .

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

.


 

Графики функций  представлены на рис. 2б. Видно, что с увеличением значения признака x ни одна функция не убывает, а их сумма возрастает. В табл. 9 представлены значения этих функций для двух точек .

Шапочная предобработка. Для шапочной предобработки используются любые функции, имеющие график в виде «шапочки». Например, функция . Графики функций  представлены на рис. 2в. Видно, что с увеличением значения признака x ни одна из функций , ни их сумма не ведут себя монотонно. В табл. 9 представлены значения этих функций для двух точек  .

Позиционная предобработка

Основная идея позиционной предобработки совпадает с принципом построения позиционных систем счисления. Зададимся положительной величиной y такой, что . Сдвинем признак x так, чтобы он принимал только неотрицательные значения. В качестве сигналов сети будем использовать результат простейшей предобработки y-ичных цифр представления сдвинутого признака x. Формулы вычисления цифр приведены ниже:

  (19)

где операция сравнения по модулю действительного числа определена в (15). Входные сигналы сети получаются из компонентов вектора z путем простейшей предобработки.

Составной предобработчик

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

Таблица 10.

Типы предобработчиков

Тип Описание
Number Предобрабатывает числовые входные данные
Unordered Предобрабатывает неупорядоченные качественные признаки
Ordered Предобрабатывает упорядоченные качественные признаки
Binary Обрабатывает бинарные признаки

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

Для качественных признаков принято кодирование длинными целыми числами. Первое значение равно 1, второе – 2 и т.д. Числовые признаки кодируются действительными числами.


Оглавление | Введение | П1 | П2 | П3 | Литература
Лекции: 1, 2-3, 4-6, 7.1, 7.2, 8, 9, 10, 11.1, 11.2-12, 13-14, 15-16