градиентный спуск.

DREM для линейной регрессии: как развязать веса перцептрона и ускорить обучение

Ключевые слова: DREM, линейная регрессия, перцептрон, градиентный спуск, идентификация параметров.Зачем нужен еще один способ обучать линейную регрессию?Линейная регрессия обычно воспринимается как давно решенная задача. Если требуется получить точное решение, можно использовать метод наименьших квадратов. Если данных много или модель является частью более сложной архитектуры, например нейронной сети, можно использовать стохастический градиентный спуск, Adam или другой итерационный оптимизатор.

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

Разбираемся в ML без воды: от базы до Attention. Часть 3: Градиентный спуск

Во второй части мы рассмотрели аналитическое решение задачи линейной регрессии и наткнулись на ряд неприятностей — сингулярность, плохая обусловленность, вычислительная сложность и т.д.Логическим продолжением будет изучение (не побоюсь этого слова) сердца машинного обучения: градиентного спуска. ИтакГрадиентный спускТак как лучше уже не придумаешь, начнем с классического рассказа о пьяном альпинисте:

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

Как технология LayerScale спасает сверхглубокие трансформеры (и почему о ней молчат туториалы)

В мире глубокого обучения существует наивный миф: "Если твоя модель недостаточно умная, просто накинь еще пару десятков слоев".На бумаге residual связи (те самые плюсики в коде: x=x+f(x) ) должны позволять нам строить сети бесконечной глубины, спасая градиенты от затухания. Но любой, кто пытался с нуля обучить трансформер слоев на 80, знает жестокую правду: сеть просто отказывается сходиться. Loss взрывается в первые же эпохи, или модель навсегда застревает на субоптимальном плато.

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

Проклятие адаптивности: почему живучесть нейросетей ваш главный враг (и как я случайно ампутировал трансформер)

Мы привыкли восхищаться тем, как нейронные сети умеют адаптироваться. Они находят паттерны в шуме, обходят локальные минимумы и выжимают максимум из грязных данных. Но у этой сверхспособности есть темная сторона, о которой редко говорят в туториалах.Сверх адаптивность нейросетей это худший кошмар инженера.

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

Как связывание эмбеддингов душит трансформеры и уничтожает градиенты

Если вы когда-нибудь собирали языковую модель с нуля, вы наверняка знаете про Weight Tying (Связывание весов). Этот трюк был предложен в 2016 году в статье "Using the Output Embedding to Improve Language Models" и популяризован OpenAI в архитектуре GPT-2.Суть предельно проста и математически изящна: мы берем матрицу входных эмбеддингов Win (размером Vocab_Size × Hidden_Dim) и используем её же транспонированную версию как выходной слой классификатора Wout

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

Обратное распространение ошибки: от интуиции до кода

Введение.Современные нейросети часто воспринимаются как черная магия. Вы закидываете в черный ящик датасет, ждете пару часов, и вот уже модель пишет за вас код, генерирует картины и безошибочно отличает собаку от выпечки. Но под капотом нет никаких заклинаний. Вся эта вычислительная мощь держится на одном элегантном алгоритме, основы которого были заложены еще в 1970-х годах — обратном распространении ошибки (Backpropagation).Сейчас порог входа в машинное обучение низок как никогда. Чтобы заставить сеть учиться, достаточно написать loss.backward() в PyTorch или вызвать model.fit()

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

Мой первый ИИ: Пишем нейросеть на Python с нуля

1. Введение: Что такое нейросеть?Аналогия с мозгом Нейросеть — это математическая модель, имитирующая работу мозга. Как человек учится отличать «1» от «7» по визуальным шаблонам, так и алгоритм учится находить закономерности в данных, выделяя главные признаки и игнорируя шум.Упрощенная модель Весь процесс работы делится на 3 этапа:Входные данные: то, что алгоритм «видит» (в нашем случае — пиксели картинки).Обработка (веса): математические вычисления. Входные данные проходят через формулы, где умножаются на веса

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

Я удалил backpropagation из нейросети. Она обучилась методами XIX века

Все началось с того, что я открыл PyTorch и удалил из модели .backward(). Взял и стер как строчку, которая «вроде ничего не делала». Только вот эта строчка делала вообще все.

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

Игра в угадайку

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

Бинарная классификация: как работает логистическая регрессия

Недавно мне предстояло написать реализацию LogisiticRegression для одного проекта в Школе 21, так что было необходимо разложить всё по полочкам и разобраться в бинарной классификации в целом. Хочу поделиться также этой информацией здесь, потому что не нашла статьи, которая была бы понятна и обширна лично в моём случае. Автор хочет отметить, что только начинает свой путь в машинном обучении. Если в статье найдутся неточности, то с радостью будет их заметить в комментарияхСегодня я бы хотела рассмотреть следующие аспекты:Сигмойдная функцияMLE и NLLРаспределение Бернулли

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

12