TGViewer
fmin.xyz fmin.xyz @fminxyz · 4.71K subscribers
Post #23 8.64K
Почему все используют градиентные методы для обучения больших моделей?

🤩 Продемонстрирую наглядно на примере решения задачи Multidimensional Scaling (MDS). В этой задаче нам надо нарисовать на плоскости объекты, про которые мы знаем только насколько каждый из них далеко друг от друга. Т.е. на входе у нас матрица попарных расстояний, а на выходе координаты объектов на плоскости. Причем эти координаты должны быть такими, чтобы соотношения расстояний между объектами оставалось как можно более близким к исходным. В качестве функции потерь выступает сумма квадратов отклонений расстояний между городами при текущих координатах и заданным значением.

f(X) = ∑ₘ ∑ₙ (Dₘₙ − dₘₙ(X))²

🗣 Несмотря на увеличение размерности, вся траектория метода может быть наглядно продемонстрирована на плоскости. Количество переменных в задаче здесь - 2*(количество городов), т.к. для каждого из городов мы ищем 2 координаты на плоскости.

↗️ По очереди запускается обычный градиентный спуск, требующий знания градиента, и метод Нелдера-Мида из scipy (широко используемый безградиентный метод). Сначала задача решается для 6 самых населенных европейских городов, потом для 15 и для 34 (это все города-миллионики Европы из википедии).

🤔 Видно, что чем больше городов на карте (чем больше размерность задачи), тем больше разрыв между градиентным и безградиентным методами. Это одна из главных причин, по которой для решения задач большой размерности нам нужны не только значение минимизируемой функции, но и её производная.

🤔 Оказывается, у градиентных методов (при наборе разумных предположений) количество итераций, необходимое до сходимости метода, не зависит напрямую от размерности задачи. То есть если вы рассмотрите корректно настроенный градиентный спуск на десятимерной задаче, то ему нужно будет, скажем, не более 20 итераций для сходимости. А если вы возьмёте условно ту же задачу, но 100500-мерную, то ему нужны будут те же 20 итераций. Конечно, стоимость одной итераций растет с ростом размерности задачи, но хотя бы их количество явно не растет.

🤩 Ставь реакцию, если видишь свой город.
💩 Код для построения анимации
  • 👍 23
  • 🔥 10
  • 🥰 1
  • 🤔 1
More from @fminxyz
  1. Jul 4, 2025🧬 Эволюционные алгоритмы Полтора месяца назад DeepMind выкатил AlphaEvolve, где LLM-агент…
  2. Feb 28, 2025QR алгоритм 🥸 Одна из жемчужин численных методов. Он используется для поиска собственных…
  3. Feb 12, 2025Наглядно о том, зачем нужна нормализация признаков Простая анимация, которая показывает фи…
  4. Jan 31, 2025Подбор шага с помощью линейного поиска в градиентном спуске Если нам известны характеристи…
  5. Dec 5, 2024О чем пишут на ICLR 2025 Пока все ждут результаты ревью одной из самых главных конференций…
  6. Nov 30, 2024Как ускоряли обучение GPT-2 S в 10 раз 🤩Очень интересный репозиторий Modded-NanoGPT, и на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →