Что такое производная от функции активации, используемой в backpropagation?
Я читаю этой документ, и они заявили, что формула регулировки веса такова:
новый вес = старый вес + скорость обучения * Дельта * df (e) / de * вход
на df(e)/de
часть является производной от функции активации, которая обычно является сигмовидной функцией, такой как tanh
. Итак, для чего это на самом деле? Почему мы умножаем на это? Почему просто learning rate * delta * input
достаточно?
этот вопрос пришел после это одно и тесно связано с ним:почему нелинейная функция активации должна использоваться в нейронной сети backpropagation?.
2 ответов
обучение нейронная сеть просто относится к нахождению значений для каждой ячейки вес матриц (из которых есть два для NN, имеющего один скрытый слой), так что квадратные различия между наблюдаемыми и прогнозируемыми данными минимизируются. На практике индивидуальные веса, составляющие две весовые матрицы, корректируются с каждой итерацией (их начальные значения часто устанавливаются на случайные значения). Это также называется онлайн-моделью, в отличие от пакет один, где веса корректируются после большого количества итераций.
но как следует регулировать веса--т. е., в каком направлении +/-? И на сколько?
вот где появляется производная. A большое значение для производной в результате большая регулировка к соответствуя весу. Это имеет смысл, потому что если производная большая, это означает, что вы далеки от минимумы. Другими словами, веса корректируются на каждой итерации в направлении самого крутого спуска (наибольшее значение производной) на поверхности функции затрат, определяемой общей ошибкой (наблюдаемой или прогнозируемой).
после вычисления ошибки на каждом шаблоне (вычитание фактического значения переменной ответа или выходного вектора из значения, предсказанного NN во время этой итерации) каждый вес в весовых матрицах корректируется пропорционально вычисленной ошибке уклон.
поскольку вычисление ошибки начинается в конце NN (т. е. на выходном слое путем вычитания наблюдаемого из предсказанного) и переходит на фронт, он называется сеть с обратным распространением ошибки.
в более общем смысле производная (или градиент для многомерных задач) используется методом оптимизации (для backprop, сопряженный градиент, вероятно, самый распространенный) чтобы найти минимумы цели (ака потеря функция).
это работает следующим образом:
первая производная-это точка на кривой, так что касательная к ней линия имеет наклон 0.
Итак, если вы идете вокруг 3D-поверхности, определенной целевой функцией, и вы идете к точке, где slope = 0, то вы находитесь внизу-вы нашли Минима (будь то глобальный или локальный) для функции.
но первая производная более важна чем. Это тоже говорит вам, если вы идете в правильном направлении для достижения минимума функции.
легко понять, почему это так, если вы думаете о том, что происходит с наклоном касательной линии, поскольку точка на кривой/поверхности перемещается вниз к функции minimumn.
наклона (следовательно, значение производной функции в этой точке) постепенно уменьшается. Другими словами,чтобы минимизировать функцию, выполните производная--i.e, если значение уменьшается, то вы двигаетесь в правильном направлении.
формула обновления веса, которую вы цитируете, - это не просто произвольное выражение. Это происходит, принимая функцию ошибки и минимизируя ее с помощью градиентного спуска. Производная функции активации, таким образом, существует потому, что, по существу, цепное правило исчисления.
книги по нейронным сетям с большей вероятностью будут иметь вывод правила обновления при обратном перемещении. Например, введение в теорию нейронных вычислений Герцем, Крогом, и Паломник.