🧠 Основные уравнения для полносвязной нейронной сети
Прямое распространение:
Функции стоимости:
. Квадратичный
. Кросс-энтропия
Обратное распространение:
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:
Адам:
Пакетная нормализация:
Функции активации:
. РеЛу
. РеЛу
. Тан
. Тань
. Сигмоид
. Сигмовидная
. Софтмакс
. Софтмакс