Итак, сегодня мы сделаем то же самое, но добавим еще один компонент - функцию активации. А пока давайте сохраним простоту и воспользуемся логистической функцией. (Обратите внимание, что мы будем использовать нотацию log (), и когда она будет реализована на Python, она может выглядеть примерно так, как показано ниже.)
import numpy as np function log(x): return 1 / ( 1 + np.exp(-1 *x)) function d_log(x): return log(x) * (1 - log(x))
В любом случае, это отправная точка, обучающие данные (x) и основные данные (y) и то, что мы хотим сделать, посчитайте, сколько их в данной строке данных.
Но вот разница, связь между текущим состоянием и следующим состоянием определена ниже.
(E) - это уравнение, определяющее взаимосвязь между текущим состоянием K и предыдущим состоянием k-1. Теперь давайте выполним процесс прямой подачи, который определен в (F). Но подождите, в State 3 нет функции log ()? ПОЧЕМУ?
Логистическая функция выводит число от 0 до 1, это означает, что если у нас больше одной единицы, нейронная сеть не может предсказать правильное количество единиц!
Прежде чем двигаться дальше, я хочу сделать что-то другое, чтобы проще объяснить обратное распространение, я хочу разделить несколько терминов.
Таким образом, State может иметь State (Out), в котором означает вывод состояния, и State (In), в котором означает ввод состояния.
Теперь давайте выполним обратное распространение, мы снова будем следовать тому же шагу, что и в первом уроке. Вывести производную по каждому Wx и Wrec на каждой временной отметке.
Как и в моем предыдущем посте, попробуйте самостоятельно вывести производные для метки времени на 1. (Это действительно поможет). Кроме того, можете ли вы заметить разницу между наличием функции активации и отсутствием?
Цветные прямоугольники - это области, где мы получаем производную для функций активации, и все!
К сожалению, на данный момент у меня нет кода для этой математики, однако у меня все еще есть видеоурок, а также код для vanilla RNN без функций активации.
Обновление 23 декабря 2017 г .: вот интерактивный код перейдите по этой ссылке
Кодируйте Github: Ссылка
Код: https://github.com/JaeDukSeo/Only_Numpy_Basic/blob/master/rnn/a_rnn_simple.py
Надеюсь, вы что-то узнали!
Чтобы узнать больше, посетите мой сайт и мой канал на Youtube!
Сайт: https://jaedukseo.me/
Канал на YouTube: https://www.youtube.com/c/JaeDukSeo