Этот текст содержит доступное объяснение основных частей высшей математики, которые могут потребоваться ML‑щику разного грейда в рабочих сценариях — без дотошных доказательств и с обилием визуальных и численных примеров.
Предвосхищая возможные вопросы: я ставлю целью рассказать про минимальный набор знаний, с которым можно будет уже самостоятельно погружаться в более интересные и прикладные сценарии. Я не планирую рассмотрение в этих постах более упоротных разделов и деталей — с такой глубиной можно не на один год увязнуть при знакомстве с математикой для ML
Ниже я постараюсь с примерами, пытаясь все же соблюдать небольшую формальность, разложить по полочкам ключевые моменты из высшей математики, которые точно понадобятся при изучении и впитывании машинного обучения в 2025.
Математика в ML
В настоящее время из любого утюга можно услышать об успехах и небывалом рассвете искусственного интеллекта, машинного обучения. За всеми этими достижениями стоит фундамент — математика, без которой крайне затруднительно понять и эффективно применять методы машинного обучения с позиции инженера.
Нейросети — результат инженерного и математического гения, которые представляют из себя четко выстроенную и организованную структуру, а не один лишь загадочный черный ящик. Основные разделы математики, на которые опирается машинное обучение:
Линейная алгебра
Математический анализ
Теория вероятностей и статистика
Теория оптимизации (численные методы)
Эти дисциплины формируют основу для понимания и интерпретации моделей, алгоритмов и бесчисленных подходов как от линейной регрессии и A/B тестов, так и до многомерных векторных пространств, зоопарка методов сокращения размерности, работы сверточных нейронных сетей, трансформеров и многого другого (иногда с неожиданного ракурса)
Обозначения
Чтобы комфортнее читать литературу и статьи по ML, нужно быть знакомым с базовыми математическими символами и их смыслом. Ниже приведем наиболее часто встречающиеся:
Суммирование и произведение Если мы складываем или перемножаем последовательность объектов, то запись можно сократить:
Точно так же можно сократить другие операции:
— логическое ИЛИ (||, or, дизъюнкция)
— логическое И (&, and, конъюнкция)
но они встречаются пореже (например, решающие деревья, в одном из вариантов, — это конъюнкция пороговых условий, поэтому там можно встретить
Символ принадлежности
— число принадлежит множеству вещественных чисел
— это -мерный вектор
— не принадлежит множеству вещественных чисел
— множество целиком содержится во множестве
Обозначение векторов Векторы часто пишут жирным, чтобы отличать их от скаляров:
Объединение и пересечение множеств
— объединение (все элементы из и/или )
— пересечение (только общие элементы)
Пример: если , , то
Кванторы
— «для всех»:
— «существует»:
— «не существует»:
Индикаторная функция
Пример: 0-1 функция потерь
Равна 1, если предсказание не совпало с истинным , и 0 в противном случае.
Линейная алгебра
Этот раздел математики — один из центральных в машинном обучении. С его помощью можно:
Легко и удобно описывать растяжения, вращения, повороты и другие преобразования над объектами
Оперировать большим объемом данных посредством матриц
Анализировать скрытые свойства объектов, которые могут помочь как в обработке данных, так и при построении конкретных алгоритмов
Применять элегантную теорию векторных пространств для описания свойств пространств (например, латентные пространства признаков, с которыми мы можем работать при обучении нейронных сетей)
Конечно, далеко не вся алгебра (тем более современная) используется в ML: хватает джентельменского набора с векторами, матрицами, векторными пространствами и т.д.
Из интересных кейсов применения более сложной математики можно упомянуть широко известный UMAP, теоретическая база которого основывается на топологии и теории категорий, а также немало популярный топологический анализ данных, который позволяет искать более утонченные и неожиданные взаимосвязи в данных.
Из других примеров можно рассмотреть SVM, метод опорных векторов. В нем активно применяется линал: из исходного пространства переходим в спрямляющее с новым скалярным произведением для того, чтобы в новом пространстве провести простую разделяющую гиперплоскость, которая в исходном пространстве может иметь сложный вид
Короче говоря, линал повсеместно встречается в МЛ; полезно понимать его хотя бы на интуитивном уровне, чтобы «чувствовать» магию, стоящую за ML
Числа
Числа — это базовые объекты математики. Основные числовые множества:
— натуральные числа:
— целые числа:
— рациональные числа (представимые в виде дробей)
— вещественные числа (все точки на числовой прямой)
— комплексные числа: , где
Иерархия чисел
Числа — это скаляры, то есть они задают величину без направления. В прикладной математике обычно работают с или , но в ML в случаев используется именно .
Векторы
Вектор — это упорядоченный набор чисел. Его можно представить как точку в -мерном пространстве или как направленный отрезок (стрелку):
Свойства:
Сложение и умножение на число (скаляр):
Скалярное произведение (dot product):
Пример: В ML скалярное произведение используется для измерения косинусного сходства между эмбеддингами:
Эмбеддинги — представление данных в виде векторов, которые имеют семантический смысл и расположены в пространстве так, что близкие по смыслу объекты имеют близкие векторы
Матрицы
Матрица — таблица чисел :
Операции:
сложение (если имеют одинаковые размеры: количество строк и столбцов двух матриц совпадает),
умножение (если согласованы размерности:
транспонирование (),
нахождение обратной матрицы (что-то вроде "деления матриц")
нахождение определителя (для квадратных матриц)
Обычная цветная RGB картинка - это 3 матрицы (). Каждый пиксель кодируется кортежем из трех чисел: красный, зеленый, синий
Важно: перемножение матриц некоммутативно ().
Пример: Пусть
Тогда:
Визуализация того, как перемножаются матрицы
Тензоры
Тензор — это обобщение чисел, векторов и матриц на более высокие порядки:
порядок 0 — скаляр,
порядок 1 — вектор,
порядок 2 — матрица,
порядок — многомерный массив размерности .
Пример:
Если мы обучаем нейросеть классифицировать кошек и собак по картинкам, то на вход на каждой итерации обучения нейросеть получает, как правило, батч (пакет) данных, который состоит из определенного числа картинок. Пусть размер батча равен , а RGB картинки имеют размер . Тогда на каждой итерации на вход нейросетки подаются тензоры, которые имеют форму — тензор 4-го порядка, или четырехмерный тензор: — размер батча, — кол-во цветовых каналов (потому что RGB), — под ширину и высоту
Картинки котов и собак, из которых можно слепить батчи
Векторные пространства
Векторное пространство — это множество с операциями сложения векторов и умножения на скаляр.
Пример: В Word2Vec каждому слову сопоставляется вектор в . Семантические отношения кодируются линейно:
Линейная комбинация
Пусть заданы векторы и скаляры .
Такое выражение называется линейной комбинацией.
Множестве всех линейных комбинаций для векторов образует линейную оболочку (span).
Базис и размерность
Базис — максимальный набор линейно независимых векторов .
Размерность — число векторов в базисе.
Любой вектор можно разложить по базису:
Коэффициенты называются координатами.
Пример. Посмотрим на вектор:
Он может быть представлен в виде линейной комбинации базисных векторов:
Поэтому координаты вектора: .
Подпространства
Подпространство — подмножество векторного пространства, само являющееся векторным пространством.
Линейная зависимость и независимость
Набор векторов :
линейно зависим, если
линейно независим, если равенство возможно только при .
Элементарные преобразования матриц
перестановка строк,
умножение строки на число,
прибавление к строке другой строки, умноженной на число.
Обозначение: означает, что получается из элементарными преобразованиями.
Ранг матрицы
Ранг — максимальное число линейно независимых строк (или столбцов):
Пример:
В современных языковых моделях параметров настолько много, что обучение всей модели становится затратным. Метод LoRA (Low-Rank Adaptation) позволяет дообучать модель эффективно, добавляя небольшие матрицы низкого ранга. Предположим, есть весовая матрица . Вместо того, чтобы изменять напрямую, добавляется адаптация вида: , где , . То есть вместо параметров мы обучаем параметров. Это значительно снижает вычислительные затраты при сохранении эффективности.
Мы можем варьировать , делая его меньше или больше. Таким образом, LoRA использует низкоранговое приближение матрицы изменения весов — это и есть прикладное использование ранга матрицы.
Виды матриц
Некоторые типы:
квадратная,
прямоугольная,
диагональная,
треугольная,
симметричная,
ортогональная (),
блочная.
Пример: в методе позиционного кодирования RoPE (см. трансформеры) используются блочные диагональные матрицы.
Формально, пусть — матрица, — произвольный вектор. Если после применения матрицы к вектору выходит, что он всего лишь масштабировался на множитель , то говорят, что — собственный вектор, а — собственное число:
Синий вектор - собственный, а красный - нет
Интерактивная визуализация: собственные векторы (зеленые) не поворачиваются (только масштабируются), они остаются лежать на одной линии. Все другие векторы (для примера показан один такой вектор, красный) поворачиваются и/или масштабируются под действием матрицы
SVD (сингулярное разложение)
Любая матрица раскладывается как:
где — ортогональные, а — диагональная:
— диагональная матрица из корней собственных чисел
— матрица, столбцы которой — собственные векторы матрицы
— матрица, столбцы которой — собственные векторы матрицы
Применения:
сжатие (низкоранговая аппроксимация),
шумоподавление,
PCA,
выделение латентных признаков.
Truncated SVD
Если оставить только первые сингулярных значений, получаем усечённое SVD:
Это используется для снижения размерности и компрессии данных.
Возьмем матрицу (исходное изображение) и разложим ее в произведение трех матриц и . Будем варьировать ранг (количество столбцов и строк в матрицах ), то есть просто будем усекать спектр матрицы (оставлять только самых больших): видим, что чем больше ранг, тем ближе к исходному изображению
Математический анализ
Если в линейной алгебре больше интересны свойства объектов и преобразований, то в математическом анализе обычно на это смотрят с другого ракурса: математический анализ изучает динамику изменений и особенности функций с точки зрения пределов и непрерывности:
«Насколько хороша» рассматриваемая функция: можем ли мы её вообще использовать?
Будет ли иметь место предельное соотношение, конечная сумма?
Как функция ведет себя в окрестностях точек?
В ML сетки учатся с помощью градиентного спуска, поэтому нам необходимо понимать несколько моментов, связанных с матаном:
Можем ли мы использовать функцию потерь : удовлетворяет ли она нужным нам свойствам, является ли она непрерывной?
Что такое функция, градиент?
Что за понятия дифференцируемости, непрерывности? Зачем это нужно для решения задачи оптимизации?
Что такое локальные и глобальные минимумы функции многих переменных? Как можно представить себе процесс спуска по многомерному ландшафту функции потерь?
Эти и другие вопросы поднимаются в матане и смежных областях.
Множества и принадлежность
Множество — это совокупность объектов, рассматриваемая как единое целое. Объекты называют элементами множества.
означает, что элемент принадлежит множеству .
Операции над множествами
Основные операции над множествами:
Объединение: — элементы, входящие хотя бы в одно из множеств
Пересечение: — элементы, входящие в оба множества
Разность: — элементы, входящие в , но не в
Дополнение:— всё, что не в (в рамках некоторой универсальной области)
Пример: Пусть
Функция одной переменной
Функция одной переменной — это правило, по которому каждому значению независимой переменной из множества ставится в соответствие единственное значение из множества :
где , называют прообразом, а — образом. — область определения, — область значений функции.
Пример: Функция .
График параболы
Область определения:
Область значений:
Элементарные функции:
Степенные:
Показательные:
Логарифмические:
Тригонометрические:
Обратные тригонометрические:
Сложная функция: Если и , то — сложная функция, или суперпозиция функций, или композиция.
Композиция функций
В случае матриц композиция линейных отображений соответствует умножению матриц: если и — матрицы, то их произведение означает: сначала действует , потом .
Один из примеров композиции — это SVD.
Обратная функция: Если взаимно однозначно отображает на , то — обратная функция к .
Функции нескольких переменных
Функция нескольких переменных — это правило, по которому каждой точке
ставится значение :
Пример: Пусть .
График параболоида
Область определения:
Область значений:
Числовые последовательности и предел
Последовательность — упорядоченный набор чисел:
Предел последовательности :
Пример
Последовательность сходится к
Непрерывность и сходимость
Функция непрерывна в точке , если
Непрерывность означает отсутствие «скачков» на графике.
Пример: В ML любая функция потерь (например, MSE) должна быть непрерывной, чтобы по ней можно было корректно вычислять градиенты.
Пример: Функция непрерывна на множестве , но имеет разрыв в точке .
График гиперболы
Производные функций одной переменной
Производная функции одной переменной в точке :
График функции (синим цветом) и ее производной, которая отображается как прямая, скользящая по графику функции. Производная помечается зеленым цветом на промежутках возрастания функции (), красным цветом на промежутках убывания () и черным — в точках экстремума (). Об экстремумах будет подробнее дальше.
Пример: Найдём производную функции:
Правила дифференцирования:
Эти правила чисто для справки. На практике они 99.9% времени не пригодятся, если только вам не придется писать свой движок для вычисления производных, что очень маловероятно
Аппроксимация функции
Аппроксимация функции — это приближение одной функции другой, более простой.
Пример: Ряд Тейлора:
Приближение функции синуса многочленом. Сумма конечна (то есть заранее задаем конкретное число слагаемых), можем варьировать количество слагаемых для достижения желаемой точности аппроксимации (приближения) исходной функции
Есть еще много других рядов, но их точно знать не обязательно
Интуитивно понятно, что такое аппроксимация, но возникает вопрос: что значит "близка", и зачем нам вообще аппроксимировать какую-то функцию другой? Дело в том, что некоторые функции могут быть:
Слишком сложными для вычисления (особенно их производные)
Исходная функция может быть неизвестна (как в случае с нейросетями)
Куда более полезен пример из ML: Нейронная сеть — универсальный аппроксиматор, который может аппроксимировать любую функцию с любой точностью.
На это указывает теорема Цыбенко: с помощью однослойной нейросети с сигмоидальной функцией активации можно аппроксимировать любую функцию с любой точностью
В машинном обучении мы как раз занимаемся тем, что пытаемся обучить модель подстроиться под обучающие данные максимально точным образом и сохранить при этом высокую обобщающую способность. Так модель будет понимать основные закономерности в данных и сможет экстраполировать на новые, ранее невиданные, данные.
Нейросети — это универсальный аппроксиматор всего на свете
Гладкость функции
Обычно под гладкой функцией понимают функцию , которая имеет непрерывную первую производную .
Пример: Функция является гладкой, так как её производная непрерывна.
Пример: Функция потерь MSE:
является гладкой, поэтому её удобно использовать в ML.
Производные функций нескольких переменных (частные производные)
Частная производная — это производная функции многих переменных по одной из координат:
В формуле выше у нас функция имеет несколько переменных (), и мы взяли производную по переменной. Все остальные переменные фиксируются, а производную рассматриваем только относительно выбранной переменной.
Пример: Если, то:
В контексте ML частные производные используются для оптимизации: с их помощью происходит вычисление градиентов в машинном обучении (например, в методе обратного распространения ошибки). О градиентах будет рассказано ниже
Экстремум функции
Экстремум — максимальное или минимальное значение функции на заданном множестве. Точка, в которой он достигается, называется точкой экстремума.
Локальный экстремум — максимум или минимум в окрестности точки.
Глобальный экстремум — максимум или минимум на всей области определения.
Пример: В ML локальные минимумы возникают при обучении моделей при оптимизации нейросетей.
Градиент
Градиент функции
Градиент — это вектор первых частных производных:
Замечание: Градиент указывает направление наискорейшего роста функции.
Пример: В ML градиенты считаются во время градиентного спуска — по функции потерь относительно параметров модели. Это один из этапов backpropagation — метода, с помощью которого учатся нейронные сети
Градиентный спуск для численного поиска минимума функции
Метрика (расстояние)
Функция — это метрика, если выполняются свойства:
Часто используемые метрики:
Евклидова метрика:
Манхэттенская метрика (расстояние городских кварталов):
*Расстояние Левенштейна — метрика для строк (число операций, чтобы превратить одну строку в другую).
В задачах NLP (и не только) можно встретить KL‑дивергенцию, которая мерит расстояние между вероятностными распределениями
В KL лежит под капотом у Cross Entropy Loss, широко применяемой во многих областях машинного обучения в качестве функции потерь.
Примеров можно привести огромное множество; хочется зафиксировать, что в машинном обучении очень многие решения построены именно на теорвере.
Конечно, не нужно упарываться и бежать читать вузовские учебники, копаться в ‑алгебрах и аксиоматике Колмогорова — важно понимать, что машинное обучение в момент становления во многом шло по проталинному теорвером и матстатом пути и в настоящее время нередко использование классических методов даже в продовых сценариях. Понимание интуиции и интерпретации основных идей теорвера и матстата — вот, что нужно от начинающего MLщика, а не запоминание наизусть каждой формулы
Типы случайных величин
Случайные величины в теорвере часто обозначают как .
Дискретная случайная величина — принимает конечное или счётное множество отдельных значений. Каждому значению соответствует определённая вероятность.
Непрерывная случайная величина — принимает любые значения из некоторого промежутка вещественных чисел. Задаётся функцией плотности распределения.
Примеры дискретных:
Количество вызовов в call-центр за день
Число опечаток на странице книги
Броски кубика (1–6)
Подбрасывание монетки (0 или 1 — Бернулли)
Число посетителей сайта за минуту (Пуассоновское распределение)
Примеры непрерывных:
Рост человека в популяции (нормальное распределение)
Время ожидания автобуса (экспоненциальное распределение)
Уровень шума в комнате
Температура воздуха
Скорость автомобиля
Функция вероятности
Функция вероятности — функция, которая задаёт вероятность того, что дискретная случайная величина примет конкретное значение :
Условия:
Первое условие: вероятность не может быть меньше и больше .
Второе условие означает, что сумма вероятностей всех возможных значений равна .
Пример: Для броска кубика вероятность каждого значения равна .
Плотность распределения
Плотность распределения описывает, как распределена непрерывная случайная величина.
Условия:
для всех
Нормировка:
Значение плотности в точке не является вероятностью напрямую, но определяет "интенсивность" распределения вероятности около точки
Если мы вспомним 2 условия для функции вероятности дискретной случайной величины, то мы можем заметить, что они очень похожи на условия для плотности распределения непрерывной случайной величины. Значит,
Первое условие означает, что плотность не может быть отрицательной.
Второе условие — нормировка — означает, что сумма вероятностей всех возможных значений равна .
Надо ли мне уметь считать интегралы? Нет, потому что на практике это делается численно:
Пример с плотностью стандартного нормального распределения. Видно, что площадь можно приблизить прямоугольниками (их площадь можно легко посчитать, это высота , умноженная на ширину ). Чем больше прямоугольников, тем точнее приближение. В пределе, когда число прямоугольников стремится к бесконечности, а ширина прямоугольников $\Delta x_i$ стремится к нулю, площадь под графиком стремится к точному значению площади. Это и есть определение интеграла. Поэтому в условии для плотности распределения у нас написано, что площадь под графиком плотности должна быть равна , то есть интеграл от плотности по всей области определения должен быть равен :
Сравнение дискретных и непрерывных случайных величин
Непрерывная случайная величина имеет экспоненциальное распределение с параметром , если:
Плотность экспоненциального распределения
Примеры:
Время до отказа компонента
Время между звонками
Интервалы между машинами
Распределение Бернулли
Дискретная случайная величина принимает и с вероятностями и :
Плотность распределения Бернулли
Примеры:
Успех/неуспех регистрации
Попадание/промах в спорте
Покупка/непокупка товара
Распределение Пуассона
Дискретное распределение с параметром :
Плотность распределения Пуассона
Примеры:
Количество клиентов в магазине
Число опечаток
Землетрясения за год
Математическое ожидание
Идея: это средний результат многократного эксперимента. Обозначается или .
Для дискретных СВ:
Для непрерывных СВ:
Пример: принимает значения с вероятностями :
Дисперсия
Дисперсия — мера разброса.
В непрерывном случае:
В дискретном случае:
Генеральная совокупность
Генеральная совокупность — это все возможные объекты, которые нас интересуют. Это некая очень большая выборка чего-либо, что нам хотелось бы проанализировать и исследовать на предмет каких-то свойств.
Выборка
Выборка — подмножество генеральной совокупности.
Может быть репрезентативной или нет.
Пример: жители города: выборка 1000 человек для анализа средней зарплаты.
Репрезентативная выборка — та, которая достаточно хорошо отражает свойства генеральной совокупности. Если взять 10 человек для того, чтобы узнать среднюю з/п по Санкт‑Петербургу, то это будет, конечно, совсем не репрезентативная выборка. Если взять 1 000 000 человек — уже будет сильно больше похоже на правду
Доверительные интервалы
Доверительный интервал — интервал, в котором с заданной уверенностью (обычно 95%) находится настоящий параметр генеральной совокупности.
Когда мы работаем с выборкой, мы почти никогда не знаем точные параметры генеральной совокупности (например, её настоящее среднее значение). Вместо этого мы оцениваем эти параметры и строим интервал в котором они, скорее всего, находятся
Пример: средний рост = 172 см. 95%-й интервал: [170, 174].
Статистические гипотезы
Статистическая гипотеза — предположение о распределении или параметрах. Мы проводим статистический тест, чтобы либо её принять, либо отклонить.
— нулевая гипотеза
— альтернативная гипотеза
Пример:
: средний рост = 170
: средний рост > 170
Если по результатам теста вероятность наблюдаемого значения при условии, чтоверна, оказывается слишком малой (например, меньше ), гипотезаотвергается
Ошибки первого и второго рода
Ошибка I рода: отвергли , хотя она верна (False Positive).
Ошибка II рода: не отвергли , хотя верна (False Negative).
Обозначения:
— вероятность ошибки I рода (уровень значимости)
— вероятность ошибки II рода
— мощность теста
При планировании эксперимента исследователь выбирает уровень значимости , а затем стремится минимизировать — т.е. увеличить вероятность обнаружить эффект, если он есть
Пример. Рассмотрим клинический пример:
Нулевая гипотеза (): пациент здоров.
Альтернативная гипотеза (): пациент болен.
Если мы проведем тест, то можем получить:
Ошибка первого рода: пациента ошибочно считают больным и назначают лечение (ложная тревога, False Positive, FP).
Ошибка второго рода: пациента ошибочно считают здоровым и не лечат (упущенная болезнь, False Negative, FN)
Что страшнее: много ошибок 1 рода или 2 рода? Зависит от контекста: в медицине — 2 рода, в банковской сфере — 1
Квантили
Формально, для уровняквантиль определяется как число, удовлетворяющее условию: где — случайная величина
Интуитивно: квантили — значения, которые делят упорядоченный набор данных на равные части
Квантиль уровня — медиана.
По смыслу это означает, квантиль уровня делит выборку на 2 части, причем слева будет лежать именно данных. Медиана делит выборку пополам — слева от медианы лежит половина выборки.
Квартили
Квартили — частный случай квантилей (делят данные на 4 части):
(медиана)
— межквартильный размах
Перцентили
Перцентили — квантили в процентах.
— 23-й перцентиль (23% данных левее).
Медиана — 50-й перцентиль.
Box-plot (ящик с усами)
Box-plot — визуализация распределения на основе: min, , , , max. Они бывают удобны для проверки на то, есть ли в выборке выбросы, и для визуализации статистик.
Многомерное нормальное распределение
Оно задается плотностью распределения, которая уже зависит от вектора случайных величин (размера ):
Плотность двумерного нормального распределения
— вектор средних
— ковариационная матрица
Если мы вспомним условие для плотности распределения, то увидим, что там требуется, чтобы интеграл от плотности по всей области был равен . Но как быть, если у нас несколько переменных? В этом случае мы будем интегрировать по всем переменным, в двумерном случае — по и по . Для одномерного случая мы приводили интерактивную анимацию, показывающую, как вычисляется площадь под графиком. Там мы варьировали ширину прямоугольников и устремляли ее к нулю. В случае двумерного случая мы будем варьировать одновременно и ширину по , и ширину по
Ковариация
Показывает совместное изменение двух СВ :
Если ковариацияположительна — переменные растут вместе. Отрицательна — одна растет, другая падает. Равна нулю — переменные не зависят линейно.
Ковариационная матрица
Для набора СВ можно построить ковариационную матрицу:
Диагональ — дисперсия для каждой СВ
Вне диагонали — ковариации для всех пар случайных величин
Ковариация показывает, насколько величины меняются "вместе", это их "совместная" дисперсия
Корреляция
Корреляция Пирсона между :
Из формулы видно, что корреляция получается нормализацией ковариации (делим на дисперсию). Это значит, что корреляция всегда лежит в диапазоне Это безразмерная величина, поэтому удобно использовать ее для измерения связи между разными переменными.
Корреляционная матрица — полезная штука при визуализации признаков, это помогает искать взаимосвязи между переменными. Она содержит коэффициенты корреляции между парами переменных (на диагонали — всегда ). Корреляция Пирсона между переменными (признаками)считается по формуле выше. Это будет число в матрице корреляций под номером . Посчитаем эти корреляции для всех пар переменных и запишем их в виде одной матрицы:
Пример матрицы корреляций Пирсона между признаками в выборке
Если — выборка, то вычитая среднее и деля на среднеквадратичное отклонение (корень из дисперсии), в пределе при (количестве элементов в выборке), стремящемся к бесконечности, получим выборку, распределенную стандартно нормально:
Сведение экспоненциального распределения к стандартному нормальному
При этих манипуляциях в пределе любое распределение стремится к стандартному нормальному: с нулевым средним и единичной дисперсией.
Это может быть удобно, поскольку не все алгоритмы могут одинаково хорошо работать на произвольных распределениях — удобно свести выборку к стандартной нормальной и применить к ней известные методы (например, гауссовский наивный байес)
Закон больших чисел
При большом числе наблюдений выборочное среднее стремится к математическому ожиданию:
Пример того, как часто выпадает орел при подбрасывании монетки. Если кинуть монетку бесконечное число раз, то количество выпавших орлов и решек будет ровно пополам
Теория оптимизации. Численные методы
Возможно, что при первом знакомстве с нейросетями возникают определенные вопросы:
Как учить нейросети от простого многослойного перцептрона до здоровенных языковых моделей и диффузионок?
Именно на эти вопросы отвечают методы оптимизации, с помощью которых нейросетки могут чему‑то учиться: формально, решается задача оптимизации функционала качества, который формируется в конкретной задачке.
Если мы сумеем найти его оптимум (или решение, которое будет «достаточно хорошим»), то можно хлопать в ладоши и радоваться, что сетка чему‑то смогла научиться! Правда, это редко может послужить показателем хорошо обученной сетки, но это уже другая история...
Постановка задачи оптимизации
Во многих задачах ML, статистики и прикладной математики нужно найти такие параметры , которые минимизируют или максимизируют целевую функцию.
— вектор параметров модели (например, коэффициенты линейной регрессии)
— функция потерь (или логарифм правдоподобия)
Цель — найти такие параметры , при которых достигает экстремума:
— это оптимальный набор параметров модели. Методы зависят от свойств : выпуклость, гладкость, размерность, аналитическая форма.
Градиентный спуск
Градиент — направление наибольшего роста функции
Антиградиент — направление наискорейшего убывания
Алгоритм обновления:
— скорость обучения (learning rate)
Мы итеративно спускаемся вниз по поверхности , пока не достигнем минимума.
У нейросетей миллионы и миллиарды параметров, руками их настроить невозможно. Поэтому веса обучаются именно через градиентный спуск. Хорошие параметры соответствуют минимуму функции потерь, где сеть ошибается меньше всего.
Проблемы градиентного спуска
Слишком большой — можем перепрыгнуть через минимум
Слишком маленький — медленная сходимость или застревание
Обычно берут , но это гиперпараметр — зависит от модели и задачи.
Кроме того:
У реальных функций потерь сложный "рельеф", поэтому много локальных минимумов
Обучающих данных очень много, поэтому полный градиент считать дорого. На практике используют оптимизаторы — они представляют из себя приближенные методы(SGD, Momentum, RMSProp, AdamW и др.), которые пытаются разными способами улучшить сходимость градиентного спуска по сложному ландшафту функции потерь.
Пример ландшафта функции потерь (приближенная визуализация). Видно, что поверхность рельефна, можно угодить в локальные минимумы. Размерность пространства, в котором находится функция потерь, совпадает с количеством параметров модели. Для современных сетей это миллионы и миллиарды измерений, что невозможно визуализировать. Чтобы получить трёхмерное представление (две оси — направления в параметрическом пространстве, третья — значение потерь), выбирают два направления в пространстве параметров и фиксируют остальные параметры
Что дальше?
Чем больше мы знаем, тем меньше мы знаем — поэтому при погружении в ML и соответствующую математику можно утонуть в изобилии информации. Иногда сложно понять, что именно из прочитанного действительно нужно, а что является просто вспомогательными знаниями, которые практически никогда не пригодятся.
Чтобы сэкономить время и двигаться по сути, вы можете написать мне в Telegram — вместе определим ваш уровень и составим план обучения. Я помогу оценить ваш уровень и подскажу, с чего лучше начать, чтобы максимально сократить путь при становлении ML-инженером и подсветить наиболее важные моменты. Подробнее — в профиле.
Есть вопросы?
Пиши в комментариях или в tg, буду рад обсудить интересующие вопросы. Подробнее — в профиле.
Если предметная область не Евклидово пространство? То линал отставляем?
Функция одна основная в ML должна быть выпуклая. Про это ни слова. Без этого ML не сойдется
И ЦПТ доказана только для независимых случайных величин. ТОЛЬКО! Если взять любые величины и не проверять их независимость, то результат применения ЦПТ будет любой
А Так красиво написано, софт скилл повышает здорово. Плюс заслуженный
С неевклидовыми пространствами дела обстоят сложнее, методы там могут применяться немного другие. Например, в том же SVM мы работаем с функциональными пространствами, потому что базис задаем через функции, это уже не Евклидово пространство в своем изначальном понимании (а Гильбертово). Все описанное справедливо в предположении, что мы работаем с Евклидовыми пространствами, а это достаточно широкий класс пространств, которого на этапе погружения в ML более чем достаточно
Если речь про функцию потерь, то замечание хорошее. Но функция потерь может быть как выпуклой, так и Не выпуклой. У выпуклой функции потерь есть лишь единственный глобальный минимум, и нет локальных. На практике ландшафты функции потерь представляют из себя очень шумные поверхности в многомерных пространствах, с огромным количеством локальных минимумов, в которых можно легко застрять
ЦПТ допускает зависимость случайных величин, но она должна быть достаточно слабой. Речи про полную независимость не идет
Всегда удивляет это утверждение. Компьютеры работают в подмножестве наутральных чисел, а вот ML - каким-то образом в . Как такое возможно, если речь явно не про символьные вычисления, а большинство действительных чисел не получится даже записать в конечную память?
ChePeter
Если предметная область не Евклидово пространство? То линал отставляем?
Функция одна основная в ML должна быть выпуклая. Про это ни слова. Без этого ML не сойдется
И ЦПТ доказана только для независимых случайных величин. ТОЛЬКО! Если взять любые величины и не проверять их независимость, то результат применения ЦПТ будет любой
А Так красиво написано, софт скилл повышает здорово. Плюс заслуженный
versechorus Автор
Спасибо за комментарий!
С неевклидовыми пространствами дела обстоят сложнее, методы там могут применяться немного другие. Например, в том же SVM мы работаем с функциональными пространствами, потому что базис задаем через функции, это уже не Евклидово пространство в своем изначальном понимании (а Гильбертово). Все описанное справедливо в предположении, что мы работаем с Евклидовыми пространствами, а это достаточно широкий класс пространств, которого на этапе погружения в ML более чем достаточно
Если речь про функцию потерь, то замечание хорошее. Но функция потерь может быть как выпуклой, так и Не выпуклой. У выпуклой функции потерь есть лишь единственный глобальный минимум, и нет локальных. На практике ландшафты функции потерь представляют из себя очень шумные поверхности в многомерных пространствах, с огромным количеством локальных минимумов, в которых можно легко застрять
ЦПТ допускает зависимость случайных величин, но она должна быть достаточно слабой. Речи про полную независимость не идет