Введение в AI

Модуль 1: Фундамент. Математика и логика для Data Scientist'а

Перед тем как погружаться в нейросети, бустинг и большие языковые модели, важно заложить базу: без неё формулы в статьях и коде будут казаться «магией», а не инструментом. Этот модуль не заменяет полноценный курс по математике — он даёт минимальный набор идей, которые постоянно встречаются в ML и AI, и показывает, где именно они используются.

Задача модуля: снять страх перед математикой и показать её прикладное значение. После прохождения вы сможете уверенно читать про градиентный спуск, loss-функции, ковариационные матрицы и байесовские методы — и понимать, о чём идёт речь.

Что разберём в модуле

  • Линейная алгебра — векторы, матрицы, скалярное произведение; как данные хранятся и обрабатываются в коде и почему это связано с Attention в трансформерах.
  • Производные и градиент — как модель «учится», двигая веса в направлении уменьшения ошибки.
  • Теория вероятностей — вероятность, условная вероятность, формула Байеса; зачем это в классификаторах и генеративных моделях.
  • Основы статистики — среднее, дисперсия, ковариация, корреляция; как этим пользоваться при разведке данных и выборе признаков.

1.1 Линейная алгебра: не для абстракции, а для данных

В машинном обучении данные почти всегда представлены числами: объект описывается набором признаков (возраст, доход, количество кликов и т.д.). Такой набор — это вектор. Линейная алгебра даёт язык и инструменты, чтобы работать с такими наборами компактно и быстро — и в коде (NumPy, PyTorch), и в формулах.

Векторы и векторизация

Вектор — упорядоченный набор чисел. В ML одна строка таблицы (один объект, одно наблюдение) часто хранится как вектор: например, [25, 50000, 12] — возраст, зарплата, стаж. Размерность вектора — сколько в нём чисел; она совпадает с числом признаков.

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

Матрицы как способ организации признаков

Матрица — это таблица чисел. В ML принято так: каждая строка — один объект (одно наблюдение), каждый столбец — один признак. То есть матрица размера 1000×10 — это 1000 объектов по 10 признаков. Одна строка такой матрицы — вектор признаков одного объекта.

Умножение матрицы на вектор (или матрицы на матрицу) даёт пакетную обработку: все объекты проходят через одни и те же веса. Один проход матричного умножения — это по сути применение одной «слойной» операции ко всем объектам выборки сразу. Так устроены и линейные модели, и слои нейросетей.

Скалярное произведение и мера «похожести»

Скалярное произведение двух векторов одной длины — сумма произведений соответствующих элементов. Чем больше векторы «смотрят в одну сторону» (совпадают по знакам и пропорциям), тем больше скалярное произведение. Поэтому его часто используют как меру сходства.

Если векторы предварительно нормировать (сделать длину 1), то скалярное произведение превращается в косинусное сходство — число от −1 до 1, не зависящее от длины векторов. Именно на этом основан механизм Attention в трансформерах: запрос (Query) сравнивается с ключами (Key) через скалярное произведение (часто после масштабирования), чтобы решить, на какие части входа «смотреть» сильнее. Понимание векторов и скалярного произведения помогает читать описание Attention без ощущения «формулы с неба».

На практике: при разведке данных и в коде вы будете постоянно иметь дело с массивами и матрицами. Умение мысленно представлять «строка = объект, столбец = признак» и «умножение матрицы на веса = предсказание для всех объектов» сильно упрощает чтение кода и статей.

1.2 Производные и градиент

Обучение модели в ML — это по сути поиск таких параметров (весов), при которых функция ошибки (loss) становится как можно меньше. Чтобы понять, в какую сторону двигать веса, нужны производные и градиент. Эта тема — сердце градиентного спуска и backpropagation.

Физический смысл производной

Производная функции по аргументу показывает скорость изменения функции при малом изменении аргумента. Если производная положительная — функция растёт при увеличении аргумента; если отрицательная — убывает.

В ML аргументы — это веса модели, а функция — ошибка на данных (loss). Производная loss по весу отвечает на вопрос: если чуть-чуть увеличить этот вес, ошибка станет больше или меньше? Производная по весу указывает направление, в котором loss растёт. Нам нужно loss уменьшать, поэтому мы сдвигаем вес в противоположную сторону — в направлении убывания.

Градиент и антиградиент

Градиент — это вектор, составленный из частных производных по всем параметрам. Он указывает направление наискорейшего подъёма функции: если сделать маленький шаг из текущей точки в направлении градиента, функция вырастет сильнее всего.

