🧠 Основные уравнения для полносвязной нейронной сети

Прямое распространение:

Функции стоимости:

. Квадратичный

. Кросс-энтропия

Обратное распространение:

dz2 = a2 - y
dz1 = np.dot(W2.T, dz2) * relu_prime(z1)
dW2 = np.dot(dz2,a1.T) / m
db2 = np.sum(dz2, axis = 1, keepdims = True) / m
dW1 = np.dot(dz1,x.T) / m
db1 = np.sum(dz1, axis = 1, keepdims = True) / m

Обновление параметров:

W2 = W2 - learning_rate * dW2
b2 = b2 - learning_rate * db2
W1 = W1 - learning_rate * dW1
b1 = b1 - learning_rate * db1

Регуляризация L2:

Нормализация функций:

Инициализация весов, предотвращающая исчезновение градиентов:

# if activation is relu :
W1 = np.random.randn(n_l1, n_l0) * np.sqrt(2 / n_l0)
# if activation is tanh :
W1 = np.random.randn(n_l1, n_l0) * np.sqrt(1 / n_l0)

Снижение скорости обучения:

# for i in range(num_epochs)
alpha = 1 / (1 + decay_rate * i) * alpha_0

Точность, отзыв, оценка F1:

Экспоненциально взвешенное среднее :

Градиентный спуск с импульсом:

RMSProp:

Адам:

Пакетная нормализация:

Функции активации:

. РеЛу

. РеЛу

. Тан

. Тань

. Сигмоид

. Сигмовидная

. Софтмакс

. Софтмакс