- BrainTools - https://www.braintools.ru -
Математикой [1] часто пугают новичков ML и Data Science. В этой статье разберем, что спрашивают и до какой глубины изучать математику для собеседований.
Статья не рассчитана на изучение математики до уровня вышмата в вузе – но для трудоустройства это и не является обязательным критерием. Тем не менее материал может послужить отправной точкой изучения математики и неким роадмапом, что важно, а что нет.
Содержание:
Линейная алгебра
вектора, матрицы, операции над ними и др
Математический анализ
пространство, градиент, апроксимация и др
Полезные материалы
Математика: линейная алгебра и математический анализ [эта часть]
Математика: теория вероятностей, статистика и оптимизация [Soon… Stay fine-tuned…]
classic ML: основы мл, линейные модели, метрики классификации и регресии [2]
classic ML: Деревья и ансамбли, кластеризация, метрические модели [3]
NLP: трансформеры и внимание [4]
NLP: GPT, LLM, Alignment и оптимизации [Soon… Stay fine-tuned…]
NLP: LLM и RAG [5]
NLP: LLM и агенты [Soon… Stay fine-tuned…]
Чтобы не пропустить выход статей и видео по ML, DS, DL, подпишись на мои соц. сети:
В Telegram канале [6] – регулярный контент по ML и Data Science
На Ютуб канале [7] – видеоразборы вопросов с собеседований (и по этой статье)
На Boosty [8] – разборы задач по математике, реальных собеседований и еще больше обучающих материалов
Полная карта [9] со всем моим контентом
Вкат с нуля или повышение грейда в ML – менторство [10]
В статье встречаются различные математические обозначения, если вы не знаете или подзабыли, что они значат, я подготовил небольшую шпаргалку [11] по обозначениям.
Вектор – это упорядоченный набор чисел
Его можно интерпретировать как точку в пространстве
Операции и свойства
У вектора есть направление и длина
Вектора можно складывать
свойства сложения:
Коммутативность: u+v=v+u
Ассоциативность: (u+v)+w=u+(v+w)
Существование нулевого вектора: u+0=u
Существование противоположного вектора: u+(−u)=0
Вектор можно умножать на число
Свойства умножения на скаляр:
(λ+μ)u=λu+μu
λ(u+v)=λu+λv
(λμ)v=λ(μv)
1⋅v=v
Скалярное произведение 2х векторов
Свойства скалярного произведения:
⟨u,v⟩=⟨v,u⟩
⟨v,v⟩≥0 и ⟨v,v⟩=0 ⟺ v=0
⟨λu,v⟩=λ⟨u,v⟩
⟨u+v,w⟩=⟨u,w⟩+⟨v,w⟩
С помощью скалярного произведения можно определить такие понятия как норма вектора и косинусная близость.
Простыми словами норма – это мера длины вектора.
Более формально, то:
Норма – это функция
∥⋅∥: V→R, обладающая следующими свойствами:
Неотрицательность: ∥x∥≥0
Обращение в нуль: ∥x∥=0 ⟺ x=0
Неравенство треугольника: ∥x+y∥≤∥x∥+∥y∥,∀x,y∈V
Однородность: ∥αx∥=∣α∣ ∥x∥,∀ α∈R (или C), ∀ x∈V
Норма помогает нам в машинном обучении [12] определить размер вектора (объекта), а также измерить расстояние между векторами (объектами)
Есть разные виды норм:
L₁-норма (манхэттенская норма)
L₂-норма (Евклидова норма)
Стоит отметить, что разных норм есть очень много, и они описываются общей формулой.
Но в машинном обучении чаще всего используются именно эти, например, в L1 и L2 регуляризации

Косинусная близость для векторов u и v — это нормированное скалярное произведение, которое показывает, насколько близки направления двух векторов независимо от их длин.
То есть скалярно умножаем вектора u и v и делим все это на их нормы.
Если мы умеем считать близость векторов, а объекты мы кодируем именно векторами, то умеем считать расстояние между объектами, что нам, конечно, очень часто будет пригождаться в машинном обучении:
рекомендовать пользователю маркетплейса похожие товары
Матрица – это таблица чисел.
Вектор – это одна строка или столбец в матрице.

