Найти ошибку

Баллы: 0 / 3

Ошибка в градиентном спуске почти никогда не роняет программу. Она молча заставляет модель учиться не туда, и заметить её часто можно только по поведению чисел.

Разные ошибки выглядят по-разному. При слишком большом шаге вес начинает перелетать через минимум: отклонение w − 3 меняет знак, а его модуль растёт. Если потерян минус в правиле обновления, вес в нашем примере уходит от минимума всё дальше в одну сторону. Очень медленное уменьшение |w − 3|, наоборот, может указывать на слишком маленький шаг.

Умение по поведению чисел предположить причину ошибки ещё до просмотра кода — полезный навык при отладке обучения.

Подробно: Длина шага.
 


Задание

В программе одна ошибка. Минимум функции находится в точке w = 3, но программа к нему не приближается.

w = 0
lr = 0.1

for step in range(10):
    gradient = 2 * (w - 3)
    w = w + lr * gradient
    print(step, w)

Приведите исправленную программу.

Ниже программы в комментариях напишите:

  1. по какому признаку в выводе можно было заметить ошибку;
  2. чем этот признак отличается от поведения программы при слишком большом lr.

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