Алгоритм ручного толчка BP - спасение перед интервью

алгоритм
Алгоритм ручного толчка BP - спасение перед интервью

напиши первым

Объяснений по алгоритму БП в интернете много, лишнюю статью писать не надо, но всегда хочется быстро просмотреть перед собеседованием, а письменной информации нет. Эта статья направлена ​​на то, чтобы извлечь чистый процесс вывода, но объяснить слишком много, чтобы основные друзья могли быстро пройти интервью.

абстрагироваться от проблемы

данный тренировочный наборD = \lbrace (x_1,y_1), (x_2,y_2),...,(x_m,y_m) \rbrace  , x_m \in R^d, y_m \in R^lВ качестве примера возьмем сеть прямой связи с одним скрытым слоем, как показано на рисунке выше:

Введите появившиеся параметры:

  • dКоличество нейронов во входном слое
  • lКоличество нейронов в выходном слое
  • qНейроны скрытого слоя
  • \theta_jвыходной слойjпорог нейрона
  • \gamma_hскрытый слойhпорог нейрона
  • v_{ih}входной слойiнейроны и скрытые слоиhвеса связей нейронов
  • w_{hj}скрытый слойhнейрон и выходной слойjвеса связей нейронов
  • b_hскрытый слойhвыход нейрона
  • \alpha_h = \sum_{i=1}^d v_{ih}x_iскрытый слойhвход в нейрон
  • \beta_j = \sum_{h=1}^q w_{hj}b_hвыходной слойjвход в нейрон

Внедрить основное содержание оптимизации

На рисунке выше показана простейшая модель нейронной сети для одного нейрона, также известная как «модель нейрона MP». Эту модель можно рассматривать как наименьшую единицу нейронной сети. Мы ориентируемся на этот порог\theta, нейронный выходy=f(\sum_{i=1}^n w_i x_i- \theta), модель выводит результат классификации, так что это\thetaЭто также напрямую влияет на результаты классификации. Обучение нейронной сети — это обновление весов соединений, поэтому обучение весов соединений не нужно объяснять. Сам порог также можно использовать в качестве веса для фиктивного узла со значением -1. Итак, наш алгоритм BP обученОсновным содержанием является вес связи нейронов и порог нейронов.

Процесс обучения алгоритму АД

  1. Уточнить функцию потерь и стратегию настройки параметров

пара образцов(x_k, y_k), предполагая, что выход нейронной сети\hat y_k = (\hat y_1^k,\hat y_2^k,...,\hat y_l^k),который

\hat y_j^k = f(\beta_j - \theta_j)

сеть в образце(x_k,y_k)среднеквадратическая ошибка на

E_k = \frac{1}{2} \sum_{j=1}^l (\hat y_j^k - y_j^k)^2

Стратегия настройки - градиентный спуск:

v = v+\Delta v  \qquad \qquad  \Delta v = -\eta \frac{dE_k}{d v}
  1. Вычислить порог выходного слоя\theta_jградиент\frac{dE_k}{d \theta_j}

\hat y_j^kпрямой ударE_k, \theta_jпрямой удар\hat y_j^k, используя цепное правило:

\frac{dE_k}{d \theta_j} = \frac{dE_k}{d\hat y_j^k} \centerdot \frac{d\hat y_j^k}{d \theta_j}

Из предыдущей формулы можно вычислить:

\frac{dE_k}{d\hat y_j^k} = \hat y_j^k - y_j^k

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

\frac{d\hat y_j^k}{d \theta_j} = -\hat y_j^k(1-\hat y_j^k)

Так что есть

\frac{dE_k}{d \theta_j} = \frac{dE_k}{d\hat y_j^k} \cdot \frac{d\hat y_j^k}{d \theta_j} = \hat y_j^k(1-\hat y_j^k)(\hat y_j^k - y_j^k)=g_j
  1. Рассчитать веса соединения от скрытого слоя к выходному слоюw_{hj}градиент\frac{dE_k}{dw_{hj}}

\hat y_j^kпрямой ударE_k,\beta_jпрямой удар\hat y_j^k,w_{hj}прямой удар\beta_j, используя цепное правило, поэтому мы имеем:

\frac{dE_k}{dw_{hj}}=\frac{dE_k}{d\hat y_j^k} \cdot \frac{d\hat y_j^k}{d\beta_j} \cdot \frac{d\beta_j}{dw_{hj}}

Поскольку функция активации является сигмовидной функцией

\frac{dE_k}{d \hat y_j^k} = \hat y_j^k(1-\hat y_j^k)

Зависит от\beta_jОпределение показывает, что:

\frac{d\beta_j}{dw_{hj}}=b_h

Комплексно найти:

\frac{dE_k}{dw_{hj}}=-g_jb_h
  1. Рассчитать порог скрытого слоя\gamma_hградиент\frac{dE_k}{\gamma_h}

b_hОказывать воздействиеE_k, \gamma_hпрямой ударb_h, то есть:

\frac{dE_k}{d\gamma_h}=\frac{dE_k}{db_h} \cdot \frac{db_h}{d \gamma_h}
\frac{dE_k}{db_h}=\sum_{j=1}^l \frac{dE_k}{d \hat y_j^k} \cdot \frac{d\hat y_j^k}{d\beta_j} \cdot \frac{d\beta_j}{db_h} = -\sum_{j=1}^l g_j w_{hj}
\frac{db_h}{d\gamma_h} = \frac{df(\alpha_h-\gamma_h)}{d\gamma_h} = -f(\alpha_h-\gamma_h)=-b_h(1-b_h)
\frac{dE_k}{d\gamma_h}=b_h(1-b_h)\sum_{j=1}^lg_jw_{hj}
  1. Подведите итоговый результат

В более широком смысле в многоуровневой прямой сети пороговый градиент скрытого слоя выражается как пороговый градиент m-го уровня.g_h^{(m)}, выход нейронов в скрытом слое выражается как выход нейронов в слое mb_h^{(m)}, вес соединения между скрытым слоем и выходным слоем выражается как вес слоя m+1w_{hj}^{(m+1)}, пороговый градиент выходного слоя выражается как пороговый градиент слоя m+1g_j^{(m+1)}. Тогда пороговый градиент скрытого слоя может быть выражен как:

g_h^{(m)}=b_h^{(m)}(1-b_h^{(m)})\sum_{j=1}^l w_{hj}^{(m+1)}g_j^{(m+1)}

Видно, что в процессе настройки порогаПороговый градиент текущего слоя зависит от порогового градиента следующего слоя, в этом суть алгоритма БП, то же самое:

\frac{dE_k}{dw_{hj}}^{(m)} = -g_j^{(m)}b_h^{(m+1)}

знать,Градиент веса соединения текущего слоя зависит от порогового градиента нейронов в текущем слое и выхода нейронов в верхнем слое..

Преимущества и недостатки алгоритма BP

преимущество

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

недостаток:

  1. Из-за большого количества параметров в нейронной сети BP каждый раз необходимо обновлять большое количество порогов и весов, поэтому скорость сходимости будет слишком медленной.
  2. Не существует четкой формулы для количества узлов скрытого уровня в сети.Традиционный метод должен непрерывно устанавливать количество узлов скрытого уровня методом проб и ошибок и определять окончательное количество узлов скрытого уровня в соответствии с результатами сетевых ошибок.
  3. С математической точки зрения, алгоритм BP является быстрым алгоритмом градиентного спуска, и легко попасть в проблему локального минимума. При возникновении локального минимума ошибка удовлетворяет требованиям на поверхности, но полученное в это время решение не обязательно является реальным решением задачи. Таким образом, алгоритм BP неполный.