Итак, сегодня мы сделаем то же самое, но добавим еще один компонент - функцию активации. А пока давайте сохраним простоту и воспользуемся логистической функцией. (Обратите внимание, что мы будем использовать нотацию 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