05 нейронные сети

Нейронные сети

«Один алгоритм обучения» гипотеза

  1. Эксперименты Нейрон-Перетелеграфирование

Модель Представление

определять
  1. Сигмовидной (логистическая) функция активации
  2. блок смещения
  3. входной слой
  4. выходной слой
  5. скрытый слой
  6. \ (A_i ^ {(к)} \): '' активации единичного \ (\ я) в слое \ (к \)
  7. \ (\ Theta ^ {(к)} \): матрица весов, контролирующих функцию отображения из слоя \ (\ J) к слою \ (к + 1 \).
подсчитывать

\ [а ^ {(к)} = (г ^ {(к)}) \]
\ [г (х) = \ гидроразрыва {1} {1 + е ^ {- х}} \]
\ [г ^ {(J + 1)} = \ Theta ^ {(к)} а ^ {(к)} \]
\ [H_ \ тета (х) = а ^ {(J + 1)} = (г ^ {( J + 1)}) \]

Стоимость Функция

\ [
J (\ Theta) = - \ гидроразрыва {1} {т} \ sum_ {= 1} ^ т \ sum_ {к = 1} ^ К \ влево [у ^ {(я)} _ к \ лог (( h_ \ Theta (х ^ {(я)})) _ к) + (1 - у ^ {(я)} _ к) \ лог (1 - (h_ \ Theta (х ^ {(я)})) _ к) \ вправо] + \]

\ [\ гидроразрыва {\ Lambda} {2m} \ sum_ {л = 1} ^ {L-1} \ sum_ {= 1} ^ {s_l} \ sum_ {J = 1} ^ {S_ {L + 1} } (\ theta_ {J, I} ^ {(л)}) ^ 2
\]

Обратного распространения Алгоритм
Алгоритм
  1. Гипотезы мы рассчитали все \ (а ^ {(л)} \) и \ (г ^ {(л)} \)
  2. множество \ (\ Delta ^ {(л)} _ {I, J} = 0 \) для всех (л, I, J)
  3. используя \ (у ^ {(т)} \), вычислить \ (\ Delta ^ {L} = а ^ {(Л)} - у ^ {(т)} \), где \ (у ^ {(т) } _ {k} (я) \ в {0, 1} \) указывает на то, принадлежит ли текущий пример обучения для класса к {\ (у ^ {(т)} _ {к} (к) = 1 \)}, или если оно принадлежит к другому классу = 0;
  4. Для скрытого слоя \ (L = L - 1 \) до 2, набор
    \ [
    \ дельта ^ {(л)} = (\ Theta ^ {(л)}) ^ Т \ дельта ^ {(L + 1) }. * г '(г ^ {(л)})
    \]
  5. забываю удалить \ (\ delta_0 ^ {(л)} \) путем. delta(2:end)
    \ [
    \ Delta ^ {(л)} = \ Delta ^ {(л)} + \ дельта ^ {(L + 1)} (а ^ {(л)}) ^ Т
    \]
  6. градиент
    \ [
    \ гидроразрыва {\ парциальное} {\ парциальное \ Theta ^ {(л)} _ {I, J}} J (\ Theta) = D ^ {(л)} _ {I, J} = \ гидроразрыва { 1} {т} \ Delta ^ {(л)} _ {I, J} +
    \ начинают {случаи} \ гидроразрыва {\ Lambda} {т} \ Theta ^ {(л)} _ {I, J}, & \ текст {если J $ \ GEQ $ 1} \\ 0, & \ текст {если J = 0} \ конец {случаи}
    \]
Градиент Поверка
  1. \ [
    \ Гидроразрыва {d} {d \ Theta} J (\ Theta) \ ок \ гидроразрыва {J (\ Theta + \ эпсилон) - J (\ Theta - \ эпсилон)} {2 \ эпсилон}
    \]
  2. Малое значение для \ (\ \ эпсилон), такие как \ (\ эпсилон = 10 ^ {- 4} \)
  3. проверьте, что gradApprox \ (\ ок \) deltalVector

4.

epsilon = 1e-4;
for i = 1 : n
    thetaPlus = theta;
    thetaPlus(i) += epsilon;
    thetaMinus = theta;
    thetaMinus(i) -= epsilon;
    gradApprox(i) = (J(thetaPlus) - J(thetaMinus)) / (2 * epsilon);
end;
Прокатка и разворачивание
Случайная инициализация
Theta = rand(n, m)) * (2 * INIT_EPSILON) - INIT_EPSILON;
  1. инициализировать \ (\ Theta ^ {(л)} _ {IJ} \ в [- \ эпсилон \ эпсилон] \)
  2. иначе, если мы инициализация все тета весов к нулю, все узлы будут обновлены до того же значение, когда мы неоднократно back_propagate.
  3. Одна из эффективных стратегий выбора \ (\ epsilon_ {INIT} \) является основывать количество единиц в сети. Хороший выбор \ (\ epsilon_ {INIT} \) является \ (\ epsilon_ {} = INIT \ гидроразрыва {\ SQRT {6}} {\ SQRT {L_ {в} + {L_ вне}}} \)
Обучение нейронной сети
  1. Случайным инициализации весов
    Theta = rand(n, m) * (2 * epsilon) - epsilon;
  1. Реализация прямого распространения, чтобы получить \ (H_ \ Theta (х ^ {(я)}) \) для любого \ (х ^ {(я)} \)
  2. Реализовать код для вычисления функции затрат \ (J (\ Theta) \)
  3. Реализовать обратно-проп вычислить частные производные \ (\ гидроразрыва {d (J \ Theta)} {d \ theta_ {JK} ^ {(л)}} \)

    • \ (G «(г) = \ д {гидроразрыва} {дг} г (г) = г (г) (1 - (г)) \)
    • \ (Сигмовидной (г) = г (г) = \ гидроразрыва {1} {1 + е ^ {-} г} \)
  4. С помощью проверки для сравнения градиента \ (\ гидроразрыва {d (J \ Theta)} {d \ theta_ {JK} ^ {(л)}} \) вычисляется с использованием обратного распространения против используя численную оценку градиента \ (J ( \ Theta) \)
    Затем отключите градиентной проверочный код

  5. Использование градиентного спуска или усовершенствованный метода оптимизации с обратным распространением, чтобы попытаться свести к минимуму \ (J (\ Theta) \) как функция от параметров \ (\ Theta \)

рекомендация

отwww.cnblogs.com/QQ-1615160629/p/05-Neural-Networks.html