Нам нужно не поднимать, а опускать loss. Поэтому мы делаем шаг в направлении антиградиента (минус градиент): так мы двигаемся в сторону наискорейшего уменьшения ошибки. На каждом шаге обучения алгоритм (например, SGD) вычисляет градиент loss по весам и немного сдвигает веса в сторону антиградиента. Так модель «учится»: шаг за шагом веса подстраиваются под данные.

Кратко

  • Производная по весу = «насколько изменится loss при малом изменении этого веса».
  • Градиент = вектор всех таких производных; направление наискорейшего роста loss.
  • Антиградиент = направление наискорейшего уменьшения loss; в него и двигаем веса.

1.3 Теория вероятностей и основные распределения

В ML мы постоянно имеем дело с неопределённостью: данные содержат шум, предсказания модели — вероятности классов, а не жёсткие ответы. Теория вероятностей даёт язык для работы с такой неопределённостью и лежит в основе многих алгоритмов — от наивного Байеса до генеративных моделей.

Вероятность как частота события

Вероятность события можно понимать как долю случаев, в которых это событие произойдёт при многократном повторении опыта. В ML мы часто не знаем «истинную» вероятность и оцениваем её по данным: например, доля объектов класса «спам» в размеченной выборке — это оценка вероятности класса. Такие оценки называются эмпирическими частотами и используются при обучении и оценке моделей.

Условная вероятность и формула Байеса

Условная вероятность P(B|A) — вероятность события B при условии, что событие A уже произошло. Она лежит в основе многих рассуждений: «какова вероятность болезни при положительном тесте», «какова вероятность класса при данных признаках».

Формула Байеса связывает условные вероятности P(A|B) и P(B|A) и позволяет «переворачивать» условие: обновлять вероятности гипотез при появлении новых данных. Наивный байесовский классификатор строит предсказание именно на формуле Байеса, предполагая условную независимость признаков при данном классе. В генеративных моделях мы явно моделируем распределения данных и условные вероятности; понимание P(B|A) и Байеса там необходимо.

Нормальное распределение (гауссово)

Нормальное распределение (колокол Гаусса) — одно из самых важных в статистике и ML. Оно естественно возникает при суммировании многих независимых случайных величин (центральная предельная теорема): среднее по выборке, сумма ошибок и т.д. часто ведут себя «почти нормально».

Многие классические модели неявно опираются на нормальность: например, линейная регрессия с MSE оптимальна в предположении нормального распределения ошибок. Байесовские методы часто задают априорные распределения параметров как нормальные. Умение распознать «колокол» в формулах и допущениях помогает читать статьи и настраивать модели осознанно.

Где встретите в курсе

Вероятности классов — в логистической регрессии и классификаторах; формула Байеса — в наивном Байесе; нормальное распределение — в обсуждении loss-функций и в байесовских подходах.

1.4 Основы статистики

Перед обучением модели данные нужно изучить: какие признаки есть, как они распределены, связаны ли друг с другом. Для этого используются простые статистические меры. Они же встречаются внутри алгоритмов (нормализация, отбор признаков, анализ важности) и в отчётах по качеству моделей.

Среднее значение и дисперсия

Среднее значение (среднее арифметическое) — сумма всех значений признака, делённая на их количество. Это «центр масс» данных: типичное значение, вокруг которого разбросаны наблюдения.

Дисперсия — средний квадрат отклонения значений от среднего. Она показывает разброс: если дисперсия большая, данные сильнее «размазаны»; если малая — лежат ближе к среднему. Стандартное отклонение — корень из дисперсии; оно измеряется в тех же единицах, что и сами данные (рубли, годы и т.д.), поэтому им удобно описывать разброс на практике.

Ковариация и корреляция

Ковариация двух признаков — мера их совместной изменчивости. Если при увеличении одного второй в среднем тоже растёт, ковариация положительная; если один растёт, другой падает — отрицательная. Нулевая ковариация означает отсутствие линейной связи (но не обязательно независимость).

Корреляция (например, коэффициент Пирсона) — это ковариация, нормированная так, чтобы значение лежало в отрезке от −1 до 1. По корреляции удобно судить о силе линейной связи: близко к 1 — сильная прямая связь, близко к −1 — сильная обратная, около 0 — слабая или нелинейная. Корреляцию можно считать и смотреть на тепловые карты (correlation heatmap) при разведке данных, не строя модель. Важно помнить: корреляция не означает причинно-следственную связь — два признака могут быть связаны из-за третьего фактора или случайности.

На практике: среднее и стандартное отклонение используются для нормализации признаков (привести к нулевому среднему и единичной дисперсии); корреляция — для отбора признаков и поиска мультиколлинеарности. Эти понятия будут встречаться в каждом реальном ML-проекте.

Настройки

Тема