Модуль: Обратное распространение (Backpropagation)


3Сеть учится XOR

Баллы: 0 / 10

Сеть, которая сама научилась XOR

Обучите небольшую нейронную сеть решать XOR:

x₁ x₂ y
0 0 0
0 1 1
1 0 1
1 1 0

Архитектура: 2 входа → 2 ReLU-нейрона → 1 линейный выход.

Начальные параметры, learning_rate = 0.1 и 500 шагов уже заданы.

Реализуйте
  1. forward: z1, a1, prediction и MSE-loss.
  2. backward: d_prediction, dW2, db2, da1, dz1, dW1, db1.
  3. step — обновление W1, b1, W2, b2.
  4. Цикл обучения из 500 шагов.
  5. Численную проверку хотя бы одного градиента:
    g = (loss(w + eps) - loss(w - eps)) / (2 * eps)
    eps = 1e-5
Выведите
  • loss до и после обучения;
  • 4 вещественных прогноза;
  • 4 ответа: prediction >= 0.5 → 1, иначе 0;
  • аналитический и численный градиент.

В комментарии объясните, почему XOR нельзя решить одной линейной моделью и зачем нужен скрытый слой с ReLU.

Нельзя: PyTorch, TensorFlow, JAX, autograd, готовые классификаторы и заранее подобранные финальные веса.


Ваш ответ
Тренировка — проверяйте части и берите подсказки по ходу.
Для проверки решения задачи необходимо зарегистрироваться или авторизоваться!
Ваше решение