Матрица может использоваться для хранения данных.
В задачах МЛ возникает такая штука, как матрица объекты-признаки.
Строки – это наши объекты.
Столбцы – признаки, описывающие эти объекты.
Для дальнейшего понимания важно отметить, в линейной алгебре матрица задает линейное преобразование, которое мы часто будем использовать в машинном обучении.

Матрицы можно складывать.
Сложение происходит поэлементно.

Умножение матрицы на скаляр.

Умножение 2х матриц.
Чтобы получить значение с_ij, нужно из матрицы A взять i-ю строку, а из матрицы B — j-й столбец и скалярно их перемножить.
В матричном произведении есть правило, что внутренняя размерность должна быть одинаковая

Матрицы также можно транспонировать
по сути разворачивать матрицу, то есть ее строки теперь столбцы новой транспонированной матрицы
Матричное произведение используется очень много где в мл, и в особенности в глубоком обучении, например:
применим один линейный слой нейросети к входу h(l-1) или по-другому сделаем линейное преобразование
Прямоугольная матрица
У нее число строк не равно числу столбцов
Квадратная матрица
Число строк равно числу столбцов
Диагональная матрица
Квадратная матрица, у которой все элементы вне главной диагонали равны нулю
главная диагональ – такие элементы a_ij, где i=j
Треугольная – Верхнетреугольная или нижнетреугольная
Квадратная матрица, у которой все элементы ниже/выше главной диагонали равны нулю
Единичная матрица
Диагональная матрица, у которой все элементы главной диагонали равны 1
Простыми словами: это сумма векторов, умноженных на число:
На выходе получаем снова вектор.
Если вектор из линейной комбинации можно выразить через комбинацию других векторов, то вектора линейно зависимы.
Более формально: Система векторов линейна зависима, если существует такая линейная комбинация векторов, что она равно нулевому вектору, при этом не все веса перед векторами в системе не равны нулю

Или другими словами: один вектор из этой системы можно представить как линейную комбинацию остальных
Система векторов линейно независима, если получить нулевой вектор в линейной комбинации возможно только когда все коэффициенты равны 0.
В машинном обучении у нас система векторов это столбцы признаков. и мы хотим понять, это является ли эта система линейно независимой
Если у нас есть линейная зависимость, то есть мы можем выразить один признак через линейную комбинацию других. Может возникнуть ситуация, которая называется мультиколлинеарностью, она приводит к проблемам и переобучению моделей.
Векторное пространство – это некая “коробка”, в которую помещены наши вектора. Все вектора имеют одинаковый размер – он как раз-таки задает размерность пространства. Например, если все вектора пространства имеют по 3 числа, то пространство – трехмерное. Все эти вектора в пространстве можно умножать на число, складывать между собой и делать все, что мы описывали выше.
Базис векторного пространства — это система линейно независимых векторов, которые порождают все пространство. Базисные векторы имеют единичную длину. Любой вектор v из V можно выразить в виде линейной комбинации базисных векторов

Примером базиса могут быть вектора (1, 0) и (0, 1) в R^2
кстати, это еще называется каноническим базисом
Размерность векторного пространства V – это число векторов в базисе этого пространства. Обозначается как dim(V). Размерность показывает минимальное число векторов, достаточное для порождения пространства.
Пример:
В R^n: размерность равна n, то есть в пространстве находятся векторы размерности n
Ранг матрицы – это максимальное число линейно независимых строк или столбцов.
Грубо говоря, он показывает, сколько полезной, не повторяющейся информации содержит матрица.
Понятие ранга матрицы очень часто встречается в самых разнообразных сферах машинного обучения. Например, в задачах рекомендательных систем или для продвинутых методов обучения больших языковых моделей (LoRA)
Когда мы работаем с числами, то на операцию деления можно смотреть как на операцию умножения на обратный элемент.
Например: a/b = a*b^-1
но b^-1 такой, что b*b^-1 = 1
В матрицах похожая история:
матрица B^-1 обратная, если B*B^-1 = E
где E – единичная матрица
и вот B – уже будет называется обратимой
Но в отличие от чисел, обратная матрица не всегда существует
Определитель – это скаляр, который показывает, во сколько раз линейное преобразование, заданное матрицей, изменяет объём нашего пространства, в котором мы действуем этой матрицей.
Нам не особо интересно, как он считается, самое главное, что, если определитель матрицы равен 0, то матрица вырожденная, то есть необратимая, потому что матрица с определителем, равным нулю, превращает все векторы пространства и само пространство в тыкву – оно вырождается в 0. Поэтому и название такое – вырожденная матрица.
В мл вырожденные, или близкие к такому состоянию, матрицы опасны, поскольку могут породить проблемы при обучении, ведь ее строки или столбцы линейно зависимы, а, значит, будет мультиколлинеарность, неустойчивость обучения и, как следствие, переобучение.

Начну с того, что мы знаем, что если умножить матрицу N x N на вектор размерности N, то получим другой вектор тоже размерности N
Применяя матрицу к вектору, последний может повернуться на какой-то градус в пространстве, а также растянуться или сжаться в какое-то число раз.
Если мы применим матрицу А к вектору v и окажется, что последний только растянулся или сжался в lambda раз, то есть

то этот вектор v – собственный вектор матрицы А, а скаляр lambda – собственное, или сингулярное, число.
Эти вещи часто используются в методах понижения размерности: например в сингулярном разложении матриц (SVD).
Отношение между максимальным и минимальным сингулярными числами называется числом обусловленности матрицы.
Оно показывает, насколько решение Ax=b чувствительно к небольшим изменениям.
Большое число обусловленности – это признак нестабильности (плохой обусловленности), особенно опасной при решении систем, в которых матрица X^TX близка к вырожденной. Если матрица плохо обусловлена, то даже небольшие погрешности в матрице признаков X или целевой переменной y могут привести к большим ошибкам в предсказанных весах w. Такое может случиться, если:
Признаки сильно коррелированы (мультиколлинеарность).
Признаки на разных масштабах.
Слишком много признаков
Функция – это правило, по которому каждому значению независимой переменной x из множества Х ставится в соответствие единственное значение y из Y: f(x) = y, x -> y
X – область определения
Y – область значений
Функция нескольких переменных это тоже правило, по которому мы каждому x ставим в соответствие y
но x это уже вектор значений (x1, x2, …, xn)
y = f(x) = f(x1, x2, …, xn)
Функции особенно важны в анализе данных и машинном обучении, поскольку они:
Позволяют моделировать зависимость между входными признаками и целевой переменной.
Помогают оценить качество модели (через функцию потерь).
Лежат в основе алгоритмов оптимизации, которые настраивают параметры моделей, чтобы добиться их наилучшего функционирования.
Начнем с последовательности
Последовательность – это упорядоченный набор чисел x1, x2, x3, …,
Ну а предел это то число L, к которому стремится xn при n→∞
В качестве примера можем взять последовательность 1/n**2 – она сходится к 0
Предел последовательности – фундаментальная вещь в матанализе, на основе которой строится понятие непрерывности.
Если функция непрерывна, то это нам обеспечивает стабильность и предсказуемость поведения [13]. Позволяет понять, как малейшие изменения входных данных отражаются на результате.
Если говорить более формально, то
функция f(x) называется непрерывной в точке x0 если выполняются два условия:
Существует значение f(x0).
Существует предел lim x→x 0f(x), и он равен значению функции в этой точке:
lim x→x0 f(x)=f(x0).
Если функция непрерывна, то у нее нет неожиданных скачков и разрывом в точке х0
нет непрерывности
непрерывная функция
Производная функции f(x) в точке x0 определяется как предел отношения приращения функции к приращению аргумента, если этот предел существует:
Δx — малое изменение (приращение) аргумента функции,
f(x 0 +Δx)−f(x0) — соответствующее изменение (приращение) значения функции.
Функция f(x) называется дифференцируемой в точке x0, если её производная f′(x0) существует. Это означает, что предел, представленный в формальном определении, существует и конечен.
Если функция дифференцируема в каждой точке некоторого интервала, она называется дифференцируемой на этом интервале.
Важно отметить, что если функция дифференцируема в точке x0, то она обязательно непрерывна в этой точке. Однако обратное не всегда верно: непрерывность функции не гарантирует её дифференцируемость.
Геометрический смысл производной – это касательная к функции в точке х0
а почему?
ну потому что допустим возьмем х0
возьмем дельту
отметим эти 2 точки и соединим их прямой – получим секущую
но если будем стремить дельту к нулу, то получим уже касательную
Также важным свойством производной является то, что она показывает скорость роста функции f(x) в точке х
Гладкая функция f(x) означает, что
функция f(x) непрерывная
у нее есть производная f’(x)
и сама производная f’(x) непрерывная
Как раз поэтому в машинном обучении и в частности в методах оптимизации мы хотим, чтобы рассматриваемые нами функции были непрерывными, дифференцируемыми и гладенькими!
Частная производная – это производная функции многих переменных по одной из координат:
В формуле выше у нас функция имеет несколько переменных (x_1,…,x_n), и мы взяли производную по переменной x_k. Все остальные переменные фиксируются, а производную рассматриваем только относительно выбранной переменной x_k.
Частные производные потом используются в понятии градиента.

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

