Возьмем двухслойную сеть (рис. 1) (входной слой не рассматривается). Веса
нейронов первого (скрытого) слоя пометим верхним индексом (1), а выходного
слоя - верхним индексом (2). Выходные сигналы скрытого слоя обозначим $$v_j, j=1,2,\ldots,K$$, а выходного слоя - $$y_j, j=1,2, \ldots,
M.$$ Будем
считать, что
Цель обучения состоит в подборе таких значений весов $$w_{ij}^{(1)}$$ и $$w_{ij}^{(2)}$$ для всех слоев сети, чтобы при заданном входном векторе $$x$$ получить на выходе значения сигналов $$y_i$$, которые с требуемой точностью будут совпадать с ожидаемыми значениями $$d_i$$ для $$i=1,2, \ldots, M.$$ Выходной сигнал $$i$$ -го нейрона скрытого слоя описывается функцией
$$v_i=f(\sum_{j=0}^{N} w_{ij}^{(1)}x_j).$$
(рис 1) Пример двухслойной нейронной сетиВ выходном слое $$k$$ -й нейрон вырабатывает выходной сигнал
$$y_k = f(\sum_{i=0}^{K} w_{ki}^{(2)}v_i)=f(\sum_{i=0}^{K} w_{ki}^{(2)}f(\sum_{j=0}^{N} w_{ij}^{(1)}x_j))$$Из формулы следует, что на значение выходного сигнала влияют веса обоих слоев, тогда как сигналы, вырабатываемые в скрытом слое, не зависят от весов выходного слоя.
Основу алгоритма обратного распространения ошибки составляет целевая функция, формулируемая, как правило, в виде квадратичной суммы разностей между фактическими и ожидаемыми значениями выходных сигналов. Для обучающей выборки, состоящей из $$p$$ примеров, целевая функция имеет вид
$$E(w) = [ \sum_{j=1}^p \sum_{k=1}^M (y_k^{(j)} - d_k^{(j)})^2]/2$$Минимизация целевой функции достигается уточнением вектора весов (обучением) по формуле
$$w(t+1) = w(t) + \Delta w,$$где
$$\begin{equation} \Delta w = \alpha s(w), \end{equation}$$$$\alpha$$ - коэффициент обучения, а $$s(w)$$ -
направление в пространстве весов $$w.$$
Выбор этого направления обычно основан на определении градиента целевой функции
относительно весов всех слоев сети. Для весов выходного слоя задача имеет
очевидное решение.
Для других слоев используется
Компоненты градиента рассчитываются дифференцированием зависимости (2). В первую очередь определяются веса нейронов выходного слоя. Для выходных весов получаем:
$$\partial E/ \partial w_{ij}^{(2)} = (y_i - d_i)[df(u_i^{(2)})/du_i^{(2)}]v_j,$$где
$$u_i^{(2)} = \sum_{j=0}^K w_{ij}^{(2)}v_j$$Если ввести обозначение
$$\partial_i^{(2)} = (y_i - d_i)[df(u_i^{(2)})/du_i^{(2)}],$$то соответствующую компоненту градиента относительно весов выходного слоя можно представить в виде
$$\begin{equation} \partial E/ \partial w_{ij}^{(2)} = \partial_i^{(2)}v_j. \end{equation}$$Компоненты градиента относительно нейронов скрытого слоя определяются так же, но описываются более сложной зависимостью, следующей из существования функции, которая задана в виде
$$\partial E/ \partial w_{ij}^{(1)} = \sum_{k=1}^M (y_k - d_k)[dy_k/dv_i][dv_i/dw_{ij}^{(1)}].$$Отсюда получаем
$$\partial E/ \partial w_{ij}^{(1)} = \sum_{k=1}^M (y_k - d_k)[df(u_k^{(2)}) / du_k^{(2)}] w_{ki}^{(2)} [df(u_i^{(1)}) / du_i^{(1)}] x_j,$$Если ввести обозначение
$$\partial_i^{(1)} = \sum_{k=1}^M (y_k - d_k)[df(u_k^{(2)})/du_k^{(2)}]w_{ki}^{(2)}[df(u_i^{(1)})/du_i^{(1)}],$$то получим выражение, определяющее компоненты градиента относительно весов нейронов входного слоя в виде
$$\begin{equation} \partial E / w_{ij}^{(1)} = \partial_i^{(1)} x_j. \end{equation}$$В обоих случаях (формулы (3) и (4)) описания градиента имеют аналогичную
структуру и
представляются произведением двух сигналов: первый соответствует начальному
узлу данной
взвешенной связи, а второй — величине погрешности, перенесенной на узел,
с которым эта связь
установлена. Определение вектора градиента важно для последующего процесса
уточнения весов.
В классическом
В соответствии с алгоритмом обратного распространения ошибки в каждом цикле обучения выделяются следующие этапы:
1. Анализ нейронной сети в прямом направлении передачи информации при генерации входных сигналов, составляющих очередной вектор $$x.$$ В результате такого анализа рассчитываются значения выходных сигналов нейронов скрытых слоев и выходного слоя, а также соответствующие производные $$df(u_i^{(1)})/du_i^{(1)}, df(u_i^{(2)})/du_i^{(2)}, \ldots, df(u_i^{(m)})/du_i^{(m)}$$ функций активации каждого слоя ( $$m$$ - количество слоев сети).
2. Создание
(рис 2) Сеть обратного распространения ошибки3. Уточнение весов (обучение сети) производится по предложенным выше
формулам для оригинальной
сети и для
4. Описанный процесс следует повторить для всех обучающих примеров задачника, продолжая его вплоть до выполнения условия остановки алгоритма. Действие алгоритма завершается в момент, когда норма градиента упадет ниже априори заданного значения, характеризующего точность процесса обучения.
Руководствуясь рис. 2, можно легко определить все компоненты градиента целевой функции, т.е. все частные производные функции $$E$$ по весам сети. Для этого, двигаясь от входов сети (бывших выходов), нужно перемножить все встречающиеся на пути величины (кроме весов $$w_{ij}^{(k)}$$, для которых рассчитывается частная производная $$\partial E / w_{ij}^{(k)}$$ ). Кроме того, там, где дуги сходятся к одной вершине, нужно выполнить сложение произведений, полученных на этих дугах.
Так, например, чтобы посчитать производную $$\partial E/ w_{12}^{(2)}$$, нужно перемножить величины $$y_2 - d_2, df(u_2^{(2)}) / du_2^{(2)}, v_1$$, а для вычисления производной $$\partial E / w_{21}^{(1)}$$ нужно посчитать произведения
$$\pi_1=(y_1 - d_1)\times[\partial f(u_1^{(2)}) /\partial u_1^{(2)}] w_{12}^{(2)}$$и
$$\pi_2=(y_2 - d_2) [\partial f(u_2^{(2)}) / \partial u_2^{(2)}] w_{22}^{(2)}$$и затем сложить эти произведения и результат умножить на $$\partial f(u_2^{(2)}) / \partial u_2^{(2)}$$ и $$x_1.$$
Таким образом, получим
$$\partial E / \partial w_{12}^{(1)}=(\pi_1+\pi_2)[\partial f(u_2^{(1)}) / \partial u_2^{(1)}] x_1 =\\$$ $$=[(y_1-d_1)[\partial f(u_1^{(2)})/\partial u_1^{(2)}]w_{12}^{(2)} + (y_2 -d_2) [\partial f(u_2^{(2)})/\partial u_2^{(2)})]w_{22}^{(2)}]\times\\$$ $$\times [ \partial f(u_2^{(1)})/\partial u_2^{(1)}] x_1 = x_1 \sum^2_{k=1} (y_k-d_k)[\partial f(u_k^{(2)})/ \partial u_k^{(2)}]w_{k2}^{(2)} [\partial f(u_2^{(1)})/ \partial u_2^{(1)}].$$Все пошаговые методы оптимизации состоят из двух важнейших частей:
Методы одномерной оптимизации дают эффективный способ для выбора шага.
В простейшем случае коэффициент обучения фиксируется на весь период оптимизации. Этот способ практически используется только совместно с методом наискорейшего спуска. Величина подбирается раздельно для каждого слоя сети по формуле
$$\alpha \le min(1/n_i),$$где $$n_i$$ обозначает количество входов $$i$$ -го нейрона в слое.
Более эффективный метод основан на адаптивном подборе коэффициента $$\alpha$$ с учетом фактической динамики величины целевой функции. Стратегия изменения значения $$\alpha$$ определяется путем сравнения суммарной погрешности $$\varepsilon$$ на $$t$$ -й итерации с ее предыдущим значением, причем рассчитывается по формуле
$$\varepsilon = [ \sum_{i=1}^M (y_i - d_i)^2]^{1/2}.$$Для ускорения процесса обучения следует стремиться к непрерывному увеличению $$\alpha$$ при одновременном контроле прироста погрешности $$\varepsilon$$ по сравнению с ее значением на предыдущем шаге. Незначительный рост погрешности считается допустимым.
Если погрешности на $$t$$ -1-й и $$t$$ -й итерациях обозначить соответственно $$\varepsilon_{t-1}$$ и $$\varepsilon_t$$, а коэффициенты обучения на этих же итерациях — $$\alpha_{t-1}$$ и $$\alpha_t$$, то значение $$\varepsilon_{t+1}$$ следует рассчитывать по формуле
$$\alpha_{t+1} = \alpha_t \rho_d, \t{ если } \varepsilon_t > k_w \varepsilon_{t-1},$$ $$\alpha_{t+1} = \alpha_t \rho_i, \t{ если } \varepsilon_t \le k_w \varepsilon_{t-1}.$$где $$k_w$$ - коэффициент допустимого прироста погрешности, $$\rho_d$$ - коэффициент уменьшения $$\alpha, \rho_i$$ - коэффициент увеличения $$\alpha.$$
Наиболее эффективный, хотя и наиболее сложный, метод подбора коэффициентов обучения связан с направленной минимизацией целевой функции в выбранном направлении $$s_t.$$ Необходимо так подобрать значение $$\alpha_t$$, чтобы новое решение $$w_{t+1}=w_t+ \alpha_t s_t$$ соответствовало минимуму целевой функции в данном направлении $$s_t.$$
Поиск минимума основан на полиномиальной аппроксимации целевой функции. Выберем для аппроксимации многочлен второго порядка
$$E(w) = P_2(\alpha) = a_2 \alpha^2 + a_1 \alpha + a_0,$$где $$a_2$$, $$a_1$$ и $$a_0$$ — коэффициенты, определяемые в цикле оптимизации. Для расчета этих коэффициентов используем три произвольные точки $$w_1, w_2, w_3$$, лежащие в направлении $$s_t$$, т.е.
$$w_i = w + \alpha_i s_t,\quad i = 1,2,3.$$Соответствующие этим точкам значения целевой функции $$E(w)$$ обозначим как
$$\begin{equation} P_2(\alpha_i) = E_i = E(w_i),\quad i = 1,2,3. \end{equation}$$Коэффициенты $$a_2$$, $$a_1$$ и $$a_0$$ рассчитываются в соответствии с решением системы уравнений (5). Для определения минимума многочлена $$P_2(\alpha)$$ его производная $$dP_2/d\alpha = 2a_2 \alpha + a_1$$ приравнивается к нулю, что позволяет получить $$\alpha_{min} = - a_1/2a_2$$. После подстановки выражений для $$E_1, E_2, E_3$$ в формулу для $$\alpha_{min}$$ получаем
$$\alpha_{min} = \alpha_2 - [( \alpha_2 - \alpha_1)^2 (E_2-E_3)-\\$$ $$- (\alpha_2 - \alpha_3)^2(E_2-E_1)]/2[(\alpha_2 - \alpha_1)(E_2-E_3)-(\alpha_2 - \alpha_3)(E_2-E_1)].$$Обучение нейронных сетей представляет собой трудоемкий процесс, далеко не всегда дающий ожидаемые результаты. Проблемы возникают из-за нелинейных функций активации, образующих многочисленные локальные минимумы, к которым может сводиться процесс обучения. Применение методов глобальной оптимизации уменьшает вероятность остановки процесса обучения в точке локального минимума, однако платой за это становится резкое увеличение трудоемкости и длительности обучения. Для правильного подбора управляющих параметров требуется большой опыт.
На результаты обучения огромное влияние оказывает подбор начальных значений весов сети. Выбор начальных значений, достаточно близких к оптимальным, значительно ускоряет процесс обучения. К сожалению, не существует универсального метода подбора весов, который бы гарантировал нахождение наилучшей начальной точки для любой решаемой задачи.
Неправильный выбор диапазона случайных значений весов может вызвать слишком раннее насыщение нейронов, в результате которого, несмотря на продолжающееся обучение, среднеквадратичная погрешность будет оставаться практически постоянной. Это означало бы попадание в седловую зону целевой функции вследствие слишком больших начальных значений весов. При этом взвешенная сумма входных сигналов нейрона может иметь значение, соответствующее глубокому насыщению сигмоидальной функции активации, и поляризация насыщения будет обратна ожидаемой. Значение возвратного сигнала, генерируемое в методе обратного распространения, пропорционально величине производной от функции активации и в точке насыщения близко нулю. Поэтому изменения значений весов, выводящие нейрон из состояния насыщения, происходят очень медленно. Процесс обучения надолго застревает в седловой зоне. Нейрон, остающийся в состоянии насыщения, не участвует в преобразовании данных, сокращая таким образом эффективное количество нейронов в сети. В итоге процесс обучения чрезвычайно замедляется, поэтому состояние насыщения отдельных нейронов может длиться практически непрерывно вплоть до исчерпания лимита итераций.
Удаление стартовой точки активации нейронов от зоны насыщения достигается путем ограничения диапазона случайных значений. Почти все оценки нижней и верхней границ диапазона допустимых значений лежат в интервале (0,1). Хорошие результаты дает равномерное распределение весов, нормализованное для каждого нейрона по амплитуде $$w_{in} = 2/(n_{in})^{1/2}$$, где $$n_{in}$$ означает количество входов нейрона. Веса порогов для нейронов скрытых слоев должны принимать случайные значения из интервала $$(-1/w_{in}, 1/w_{in})$$, а для выходных нейронов - нулевые значения.
Возьмем двухслойную сеть (рис. 1) (входной слой не рассматривается). Веса
нейронов первого (скрытого) слоя пометим верхним индексом (1), а выходного
слоя - верхним индексом (2). Выходные сигналы скрытого слоя обозначим $$v_j, j=1,2,\ldots,K$$, а выходного слоя - $$y_j, j=1,2, \ldots,
M.$$ Будем
считать, что
Цель обучения состоит в подборе таких значений весов $$w_{ij}^{(1)}$$ и $$w_{ij}^{(2)}$$ для всех слоев сети, чтобы при заданном входном векторе $$x$$ получить на выходе значения сигналов $$y_i$$, которые с требуемой точностью будут совпадать с ожидаемыми значениями $$d_i$$ для $$i=1,2, \ldots, M.$$ Выходной сигнал $$i$$ -го нейрона скрытого слоя описывается функцией
$$v_i=f(\sum_{j=0}^{N} w_{ij}^{(1)}x_j).$$
(рис 1) Пример двухслойной нейронной сетиВ выходном слое $$k$$ -й нейрон вырабатывает выходной сигнал
$$y_k = f(\sum_{i=0}^{K} w_{ki}^{(2)}v_i)=f(\sum_{i=0}^{K} w_{ki}^{(2)}f(\sum_{j=0}^{N} w_{ij}^{(1)}x_j))$$Из формулы следует, что на значение выходного сигнала влияют веса обоих слоев, тогда как сигналы, вырабатываемые в скрытом слое, не зависят от весов выходного слоя.
Основу алгоритма обратного распространения ошибки составляет целевая функция, формулируемая, как правило, в виде квадратичной суммы разностей между фактическими и ожидаемыми значениями выходных сигналов. Для обучающей выборки, состоящей из $$p$$ примеров, целевая функция имеет вид
$$E(w) = [ \sum_{j=1}^p \sum_{k=1}^M (y_k^{(j)} - d_k^{(j)})^2]/2$$Минимизация целевой функции достигается уточнением вектора весов (обучением) по формуле
$$w(t+1) = w(t) + \Delta w,$$где
$$\begin{equation} \Delta w = \alpha s(w), \end{equation}$$$$\alpha$$ - коэффициент обучения, а $$s(w)$$ -
направление в пространстве весов $$w.$$
Выбор этого направления обычно основан на определении градиента целевой функции
относительно весов всех слоев сети. Для весов выходного слоя задача имеет
очевидное решение.
Для других слоев используется
Компоненты градиента рассчитываются дифференцированием зависимости (2). В первую очередь определяются веса нейронов выходного слоя. Для выходных весов получаем:
$$\partial E/ \partial w_{ij}^{(2)} = (y_i - d_i)[df(u_i^{(2)})/du_i^{(2)}]v_j,$$где
$$u_i^{(2)} = \sum_{j=0}^K w_{ij}^{(2)}v_j$$Если ввести обозначение
$$\partial_i^{(2)} = (y_i - d_i)[df(u_i^{(2)})/du_i^{(2)}],$$то соответствующую компоненту градиента относительно весов выходного слоя можно представить в виде
$$\begin{equation} \partial E/ \partial w_{ij}^{(2)} = \partial_i^{(2)}v_j. \end{equation}$$Компоненты градиента относительно нейронов скрытого слоя определяются так же, но описываются более сложной зависимостью, следующей из существования функции, которая задана в виде
$$\partial E/ \partial w_{ij}^{(1)} = \sum_{k=1}^M (y_k - d_k)[dy_k/dv_i][dv_i/dw_{ij}^{(1)}].$$Отсюда получаем
$$\partial E/ \partial w_{ij}^{(1)} = \sum_{k=1}^M (y_k - d_k)[df(u_k^{(2)}) / du_k^{(2)}] w_{ki}^{(2)} [df(u_i^{(1)}) / du_i^{(1)}] x_j,$$Если ввести обозначение
$$\partial_i^{(1)} = \sum_{k=1}^M (y_k - d_k)[df(u_k^{(2)})/du_k^{(2)}]w_{ki}^{(2)}[df(u_i^{(1)})/du_i^{(1)}],$$то получим выражение, определяющее компоненты градиента относительно весов нейронов входного слоя в виде
$$\begin{equation} \partial E / w_{ij}^{(1)} = \partial_i^{(1)} x_j. \end{equation}$$В обоих случаях (формулы (3) и (4)) описания градиента имеют аналогичную
структуру и
представляются произведением двух сигналов: первый соответствует начальному
узлу данной
взвешенной связи, а второй — величине погрешности, перенесенной на узел,
с которым эта связь
установлена. Определение вектора градиента важно для последующего процесса
уточнения весов.
В классическом
В соответствии с алгоритмом обратного распространения ошибки в каждом цикле обучения выделяются следующие этапы:
1. Анализ нейронной сети в прямом направлении передачи информации при генерации входных сигналов, составляющих очередной вектор $$x.$$ В результате такого анализа рассчитываются значения выходных сигналов нейронов скрытых слоев и выходного слоя, а также соответствующие производные $$df(u_i^{(1)})/du_i^{(1)}, df(u_i^{(2)})/du_i^{(2)}, \ldots, df(u_i^{(m)})/du_i^{(m)}$$ функций активации каждого слоя ( $$m$$ - количество слоев сети).
2. Создание
(рис 2) Сеть обратного распространения ошибки3. Уточнение весов (обучение сети) производится по предложенным выше
формулам для оригинальной
сети и для
4. Описанный процесс следует повторить для всех обучающих примеров задачника, продолжая его вплоть до выполнения условия остановки алгоритма. Действие алгоритма завершается в момент, когда норма градиента упадет ниже априори заданного значения, характеризующего точность процесса обучения.
Руководствуясь рис. 2, можно легко определить все компоненты градиента целевой функции, т.е. все частные производные функции $$E$$ по весам сети. Для этого, двигаясь от входов сети (бывших выходов), нужно перемножить все встречающиеся на пути величины (кроме весов $$w_{ij}^{(k)}$$, для которых рассчитывается частная производная $$\partial E / w_{ij}^{(k)}$$ ). Кроме того, там, где дуги сходятся к одной вершине, нужно выполнить сложение произведений, полученных на этих дугах.
Так, например, чтобы посчитать производную $$\partial E/ w_{12}^{(2)}$$, нужно перемножить величины $$y_2 - d_2, df(u_2^{(2)}) / du_2^{(2)}, v_1$$, а для вычисления производной $$\partial E / w_{21}^{(1)}$$ нужно посчитать произведения
$$\pi_1=(y_1 - d_1)\times[\partial f(u_1^{(2)}) /\partial u_1^{(2)}] w_{12}^{(2)}$$и
$$\pi_2=(y_2 - d_2) [\partial f(u_2^{(2)}) / \partial u_2^{(2)}] w_{22}^{(2)}$$и затем сложить эти произведения и результат умножить на $$\partial f(u_2^{(2)}) / \partial u_2^{(2)}$$ и $$x_1.$$
Таким образом, получим
$$\partial E / \partial w_{12}^{(1)}=(\pi_1+\pi_2)[\partial f(u_2^{(1)}) / \partial u_2^{(1)}] x_1 =\\$$ $$=[(y_1-d_1)[\partial f(u_1^{(2)})/\partial u_1^{(2)}]w_{12}^{(2)} + (y_2 -d_2) [\partial f(u_2^{(2)})/\partial u_2^{(2)})]w_{22}^{(2)}]\times\\$$ $$\times [ \partial f(u_2^{(1)})/\partial u_2^{(1)}] x_1 = x_1 \sum^2_{k=1} (y_k-d_k)[\partial f(u_k^{(2)})/ \partial u_k^{(2)}]w_{k2}^{(2)} [\partial f(u_2^{(1)})/ \partial u_2^{(1)}].$$Все пошаговые методы оптимизации состоят из двух важнейших частей:
Методы одномерной оптимизации дают эффективный способ для выбора шага.
В простейшем случае коэффициент обучения фиксируется на весь период оптимизации. Этот способ практически используется только совместно с методом наискорейшего спуска. Величина подбирается раздельно для каждого слоя сети по формуле
$$\alpha \le min(1/n_i),$$где $$n_i$$ обозначает количество входов $$i$$ -го нейрона в слое.
Более эффективный метод основан на адаптивном подборе коэффициента $$\alpha$$ с учетом фактической динамики величины целевой функции. Стратегия изменения значения $$\alpha$$ определяется путем сравнения суммарной погрешности $$\varepsilon$$ на $$t$$ -й итерации с ее предыдущим значением, причем рассчитывается по формуле
$$\varepsilon = [ \sum_{i=1}^M (y_i - d_i)^2]^{1/2}.$$Для ускорения процесса обучения следует стремиться к непрерывному увеличению $$\alpha$$ при одновременном контроле прироста погрешности $$\varepsilon$$ по сравнению с ее значением на предыдущем шаге. Незначительный рост погрешности считается допустимым.
Если погрешности на $$t$$ -1-й и $$t$$ -й итерациях обозначить соответственно $$\varepsilon_{t-1}$$ и $$\varepsilon_t$$, а коэффициенты обучения на этих же итерациях — $$\alpha_{t-1}$$ и $$\alpha_t$$, то значение $$\varepsilon_{t+1}$$ следует рассчитывать по формуле
$$\alpha_{t+1} = \alpha_t \rho_d, \t{ если } \varepsilon_t > k_w \varepsilon_{t-1},$$ $$\alpha_{t+1} = \alpha_t \rho_i, \t{ если } \varepsilon_t \le k_w \varepsilon_{t-1}.$$где $$k_w$$ - коэффициент допустимого прироста погрешности, $$\rho_d$$ - коэффициент уменьшения $$\alpha, \rho_i$$ - коэффициент увеличения $$\alpha.$$
Наиболее эффективный, хотя и наиболее сложный, метод подбора коэффициентов обучения связан с направленной минимизацией целевой функции в выбранном направлении $$s_t.$$ Необходимо так подобрать значение $$\alpha_t$$, чтобы новое решение $$w_{t+1}=w_t+ \alpha_t s_t$$ соответствовало минимуму целевой функции в данном направлении $$s_t.$$
Поиск минимума основан на полиномиальной аппроксимации целевой функции. Выберем для аппроксимации многочлен второго порядка
$$E(w) = P_2(\alpha) = a_2 \alpha^2 + a_1 \alpha + a_0,$$где $$a_2$$, $$a_1$$ и $$a_0$$ — коэффициенты, определяемые в цикле оптимизации. Для расчета этих коэффициентов используем три произвольные точки $$w_1, w_2, w_3$$, лежащие в направлении $$s_t$$, т.е.
$$w_i = w + \alpha_i s_t,\quad i = 1,2,3.$$Соответствующие этим точкам значения целевой функции $$E(w)$$ обозначим как
$$\begin{equation} P_2(\alpha_i) = E_i = E(w_i),\quad i = 1,2,3. \end{equation}$$Коэффициенты $$a_2$$, $$a_1$$ и $$a_0$$ рассчитываются в соответствии с решением системы уравнений (5). Для определения минимума многочлена $$P_2(\alpha)$$ его производная $$dP_2/d\alpha = 2a_2 \alpha + a_1$$ приравнивается к нулю, что позволяет получить $$\alpha_{min} = - a_1/2a_2$$. После подстановки выражений для $$E_1, E_2, E_3$$ в формулу для $$\alpha_{min}$$ получаем
$$\alpha_{min} = \alpha_2 - [( \alpha_2 - \alpha_1)^2 (E_2-E_3)-\\$$ $$- (\alpha_2 - \alpha_3)^2(E_2-E_1)]/2[(\alpha_2 - \alpha_1)(E_2-E_3)-(\alpha_2 - \alpha_3)(E_2-E_1)].$$Обучение нейронных сетей представляет собой трудоемкий процесс, далеко не всегда дающий ожидаемые результаты. Проблемы возникают из-за нелинейных функций активации, образующих многочисленные локальные минимумы, к которым может сводиться процесс обучения. Применение методов глобальной оптимизации уменьшает вероятность остановки процесса обучения в точке локального минимума, однако платой за это становится резкое увеличение трудоемкости и длительности обучения. Для правильного подбора управляющих параметров требуется большой опыт.
На результаты обучения огромное влияние оказывает подбор начальных значений весов сети. Выбор начальных значений, достаточно близких к оптимальным, значительно ускоряет процесс обучения. К сожалению, не существует универсального метода подбора весов, который бы гарантировал нахождение наилучшей начальной точки для любой решаемой задачи.
Неправильный выбор диапазона случайных значений весов может вызвать слишком раннее насыщение нейронов, в результате которого, несмотря на продолжающееся обучение, среднеквадратичная погрешность будет оставаться практически постоянной. Это означало бы попадание в седловую зону целевой функции вследствие слишком больших начальных значений весов. При этом взвешенная сумма входных сигналов нейрона может иметь значение, соответствующее глубокому насыщению сигмоидальной функции активации, и поляризация насыщения будет обратна ожидаемой. Значение возвратного сигнала, генерируемое в методе обратного распространения, пропорционально величине производной от функции активации и в точке насыщения близко нулю. Поэтому изменения значений весов, выводящие нейрон из состояния насыщения, происходят очень медленно. Процесс обучения надолго застревает в седловой зоне. Нейрон, остающийся в состоянии насыщения, не участвует в преобразовании данных, сокращая таким образом эффективное количество нейронов в сети. В итоге процесс обучения чрезвычайно замедляется, поэтому состояние насыщения отдельных нейронов может длиться практически непрерывно вплоть до исчерпания лимита итераций.
Удаление стартовой точки активации нейронов от зоны насыщения достигается путем ограничения диапазона случайных значений. Почти все оценки нижней и верхней границ диапазона допустимых значений лежат в интервале (0,1). Хорошие результаты дает равномерное распределение весов, нормализованное для каждого нейрона по амплитуде $$w_{in} = 2/(n_{in})^{1/2}$$, где $$n_{in}$$ означает количество входов нейрона. Веса порогов для нейронов скрытых слоев должны принимать случайные значения из интервала $$(-1/w_{in}, 1/w_{in})$$, а для выходных нейронов - нулевые значения.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.