Обратное распространение

Обратное распространение

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

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

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

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

Алгоритм обратного распространения — это метод изучения весов в многослойной нейронной сети с обратной связью. Таким образом, требуется определить сетевую структуру из одного или нескольких уровней, где один уровень полностью связан со следующим уровнем. Стандартная структура сети состоит из входного слоя, скрытого слоя и выходного слоя. Метод в основном касается адаптации весов к расчетной ошибке при наличии входных шаблонов, и метод применяется в обратном направлении от выходного слоя сети к входному слою.

Следующий алгоритм обеспечивает псевдокод подготовить сеть методом обратного распространения. Вес инициализируется для каждого входа плюс дополнительный вес для постоянного входа смещения, который почти всегда установлен на 1,0. Активация одного нейрона по заданному входному шаблону рассчитывается следующим образом:

обратное распространение

где n — количество весов и входных данных, x_ki — k-й атрибут i-го входного шаблона, а w_bias — вес смещения. Логистическая (сигмовидная) передаточная функция используется для вычисления выходного сигнала нейрона в [0; 1] и обеспечивает нелинейность между входными и выходными сигналами: 1/(1+exp(-a)), где a представляет собой активацию нейронов.

обратное распространение

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

Сигнал ошибки вычисляется для каждого узла и отправляется обратно по сети. Для выходных узлов это сумма ошибки между выходными данными узла и ожидаемыми выходными данными:

обратное распространение

где es_i — сигнал ошибки для i-го узла, c_i — ожидаемый результат, а o_i — фактический результат для i-го узла. Член td является производной от выхода i-го узла. Если используется передаточная функция sigmod, td_i будет o_i*(1-o_i). Для скрытых узлов сигнал ошибки представляет собой сумму взвешенных сигналов ошибки следующего слоя.

обратное распространение

где es_i — сигнал ошибки для i-го узла, w_ik — вес между i-м и k-м узлами, а es_k — сигнал ошибки для k-го узла.

Производные ошибки для каждого веса вычисляются путем объединения входных данных для каждого узла и сигнала ошибки для узла.

обратное распространение

где ed_i — производная ошибки для i-го узла, es_i — сигнал ошибки для i-го узла, а x_k — вход k-го узла в предыдущем слое. Этот процесс включает смещение, имеющее постоянное значение.

Веса обновляются в направлении, которое уменьшает производную ошибки ed_i (ошибка, присвоенная весу), измеряемую коэффициентом обучения.

обратное распространение

где w_i(t+1) — i-й обновленный вес, ed_k — производная ошибки для k-го узла, а learning_rate — параметр коэффициента обновления.

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

Входные и выходные значения должны быть нормализованы таким образом, чтобы x находился в пределах [0;1]. Начальные веса обычно представляют собой небольшие случайные значения в [0;0,5]. Веса можно обновлять в режиме онлайн (после воздействия каждого входного шаблона) или в пакетном режиме (после наблюдения фиксированного количества шаблонов). Пакетные обновления должны быть более стабильными, чем онлайн-обновления для некоторых сложных проблем.

Логистическая (сигмовидная) передаточная функция обычно используется для передачи активации в двоичное выходное значение, хотя могут использоваться и другие передаточные функции, такие как гиперболический тангенс (tanh), гауссовская функция и softmax. Рекомендуется предоставлять системе входные модели в другом случайном порядке на каждой итерации.

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

Один выходной узел является обычным для задач регрессии, так же как один выходной узел на класс является общим для задач классификации.

Делиться
ru_RURU
%d такие блоггеры, как: