Учебник Математика для машинного обучения для начинающих
Машинное обучение — это математика, которая учится на данных. Этот курс показывает, что стоит под капотом: векторы и матрицы (линейная алгебра), производные и градиент (математический анализ), градиентный спуск (оптимизация), вероятность и статистика. Главная идея — сделать математику осязаемой: каждое понятие даётся как интуиция плюс формула словами плюс запускаемый Python-расчёт, который вы можете менять прямо в браузере. Никаких внешних библиотек: скалярное произведение, нормы, умножение матриц, численные производные, градиентный спуск, теорему Байеса и корреляцию мы пишем руками на стандартной библиотеке — так видно, как именно крутятся шестерёнки. NumPy упоминается как удобный инструмент для практики. От вас нужен базовый Python; математику объясняем с нуля, но всерьёз — с интуицией и строгостью.
Курс «Математика для машинного обучения» состоит из 6 разделов и 31 урока: Линейная алгебра: векторы, Линейная алгебра: матрицы, Математический анализ, Оптимизация и градиентный спуск, Вероятность и Статистика для ML. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Линейная алгебра: векторы
- Что такое вектор: точка, стрелка и список чисел
Вектор с двух сторон: геометрическая стрелка и список координат. Почему в ML объект — это вектор признаков и зачем нужны размерности.
- Операции над векторами: сложение и умножение на скаляр
Сложение и вычитание векторов покоординатно, умножение на скаляр (растяжение). Геометрический смысл и реализация вручную на Python.
- Скалярное произведение: проекция, угол и косинусная близость
Скалярное произведение векторов: формула, геометрический смысл (проекция и угол), связь с косинусом. Реализация и расчёт угла вручную на Python.
- Норма, длина и нормализация вектора
Норма (длина) вектора через теорему Пифагора, евклидово расстояние, нормализация в единичный вектор. Зачем нормализуют признаки в ML.
- Что такое вектор: точка, стрелка и список чисел
2 Линейная алгебра: матрицы
- Матрица как таблица и как преобразование
Два взгляда на матрицу: таблица чисел и функция, которая преобразует векторы. Размер матрицы, обращение к элементам, умножение матрицы на вектор.
- Умножение матриц: смысл и реализация вручную
Умножение матриц как композиция преобразований. Правило строка-на-столбец, согласованность размеров, реализация тройным циклом и проверка на Python.
- Транспонирование, единичная и обратная матрицы
Транспонирование (поворот таблицы), единичная матрица (как 1 для умножения), идея обратной матрицы как отмены преобразования. Реализация на Python.
- Системы линейных уравнений
Система линейных уравнений как пересечение прямых и как матричное уравнение Ax=b. Решение методом исключения вручную и геометрический смысл решения.
- Матрица данных в ML: объекты на признаки
Главная матрица ML — таблица «объекты×признаки». Строки-объекты и столбцы-признаки, форма (shape), извлечение признака, центрирование столбцов вручную.
- Собственные значения и идея PCA
Собственные векторы как особые направления преобразования, собственные значения как коэффициент растяжения. Степенной метод вручную и связь с PCA.
- Матрица как таблица и как преобразование
3 Математический анализ
- Функции, графики и почему они важны для ML
Функция как машина «вход-выход» и как график. Линейные и нелинейные функции, функция потерь как ландшафт, который мы хотим минимизировать.
- Производная: скорость изменения и наклон касательной
Производная как мгновенная скорость изменения и наклон касательной. Численная производная через малое приращение, проверка на f(x)=x² и других функциях.
- Частные производные и градиент
Частная производная по одной переменной при фиксированных остальных. Градиент как вектор частных производных и направление наискорейшего роста функции.
- Правило цепочки — основа обратного распространения
Правило цепочки для производной композиции функций. Почему оно лежит в основе backpropagation в нейросетях. Численная и аналитическая проверка на Python.
- Минимумы и максимумы функций
Где функция достигает минимума и максимума: условие нулевой производной, локальные и глобальные экстремумы, выпуклые функции. Поиск минимума перебором и по производной.
- Функции, графики и почему они важны для ML
4 Оптимизация и градиентный спуск
- Задача минимизации функции потерь
Что значит «обучить модель»: подобрать параметры, минимизирующие функцию потерь. MSE для регрессии, перебор как наивный способ и почему он не масштабируется.
- Градиентный спуск: идея и реализация
Градиентный спуск — пошаговый спуск по наклону к минимуму. Правило обновления, шаг обучения, запускаемая реализация на функции одной переменной с трассировкой шагов.
- Градиентный спуск для линейной регрессии
Полноценное обучение линейной регрессии градиентным спуском: модель y=wx+b, MSE, вывод градиентов по w и b, запускаемый цикл обучения на Python.
- Learning rate: слишком большой и слишком малый шаг
Шаг обучения (learning rate) — главный гиперпараметр спуска. Что происходит при слишком большом (расходимость) и слишком малом (медленно) шаге, как выбрать.
- Стохастический спуск, мини-батчи и локальные минимумы
Почему на больших данных используют стохастический и мини-батч градиентный спуск, как шум помогает выбираться из локальных минимумов. Реализация SGD вручную.
- Задача минимизации функции потерь
5 Вероятность
- Случайность и вероятность
Что такое вероятность: классическое определение и частотный смысл. Связь вероятности с частотой через закон больших чисел, симуляция бросков на Python.
- События, независимость и условная вероятность
Комбинация событий (И, ИЛИ), независимые события и правило умножения, условная вероятность P(A|B). Расчёт на колоде карт и проверка симуляцией.
- Теорема Байеса
Теорема Байеса: вывод из условной вероятности, наглядный пример с медицинским тестом, парадокс редкой болезни. Запускаемый расчёт и проверка симуляцией.
- Случайные величины, матожидание и дисперсия
Случайная величина как число от случайного исхода. Математическое ожидание (среднее по вероятностям) и дисперсия (разброс), расчёт вручную и проверка симуляцией.
- Распределения: Бернулли, биномиальное, нормальное
Три ключевых распределения для ML: Бернулли (один бросок), биномиальное (число успехов в серии), нормальное (колокол). Формулы, свойства и расчёт на Python.
- Случайность и вероятность
6 Статистика для ML
- Выборка против генеральной совокупности
Генеральная совокупность и выборка: почему мы изучаем часть, чтобы судить о целом. Случайная выборка, смещение отбора и оценка среднего по выборке.
- Оценки: среднее, дисперсия и смещённость
Оценка параметра по выборке. Смещённая и несмещённая оценка дисперсии, почему делят на n−1, проверка несмещённости усреднением по многим выборкам на Python.
- Корреляция и ковариация
Ковариация (совместная изменчивость) и корреляция (нормированная связь от −1 до 1). Расчёт вручную, интерпретация знака и почему корреляция не равна причинности.
- Центральная предельная теорема
Центральная предельная теорема: среднее выборки распределено нормально, даже если данные — нет. Симуляция на равномерном распределении и стандартная ошибка среднего.
- Максимальное правдоподобие и функции потерь
Метод максимального правдоподобия: подбираем параметры, при которых данные наиболее вероятны. Связь MLE с MSE и кросс-энтропией, расчёт правдоподобия на Python.
- Зачем вся эта математика в обучении моделей
Итоговая сборка: как линейная алгебра, анализ, оптимизация, вероятность и статистика соединяются в одном цикле обучения модели на запускаемом мини-примере.
- Выборка против генеральной совокупности