градиенты.

Откуда в обучении берётся nan: численная нестабильность в ML и почему всё считают в логарифмах

Модель обучается, loss падает, метрики растут. На какой‑то эпохе loss внезапно становится nan и больше не восстанавливается, как бы вы ни понижали learning rate. Или инференс на проде иногда возвращает вероятность ровно 1.0 для класса, которого в обучающей выборке почти не было, а в логах при этом тихо мелькает RuntimeWarning: overflow encountered in exp. Код не менялся, данные те же, гиперпараметры те же. Просто в какой‑то момент промежуточное число вышло за границу того, что тип float умеет хранить, и дальше вся арифметика поехала.

продолжить чтение

Запрещённая математика в твоём autograd: бесконечно малые, дуальные числа и нестандартный анализ

TL;DRКогда вы пишете loss.backward(), ваш autograd делает то, что 200 лет считалось математической ересью: оперирует бесконечно малыми как настоящими числами. В 1960 году Абрахам Робинсон формализовал эту «ересь» в виде нестандартного анализа. Forward-mode автодифференцирование, на котором держатся JAX, PyTorch и пол-индустрии — это его обрезанная версия. В этой статье разберём гиперреалы и монады, реализуем дуальные числа в коде.Проблема, о которой не говорятОткройте любой учебник термодинамики. Найдите там первое начало:dU=δQ−δAОдин значок прямой, другой — кривой. Спросите автора учебника, чем δQ

продолжить чтение