Что является производной от функции активации, используемой в обратном распространении? - PullRequest
10 голосов
/ 20 марта 2012

Я читаю этот документ, и они заявили, что формула корректировки веса такова:

новый вес = старый вес + скорость обучения * дельта * df (e)/ de * input

Часть df(e)/de является производной от функции активации, которая обычно является сигмовидной функцией, такой как tanh.Теперь, для чего это на самом деле?Почему мы даже умножаем с этим?Почему не достаточно просто learning rate * delta * input

Этот вопрос возник после этого и тесно связан с ним: Почему в нейронной сети с обратным распространением должна использоваться нелинейная функция активации? .

Ответы [ 2 ]

16 голосов
/ 20 марта 2012

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

Но как отрегулировать вес - то есть, в каком направлении +/-? И на сколько?

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

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

Поскольку расчет ошибки начинается в конце NN (то есть на выходном слое путем вычитания наблюдаемого из прогнозируемого) и продолжается до фронта, он называется backprop .


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

Работает так:

Первая производная - это точка на кривой, у которой наклонная линия имеет наклон 0.

Так что, если вы идете вокруг трехмерной поверхности, определенной целевой функцией, и вы идете к точке, где наклон = 0, то вы находитесь внизу - вы нашли минимум (будь то глобальный или местный) для функции.

Но первая производная важнее этого. Также сообщает вам, если вы идете в правильном направлении , чтобы достичь минимума функции.

Легко понять, почему это так, если подумать о том, что происходит с наклоном касательной, когда точка на кривой / поверхности перемещается вниз к функции минимума.

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

2 голосов
/ 20 марта 2012

Формула обновления веса, которую вы цитируете, - это не просто произвольное выражение.Это происходит путем принятия функции ошибки и минимизации ее с градиентным спуском.Производная функции активации, таким образом, существует благодаря, по существу, правилу цепочки исчисления.

Книги в нейронных сетях с большей вероятностью будут иметь происхождение правила обновления в обратном распространении.Например, Введение в теорию нейронных вычислений по Герцу, Крогу и Палмеру.

...