Приведенный выше способ уменьшения критерия Липшица не единственный. В следующем разделе рассмотрен ряд способов предобработки, решающих ту же задачу.
Другие способы предобработки числовых признаков
В данном разделе будет рассмотрено три вида предобработки числовых признаков — модулярный, позиционный и функциональный. Основная идея этих методов предобработки состоит в том, чтобы сделать значимыми малые отличия больших величин. Действительно, пусть для ответа существенно изменение величины признака на единицу при значении признака порядка миллиона. Очевидно, что простейшая предобработка (1) сделает отличие в единицу неразличимым для нейронной сети при абсолютных значениях порядка миллиона.
Все эти виды предобработки обладают одним общим свойством — за счет кодирования входного признака несколькими сигналами они уменьшают сложность задачи (критерий Липшица).
Зададимся некоторым набором положительных чисел y 1, …, y k . Определим сравнение по модулю для действительных чисел следующим образом:
x mod y = x-y·Int ( x/y ), (15)
где Int ( x ) — функция, вычисляющая целую часть величины x путем отбрасывания дробной части. Очевидно, что величина x mod y лежит в интервале (- y, y ).
Кодирование входного признака x при модулярной предобработке вектором Z производится по следующей формуле:
(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 |
Однако модулярная предобработка обладает одним отрицательным свойством — во всех случаях, когда y i ≠ y r 1, при целом r , разрушается отношение предшествования чисел. В табл. 8 приведен пример векторов. Поэтому, модульная предобработка пригодна при предобработке тех признаков, у которых важна не абсолютная величина, а взаимоотношение этой величины с величинами y 1, …, y k .
Примером такого признака может служить угол между векторами, если в качестве величин y выбрать y i =π/ i .
Функциональная предобработка
Функциональная предобработка преследует единственную цель — снижение константы Липшица задачи. В разделе «Предобработка, облегчающая обучение», был приведен пример такой предобработки. Рассмотрим общий случай функциональной предобработки, отображающих входной признак x в k- мерный вектор z . Зададимся набором из k чисел, удовлетворяющих следующим условиям: x min< y 1<���…< y k -1< y k < x max.
Таблица 9. Пример функциональной предобработки числового признака x ∈[0,5], при условии, что сигналы нейронов принадлежат интервалу [-1,1]. В сигмоидной предобработке использована φ( x )= x /(1+| x |), а в шапочной — φ( x )=2/(1+ x ²)-1. Были выбраны четыре точки y i=i .
x |
z 1( x ) |
z 2( x ) |
z 3( x ) |
z 4( 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 |
Пусть φ — функция, определенная на интервале [ x min- y k , x max- y 1], а φ min, φ max— минимальное и максимальное значения функции φ на этом интервале. Тогда i- я координата вектора z вычисляется по следующей формуле:
(17)
Линейная предобработка. В линейной предобработке используется кусочно линейная функция:
(18)
Графики функций z i ( x ) представлены на рис. 2а. Видно, что с увеличением значения признака x ни одна функция не убывает, а их сумма возрастает. В табл. 9 представлены значения этих функций для двух точек — x 1=1.5 и x 2=3.5.
Сигмоидная предобработка. В сигмоидной предобработке может использоваться любая сигмоидная функция. Если в качестве сигмоидной функции использовать функцию S 2, приведенную в разделе «Нейрон»этой главы, то формула (17) примет следующий вид:
Графики функций z i ( x ) представлены на рис. 2б. Видно, что с увеличением значения признака x ни одна функция не убывает, а их сумма возрастает. В табл. 9 представлены значения этих функций для двух точек x 1=1.5 и x 2=3.5.
Читать дальше