Я получаю много вопросов от людей о градиентном спуске и обратном распространении - вот мое упрощенное объяснение этих концепций, чтобы дать вам некоторое представление о том, как обучаются нейронные сети!
При обучении нейронных сетей мы используем градиентный спуск, чтобы снизить общее количество ошибок, которые делает наша сеть. Градиентный спуск - это алгоритм спуска с холма. Высота холма соответствует «общему количеству ошибок / ошибок», предсказанному нашей сетью.
Мы начинаем с запуска цикла, и на каждой итерации цикла мы стремимся уменьшить общее количество ошибок, которые делает наша сеть. Именно так мы рассчитываем показатель точности обучения сети.
В конце прямого действия мы узнаем «общее количество ошибок», допущенных нашей сетью, путем сравнения нашего прогнозируемого результата с истинным результатом. (Y минус Yhat).
Но только на шаге обратной опоры мы можем увидеть сколько из этой общей ошибки связано с каждым нейроном. В конце концов, все небольшие ошибки, которые делает каждый нейрон, складываются в общую ошибку сети.
Дифференциальное исчисление - это метод, который мы используем, чтобы увидеть, как вещи меняются: быстро ли они меняются? Меняется медленно? Они вообще меняются?
Когда мы выполняем дифференцирование (склона холма), чтобы получить производные функции стоимости, мы определяем градиенты / уклоны в той точке, где мы стоим. Полученные нами градиенты говорят нам, насколько мы наклонены в каждом направлении холма ошибок. Это помогает нам осторожно спуститься с холма ошибок и шаг за шагом достичь дна долины по нашей петле, где мы находим спасение!
Я просто погуглил и нашел это фантастическое видео ... оно настолько хорошо сделано и интуитивно понятно!