Решение задач нейронными сетями
Приведем это решение в традиционных обозначениях математической статистики. Обозначим Mо среднее значение j -й координаты векторов исходной выборки:
![M_j = \frac{1}{m}\sum\limits_{i = 1}^m {x_j^i}
.](/sites/default/files/tex_cache/4370cde10383d4f2b67933e16c9395fd.png)
Пусть M - вектор с координатами Mо. Введем также обозначение sj для выборочного среднеквадратичного отклонения:
![s_j = \sqrt {\frac{1}{m}\sum\limits_{i = 1}^m {(x_j^i} - M_j )^2}](/sites/default/files/tex_cache/ff54580f28a3344806be7e4a2454b7bd.png)
Величины sj задают естественный масштаб для измерения j -х координат векторов x. Кроме того, нам потребуются величина sf и коэффициенты корреляции f с j -ми координатами векторов x - rfj:
![s_f = \sqrt {\frac{1}{m}\sum\limits_{i = 1}^m {(f_i - M_f )^2}}{\rm{,}}M_f = \frac{1}{m}\sum\limits_{i = 1}^m {f_i} ,{\rm{ }}r_{fj} = \frac{{\frac{1}{m}\sum\limits_{i = 1}^m {(f_i - M_f )(x_j^i - M_j )}}}{{s_f s_j}}.](/sites/default/files/tex_cache/be02abedf7ac92c1be1a027536565c7f.png)
Вернемся к n -мерным векторам данных и коэффициентов. Представим, что векторы сигналов проходят предобработку - центрирование и нормировку и далее мы имеем дело с векторами yi:
![y_j^i = \frac{{x_j^i - M_j}}{{s_j}}.](/sites/default/files/tex_cache/1a5d93739536ed15389f98861459901c.png)
Это, в частности, означает, что все рассматриваемые координаты вектора x имеют ненулевую дисперсию, т.е. постоянные координаты исключаются из рассмотрения - они не несут полезной информации. Уравнения регрессии будем искать в форме: . Получим:
![]() |
( 3) |
где Rf - вектор коэффициентов корреляции f с j -ми координатами векторов x, имеющий координаты rfj, R - матрица коэффициентов корреляции между координатами вектора данных:
![r_{kj} = \frac{{\frac{1}{m}\sum\limits_{i = 1}^m {(x_k^i - M_k )(x_j^i - M_j )}}}{{s_k s_j}} = \frac{1}{m}\sum\limits_{i = 1}^m {y_k^i y_j^i }
.](/sites/default/files/tex_cache/a01f2aa53ba10b3162f0272befbf986d.png)
В задачах обработки данных почти всегда возникает вопрос о последовательном уточнении результатов по мере поступления новых данных ( обработка данных "на лету" ). Существует, как минимум, два подхода к ответу на этот вопрос для задачи линейной регрессии. Первый подход состоит в том, что изменения в коэффициентах регрессии при поступлении новых данных рассматриваются как малые и в их вычислении ограничиваются первыми порядками теории возмущений. При втором подходе для каждого нового вектора данных делается шаг изменений коэффициентов, уменьшающий ошибку регрессии на вновь поступившем векторе данных. При этом "предыдущий опыт" фиксируется только в текущих коэффициентах регрессии.
В рамках первого подхода рассмотрим, как будет изменяться из формулы (2) при добавлении нового вектора данных. В первом порядке теории возмущений найдем изменение вектора коэффициента
при изменении вектора p и матрицы Q:
![\begin{array}{l}
\alpha + \Delta \alpha = (Q + \Delta Q)^{-1} (p + \Delta p); \\
(Q + \Delta Q)^{-1} = (Q(1 + Q^{-1} \Delta Q))^{-1} = Q^{-1} - Q^{-1} \Delta QQ^{-1} + o(\Delta Q); \\
\Delta \alpha \cong Q^{-1} (\Delta p - \Delta Q\alpha ). \\
\end{array}](/sites/default/files/tex_cache/2e9a055156e5183e12deaec59b35a5d1.png)
Пусть на выборке вычислены p, Q, Q-1. При получении нового вектора данных xm +1 и соответствующего значения F(xm +1)=f m +1 имеем 1Напомним, что для векторов x, y матрица
имеет своими элементами
.
:
![\Delta p = {\textstyle{1 \over {m + 1}}}(f_{m + 1} x^{m + 1} - p);](/sites/default/files/tex_cache/533fea3b05f52447cf00e1d4008eac60.png)
![\Delta q_{jk} = {\textstyle{1 \over {m + 1}}}(x_j^{m + 1} x_k^{m + 1} - q_{jk} ){\rm{( T.e. }} \Delta Q = {\textstyle{1 \over {m + 1}}}(x^{m + 1} \otimes (x^{m + 1} )^{\rm T} ){\rm{)}};](/sites/default/files/tex_cache/fd379da2572746c402168aae67c8011e.png)
![]() |
( 4) |
![\Delta \alpha = {\textstyle{1 \over {m + 1}}}\Delta_{m + 1}^0 Q^{-1} x^{m + 1} ,](/sites/default/files/tex_cache/5a0c29e1913f22159745262c9213ac40.png)
где - ошибка на векторе данных xm +1 регрессионной зависимости, полученной на основании выборки
.
Пересчитывая по приведенным формулам p, Q, Q-1 и после каждого получения данных, получаем процесс, в котором последовательно уточняются уравнения линейной регрессии. И требуемый объем памяти, и количество операций имеют порядок n2 - из-за необходимости накапливать и модифицировать матрицу Q-1. Конечно, это меньше, чем потребуется на обычное обращение матрицы Q на каждом шаге, однако следующий простой алгоритм еще экономнее. Он вовсе не обращается к матрицам Q, Q-1 и основан на уменьшении на каждом шаге величины
- квадрата ошибки на векторе данных xm +1 регрессионной зависимости, полученной на основании выборки
.
Вновь обратимся к формуле (2) и будем рассматривать n +1 -мерные векторы данных и коэффициентов. Обозначим . Тогда
![]() |
( 5) |
Последняя элементарная формула столь важна в теории адаптивных сумматоров, что носит "именное название" - формула Уидроу. "Обучение" адаптивного сумматора методом наискорейшего спуска состоит в изменении вектора коэффициентов в направлении антиградиента
: на каждом шаге к
добавляется
, где h - величина шага.
Если при каждом поступлении нового вектора данных x изменять указанным образом, то получим последовательную процедуру построения линейной аппроксимации функции F(x). Такой алгоритм обучения легко реализуется аппаратными средствами (изменение веса связи
есть произведение прошедшего по ней сигнала xj на ошибку
и на величину шага). Возникает, однако, проблема сходимости: если h слишком мало, то сходимость будет медленной, если же слишком велико, то произойдет потеря устойчивости и сходимости не будет вовсе. Детальному изложению этого подхода и его приложений посвящен учебник [2.15].