AI и машинное обучение

Учебник Математика для машинного обучения для начинающих

31 урок · 6 разделов · бесплатно, без регистрации

Машинное обучение — это математика, которая учится на данных. Этот курс показывает, что стоит под капотом: векторы и матрицы (линейная алгебра), производные и градиент (математический анализ), градиентный спуск (оптимизация), вероятность и статистика. Главная идея — сделать математику осязаемой: каждое понятие даётся как интуиция плюс формула словами плюс запускаемый Python-расчёт, который вы можете менять прямо в браузере. Никаких внешних библиотек: скалярное произведение, нормы, умножение матриц, численные производные, градиентный спуск, теорему Байеса и корреляцию мы пишем руками на стандартной библиотеке — так видно, как именно крутятся шестерёнки. NumPy упоминается как удобный инструмент для практики. От вас нужен базовый Python; математику объясняем с нуля, но всерьёз — с интуицией и строгостью.

Курс «Математика для машинного обучения» состоит из 6 разделов и 31 урока: Линейная алгебра: векторы, Линейная алгебра: матрицы, Математический анализ, Оптимизация и градиентный спуск, Вероятность и Статистика для ML. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Линейная алгебра: векторы

    1. Что такое вектор: точка, стрелка и список чисел

      Вектор с двух сторон: геометрическая стрелка и список координат. Почему в ML объект — это вектор признаков и зачем нужны размерности.

    2. Операции над векторами: сложение и умножение на скаляр

      Сложение и вычитание векторов покоординатно, умножение на скаляр (растяжение). Геометрический смысл и реализация вручную на Python.

    3. Скалярное произведение: проекция, угол и косинусная близость

      Скалярное произведение векторов: формула, геометрический смысл (проекция и угол), связь с косинусом. Реализация и расчёт угла вручную на Python.

    4. Норма, длина и нормализация вектора

      Норма (длина) вектора через теорему Пифагора, евклидово расстояние, нормализация в единичный вектор. Зачем нормализуют признаки в ML.

  2. 2 Линейная алгебра: матрицы

    1. Матрица как таблица и как преобразование

      Два взгляда на матрицу: таблица чисел и функция, которая преобразует векторы. Размер матрицы, обращение к элементам, умножение матрицы на вектор.

    2. Умножение матриц: смысл и реализация вручную

      Умножение матриц как композиция преобразований. Правило строка-на-столбец, согласованность размеров, реализация тройным циклом и проверка на Python.

    3. Транспонирование, единичная и обратная матрицы

      Транспонирование (поворот таблицы), единичная матрица (как 1 для умножения), идея обратной матрицы как отмены преобразования. Реализация на Python.

    4. Системы линейных уравнений

      Система линейных уравнений как пересечение прямых и как матричное уравнение Ax=b. Решение методом исключения вручную и геометрический смысл решения.

    5. Матрица данных в ML: объекты на признаки

      Главная матрица ML — таблица «объекты×признаки». Строки-объекты и столбцы-признаки, форма (shape), извлечение признака, центрирование столбцов вручную.

    6. Собственные значения и идея PCA

      Собственные векторы как особые направления преобразования, собственные значения как коэффициент растяжения. Степенной метод вручную и связь с PCA.

  3. 3 Математический анализ

    1. Функции, графики и почему они важны для ML

      Функция как машина «вход-выход» и как график. Линейные и нелинейные функции, функция потерь как ландшафт, который мы хотим минимизировать.

    2. Производная: скорость изменения и наклон касательной

      Производная как мгновенная скорость изменения и наклон касательной. Численная производная через малое приращение, проверка на f(x)=x² и других функциях.

    3. Частные производные и градиент

      Частная производная по одной переменной при фиксированных остальных. Градиент как вектор частных производных и направление наискорейшего роста функции.

    4. Правило цепочки — основа обратного распространения

      Правило цепочки для производной композиции функций. Почему оно лежит в основе backpropagation в нейросетях. Численная и аналитическая проверка на Python.

    5. Минимумы и максимумы функций

      Где функция достигает минимума и максимума: условие нулевой производной, локальные и глобальные экстремумы, выпуклые функции. Поиск минимума перебором и по производной.

  4. 4 Оптимизация и градиентный спуск

    1. Задача минимизации функции потерь

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

    2. Градиентный спуск: идея и реализация

      Градиентный спуск — пошаговый спуск по наклону к минимуму. Правило обновления, шаг обучения, запускаемая реализация на функции одной переменной с трассировкой шагов.

    3. Градиентный спуск для линейной регрессии

      Полноценное обучение линейной регрессии градиентным спуском: модель y=wx+b, MSE, вывод градиентов по w и b, запускаемый цикл обучения на Python.

    4. Learning rate: слишком большой и слишком малый шаг

      Шаг обучения (learning rate) — главный гиперпараметр спуска. Что происходит при слишком большом (расходимость) и слишком малом (медленно) шаге, как выбрать.

    5. Стохастический спуск, мини-батчи и локальные минимумы

      Почему на больших данных используют стохастический и мини-батч градиентный спуск, как шум помогает выбираться из локальных минимумов. Реализация SGD вручную.

  5. 5 Вероятность

    1. Случайность и вероятность

      Что такое вероятность: классическое определение и частотный смысл. Связь вероятности с частотой через закон больших чисел, симуляция бросков на Python.

    2. События, независимость и условная вероятность

      Комбинация событий (И, ИЛИ), независимые события и правило умножения, условная вероятность P(A|B). Расчёт на колоде карт и проверка симуляцией.

    3. Теорема Байеса

      Теорема Байеса: вывод из условной вероятности, наглядный пример с медицинским тестом, парадокс редкой болезни. Запускаемый расчёт и проверка симуляцией.

    4. Случайные величины, матожидание и дисперсия

      Случайная величина как число от случайного исхода. Математическое ожидание (среднее по вероятностям) и дисперсия (разброс), расчёт вручную и проверка симуляцией.

    5. Распределения: Бернулли, биномиальное, нормальное

      Три ключевых распределения для ML: Бернулли (один бросок), биномиальное (число успехов в серии), нормальное (колокол). Формулы, свойства и расчёт на Python.

  6. 6 Статистика для ML

    1. Выборка против генеральной совокупности

      Генеральная совокупность и выборка: почему мы изучаем часть, чтобы судить о целом. Случайная выборка, смещение отбора и оценка среднего по выборке.

    2. Оценки: среднее, дисперсия и смещённость

      Оценка параметра по выборке. Смещённая и несмещённая оценка дисперсии, почему делят на n−1, проверка несмещённости усреднением по многим выборкам на Python.

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

      Ковариация (совместная изменчивость) и корреляция (нормированная связь от −1 до 1). Расчёт вручную, интерпретация знака и почему корреляция не равна причинности.

    4. Центральная предельная теорема

      Центральная предельная теорема: среднее выборки распределено нормально, даже если данные — нет. Симуляция на равномерном распределении и стандартная ошибка среднего.

    5. Максимальное правдоподобие и функции потерь

      Метод максимального правдоподобия: подбираем параметры, при которых данные наиболее вероятны. Связь MLE с MSE и кросс-энтропией, расчёт правдоподобия на Python.

    6. Зачем вся эта математика в обучении моделей

      Итоговая сборка: как линейная алгебра, анализ, оптимизация, вероятность и статистика соединяются в одном цикле обучения модели на запускаемом мини-примере.