В ML градиенты просто везде и всюду
например градиент нужен в методе оптимизации нейронных сетей, который называется градиентный спуск
и градиент на каждом шаге оптимизации показывает нам в какую сторону идти, чтобы сойтись в оптимальное значение функции потерь

Это можно одним словом назвать – экстремум
Экстремум – максимальное или минимальное значение функции на заданном множестве.
Точка, в которой он достигается, называется точкой экстремума.
Локальный экстремум —-максимум или минимум в окрестности точки.
Глобальный экстремум – максимум или минимум на всей области определения.
Аппроксимация функции – это приближение одной функции другой, более простой.
Допустим, у нас есть сложная закономерность и мы ее не знаем, но можем делать наблюдения x и получать значения в этих точках y
изначально мы ничего не знаем про истинную зависимость y от x, но может приблизить ее через фукнцию f(x)
это будет грубое иногда не совсем точное приближение, но с ним уже можно что-то делать
Интерполяция простыми словами – это нахождение неизвестных промежуточных значений с помощью нескольких известных. Интерполировать – это, по сути, вставить дополнительные значения в ряд.
Экстраполяция – это метод нахождения значений за пределами интервала.
Какие-то модели МЛ умеют и интерполировать и экстраполировать, но вот например деревья в экстраполяцию не умеют.
Учебник Яндекса по математике [14] | реально классный хабропост [15] по математике | 3blue1brown на русском [16]
В Telegram канале [6] – регулярный контент по ML и Data Science
На Ютуб канале [7] – видеоразборы вопросов с собеседований (и по этой статье)
На Boosty [8] – разборы задач по математике, реальных собеседований и еще больше обучающих материалов
Полная карта [9] со всем моим контентом
Вкат с нуля или повышение грейда в ML – менторство [10]
Автор: abletobetable
Источник [17]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/29505
URLs in this post:
[1] Математикой: http://www.braintools.ru/article/7620
[2] classic ML: основы мл, линейные модели, метрики классификации и регресии: https://habr.com/ru/articles/926398/
[3] classic ML: Деревья и ансамбли, кластеризация, метрические модели: https://habr.com/ru/articles/955636/
[4] NLP: трансформеры и внимание: https://habr.com/ru/articles/972178/
[5] NLP: LLM и RAG: https://nlp:%20LLM,%20RAG%20%D0%B8%20%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D1%8B%20%5BSoon%E2%80%A6%20Stay%20fine-tuned%E2%80%A6%5D/
[6] Telegram канале: https://t.me/rockaux
[7] Ютуб канале: https://www.youtube.com/@abletobetable
[8] Boosty: https://boosty.to/lokis_alexandr
[9] карта: https://lokismentor.yonote.ru/share/1446665b-a492-4cdb-8d56-6a92c5234dc8
[10] менторство: https://sites.google.com/view/lokismlmentor/%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
[11] шпаргалку: https://t.me/rockaux/153
[12] обучении: http://www.braintools.ru/article/5125
[13] поведения: http://www.braintools.ru/article/9372
[14] Учебник Яндекса по математике: https://education.yandex.ru/handbook/math
[15] хабропост: https://habr.com/ru/articles/942114/
[16] 3blue1brown на русском: https://www.youtube.com/@3blue1brown31
[17] Источник: https://habr.com/ru/articles/1019194/?utm_campaign=1019194&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.