Московский государственный университет имени М.В.Ломоносова
Опубликован: 30.04.2008 | Доступ: свободный | Студентов: 1616 / 252 | Оценка: 4.24 / 3.92 | Длительность: 14:56:00
Специальности: Математик
Лекция 6:

Метод потенциальных функций

< Лекция 5 || Лекция 6: 123 || Лекция 7 >

6.1. Общая рекуррентная процедура

Пусть \{\varphi_i(x)\} – конечная или бесконечная система функций на X. Будем искать дискриминантную функцию в виде

\Phi(x)=\sum_i c_i\varphi_i(x).

Требования к рассматриваемому ряду:

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

Также желательно, чтобы c_i убывали быстро с ростом i. Это необходимо для обеспечения хорошего совпадения "обрезанного" бесконечного ряда с \Phi(x).

Итак, пусть \{\varphi_i(x)\}базовая система функций. В качестве потенциальной функции будем рассматривать функцию вида

K(x,y)=\sum_i \lambda_i^2\varphi_i(x)\varphi_i(y),
где \lambda_i удовлетворяет условиям: \sum_i\lambda_i^2<\infty и \lambda_i\neq 0. Обозначим \psi_i(x)=\lambda_i\varphi_i(x). Тогда
K(x,y)=\sum_i\psi_i(x)\varphi_i(y).
Предположим, что
K(x,x)=\sum_i\varphi_i^2(x)\leq M=const,
Тогда
K(x,y)=\sum_i\psi_i(x)\varphi_i(y)\leq M.

Для приближения \Phi(x) предлагается рекуррентная процедура, называемая общей рекуррентной процедурой:

\Phi_{n+1}=q_n*\Phi_n(x)+r_n*K(x_{n+1},x), \; n=1,2,\ldots

Пусть

  • \{x_{n+1}\} – обучающая последовательность прецедентов;
  • q_n,r_n – некоторые числовые последовательности, которые должны задаваться так, чтобы обеспечить сходимость \Phi_n(x) к \Phi(x) при n\rightarrow\infty в том или ином смысле.

Зададим начальное приближение \Phi_0(x)=0. Как уже отмечалось, мы ищем функцию \Phi(x) в виде:

\Phi(x)=\sum_{i=1}^{\infty}c_i \varphi_i(x).

Мы сделали достаточно сильное допущение, сказав, что наше решение будем выражать через базовую систему функций. Т.е. мы априорно предполагаем, что \Phi_n(x) разложимо по системе функций \{\varphi_i(x)\}:

K(x,y)=\sum_{i=1}^{\infty}\lambda_i^2\varphi_i(x)\varphi_j(x) \text{ и }
\Phi_k(x)=\sum_{i=1}^{\infty}c_i^k\varphi_i(x).

Тогда, учитывая, что K(x_{n+1},x)=\sum_i\psi_i(x_{n+1})\psi_i(x), получаем:

\sum_i c_i^{n+1}\varphi_i(x)=q_n\sum_i c_i^n\varphi_i(x)+r_n\sum_i\psi_i(x_{n+1})\psi_i(x).

Обозначим через

\overline{c}_i^k=\frac{c_i^k}{\lambda_i},\;i,k=1,2\ldots

Тогда

\overline{c}_i^{n+1}\psi_i(x)=q_nc_i^n\psi_i(x)+r_n\psi_i(x_{n+1})\psi_i(x).

Откуда получаем вторую форму общей рекуррентной процедуры:

\overline{c}_i^{n+1}=q_nc_i^n+r_n\psi_i(x_{n+1}).

Для нахождения связи коэффициентов \{c_i^k\} и \{c_i^{k+1}\} воспользуемся второй формой для формулы общей рекуррентной процедуры и соотношением

\overline{c}_i^k=\frac{c_i^k}{\lambda_i},\; i,k=1,2,\ldots

Получим соотношение, связывающее коэффициенты \{c_i^k\} и \{c_i^{k+1}\}:

\frac{c_i^{n+1}}{\lambda_i}=q_n c_i^n+r_n\psi_i(x_{n+1}), \text{ где } \psi_i=\lambda_i\varphi_i(x)

Для возможности итерационных вычислений необходимо понять, как вычислять параметры q_n и r_n, а также начальное приближение c_i^0.

Зададим функцию

\Phi_i(x)=
\left\{
\begin{aligned}
&K(x,x_i),\text{ при } x_i\in X \\
&-K(x,x_i),\text{ при } x_i\in \overline{X}
\end{aligned}
\right.
где
K(x,x_m)=\sum_{i=1}^{\infty}\lambda_i^2\varphi_i(x)\varphi_i(x_m)\text{ и }c_i^0=\pm(\lambda_i^2\varphi_i(x_1))

Тогда процесс перехода от \Phi_n к \Phi_{n+1} суть процесс подсчета коэффициентов. Обычно q_n=1,\;r_n, вычисляется по следующему правилу:

r_n=
\left\{
\begin{aligned}
&0,\text{ если }\Phi_n(x_{n+1})>0\text{ и }x_{n+1}\in X \\
&0,\text{ если }\Phi_n(x_{n+1})<0\text{ и }x_{n+1}\in \overline{X} \\
&1,\text{ если }\Phi_n(x_{n+1})<0\text{ и }x_{n+1}\in X \\
&-1,\text{ если }\Phi_n(x_{n+1})>0\text{ и }x_{n+1}\in \overline{X}
\end{aligned}
\right..

Возьмем следующее начальное приближение:

\Phi_1(x)=
\left\{
\begin{aligned}
K(x,x),\text{ при } x_1\in X \\
-K(x,x),\text{ при } x_1\in\overline{X}
\end{aligned}
\right.

Таким образом, при правильном определении \Phi_{n+1} получаем, что \Phi_{n+1}(x)=\Phi_n(x) ; а в случае ошибки

\Phi_{n+1}(x)
\left\{
\begin{aligned}
\Phi_n(x)+K(x_{n+1},x)\text{ при } x_{n+1}\in X \\
\Phi_n(x)-K(x_{n+1},x)\text{ при } x_{n+1}\in \overline{X}
\end{aligned}
\right.

Данный процесс напоминает обучение в алгоритме персептрона.

Возникают следующие естественные вопросы:

Есть ли поточечная сходимость функции \Phi_n(x) к \Phi(x)?

Где взять базисные функции \varphi_i(x) в многомерном пространстве?

Попробуем ответить на эти вопросы.

Рассмотрим аналогию данного алгоритма с алгоритмом персептрона. Для функции

\Phi_n(x)=\sum_{i+1}^{\infty}c_i^k\varphi_i(x)
произведем замену \varphi_i(x)=z_i и z=(z_1,z_2,\ldots),\;z\in Z – это вектор в бесконечномерном пространстве, тогда
\Phi(x)=\sum_{i+1}^{\infty}c_i\varphi_i(x)=\sum_{i+1}^{\infty}c_i z_i,
где z – спрямляющее пространство. Таким образом, если \Phi(x)>0 или \Phi(x)<0, то \sum_{i+1}^{\infty}c_i z_i>0 или \sum_{i+1}^{\infty}c_i z_i<0 соответственно. Пусть x_k\in X\bigcup\overline{X}, тогда x_k \rightarrow(z_1^k,z_2^k,\ldots) и z_1^k=\varphi_i(x_k).

< Лекция 5 || Лекция 6: 123 || Лекция 7 >