Домашнє завдання

Нейронні мережі

Залізне правило теми. Щоразу, коли ти змінюєш формули зворотного проходу — додаєш активацію, шар, регуляризацію, — ти зобовʼязаний прогнати чисельну перевірку градієнта заново. Без неї жоден рівень не зараховується.


рівень 1Рівень 1 — База

Дослідь швидкість навчання й ширину мережі.

  1. Візьми мережу з практики й навчи її з кроками 0.01, 0.1, 1.0, 5.0, 30.0. Побудуй усі криві втрат на одному графіку в логарифмічній шкалі.
  2. Навчи мережу з прихованих_нейронів = 1, 2, 3, 4, 8 і для кожної намалюй межу рішень.

Зроблено, якщо: - на графіку кроків видно три різні режими: «не встигає», «робоче плато», «пилка або вибух», і кожен підписаний конкретним значенням $\eta$; - названо мінімальну кількість нейронів, при якій межа замикається навколо внутрішнього кола, і показано картинку «на один нейрон менше» для порівняння; - одним реченням пояснено, чому один нейрон принципово не може розвʼязати цю задачу.


рівень 2Рівень 2 — Плюс

Додай ReLU і порівняй її з tanh чесно.

  1. Розшир прямий_прохід і зворотний_прохід третім режимом "relu": активація np.maximum(0, z), похідна (z > 0). Зверни увагу: для похідної тепер потрібен Z1, а не A1 — подумай чому.
  2. Прогони чисельну перевірку градієнта для ReLU. Вона має дати похибку того ж порядку, що й для tanh.
  3. Порівняй швидкість збіжності tanh і ReLU на одному графіку втрат.
  4. Порахуй, скільки нейронів «померло» після навчання — тобто для скількох нейронів Z1 <= 0 на всіх навчальних обʼєктах.

Зроблено, якщо: - перевірка градієнта для ReLU проходить, і відносна похибка виписана в зошиті; - на графіку видно, яка активація збігається швидше при однаковому кроці; - названо кількість мертвих нейронів при $\eta = 1$ і при $\eta = 10$, і сказано, чому більший крок їх убиває; - пояснено, чому для похідної ReLU треба саме Z1, а для похідної tanh вистачає A1.


рівень 3Рівень 3 — Виклик

Перепиши мережу на довільну кількість шарів і відтвори затухання градієнта.

  1. Заміни чотири окремі змінні (W1, b1, W2, b2) на списки матриць і зсувів, щоб архітектура задавалась списком розмірів, наприклад [2, 6, 6, 6, 1]. Прямий прохід стає циклом уперед, зворотний — циклом назад.
  2. Перевір градієнт чисельно на мережах із трьома й чотирма прихованими шарами.
  3. Побудуй мережу з 12 прихованих шарів по 6 нейронів, зроби один прямий і один зворотний прохід і намалюй норму градієнта на кожному шарі в логарифмічній шкалі — окремо для sigmoid, tanh і relu.

Зроблено, якщо: - чисельна перевірка проходить для обох глибин (виписані обидві похибки); - побудовано графік «норма градієнта на шарі» з трьома лініями та підписаними осями; - на графік нанесено теоретичну оцінку $0.25^{L-l}$ для сигмоїди, і показано, що реальні значення лягають на неї; - виписано число: у скільки разів ослаб градієнт на першому шарі порівняно з останнім для кожної з трьох активацій.


Підказки