Пошаговый разбор с метафорами, формулами и лайфхаками, которые спасут ваш fit()
Привет, хабровчане! В мире ML градиентный спуск это двигатель внутреннего сгорания: он везде, он работает, но мало кто заглядывает под капот, а ведь именно он превращает случайные веса в модель, которая угадывает котиков, переводит тексты и генерирует картинки.
Вы запускаете model.fit() - и через 100 эпох у вас есть результат, но как именно нейросеть «находит выход» из хаоса параметров? Почему иногда она перепрыгивает минимум, а иногда зависает в тупике? И как настроить learning_rate, чтобы не ждать до пенсии?
Полный разбор с нуля, с формулами и примерами. Давайте разберём по полочкам, чтобы было понятно даже новичку.