Основы машинного обучения: от теории к практике

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

1. Введение в машинное обучение: основные понятия, история и классификация задач

Введение в машинное обучение: основные понятия, история и классификация задач

Добро пожаловать на курс «Основы машинного обучения: от теории к практике». Мы начинаем наше путешествие в мир, где алгоритмы не просто выполняют инструкции, а самостоятельно находят закономерности и принимают решения.

Вы, вероятно, сталкиваетесь с машинным обучением (Machine Learning, ML) десятки раз в день, даже не замечая этого. Когда стриминговый сервис рекомендует вам фильм, когда почтовый ящик отправляет письмо в папку «Спам», или когда банк блокирует подозрительную транзакцию — за всем этим стоят алгоритмы машинного обучения.

В этой вводной статье мы разберем, что это такое, чем оно отличается от обычного программирования, как оно развивалось и какие задачи способно решать.

Что такое машинное обучение?

Чтобы понять суть ML, давайте сравним его с традиционным программированием.

В традиционном программировании человек пишет код, который содержит четкие правила. Например, чтобы конвертировать температуру из Цельсия в Фаренгейт, программист закладывает формулу. Компьютер берет данные (градусы Цельсия), применяет правило и выдает ответ.

В машинном обучении подход меняется. Мы не пишем правила вручную. Вместо этого мы даем компьютеру данные (примеры температур в Цельсиях) и ответы (соответствующие температуры в Фаренгейтах). Задача компьютера — самостоятельно найти закономерность (правило), связывающую эти данные.

!Сравнение потоков данных в традиционном программировании и машинном обучении

> Машинное обучение — это область искусственного интеллекта, которая изучает методы построения алгоритмов, способных обучаться на данных.

Ключевые термины

Прежде чем идти дальше, определим словарь, которым будем пользоваться на протяжении всего курса:

  • Датасет (Dataset) — набор данных, на котором учится модель. Это может быть таблица Excel, папка с картинками или архив текстовых документов.
  • Признаки (Features) — характеристики объекта, которые мы подаем на вход модели. Например, если мы предсказываем цену квартиры, признаками будут: площадь, этаж, район, год постройки.
  • Целевая переменная (Target) — то, что мы хотим предсказать. В примере с квартирой это её цена.
  • Модель (Model) — алгоритм, который, посмотрев на признаки, пытается угадать целевую переменную.
  • Немного математики: как машина «учится»?

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

    Представьте простейшую задачу: предсказать стоимость поездки на такси () в зависимости от расстояния (). Мы можем предположить, что зависимость линейная:

    Где: * — итоговая стоимость поездки (наше предсказание). * — расстояние в километрах (входные данные). * — вес (weight), или тариф за километр. Это параметр, который модель должна «выучить». * — смещение (bias), или цена посадки. Это тоже параметр модели.

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

    «Обучение» заключается в том, чтобы постепенно менять и так, чтобы ошибка становилась всё меньше и меньше.

    Краткая история: от шашек до нейросетей

    Машинное обучение — не новая идея. Она развивалась волнами, переживая взлеты и падения.

    1950-е: Зарождение

    В 1950 году Алан Тьюринг предложил свой знаменитый тест: может ли машина мыслить? А в 1952 году Артур Сэмюэл написал программу для игры в шашки. Это была одна из первых программ, которая училась на своих ошибках. Сэмюэл же и ввел термин «Machine Learning».

    1980-е: Возрождение и статистика

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

    2010-е: Эра больших данных и глубокого обучения

    С появлением мощных видеокарт и огромных объемов данных (Big Data) произошел прорыв в нейронных сетях. Алгоритмы научились распознавать лица лучше людей, переводить тексты и управлять автомобилями.

    Классификация задач машинного обучения

    Это самая важная часть для понимания структуры курса. Все задачи ML можно разделить на три большие группы в зависимости от того, как именно мы учим модель.

    !Иерархия основных типов машинного обучения

    1. Обучение с учителем (Supervised Learning)

    Это самый распространенный тип. У нас есть «учитель» — это размеченный датасет, где для каждого примера уже известен правильный ответ.

    Задачи обучения с учителем делятся на два подтипа:

    Регрессия (Regression): Предсказание числа*. Примеры:* прогноз цены на акции, предсказание температуры на завтра, оценка времени доставки еды. Суть:* Ответ может быть любым числом на непрерывной шкале.

    Классификация (Classification): Предсказание категории* (класса). Примеры:* определить, кошка или собака на фото; болен пациент или здоров; вернет клиент кредит или нет. Суть:* Ответ выбирается из ограниченного списка вариантов.

    2. Обучение без учителя (Unsupervised Learning)

    Здесь у нас нет правильных ответов. Мы просто вываливаем на компьютер кучу данных и просим: «Найди здесь какую-нибудь структуру».

    Основные задачи:

    * Кластеризация: Группировка похожих объектов. Пример:* сегментация клиентов магазина. Алгоритм сам видит, что есть группа «студенты, покупающие гаджеты» и группа «родители, покупающие подгузники», хотя мы заранее эти группы не задавали. * Поиск аномалий: Выявление объектов, которые сильно отличаются от остальных. Пример:* обнаружение мошенничества с банковскими картами (транзакция выглядит не так, как обычное поведение клиента).

    3. Обучение с подкреплением (Reinforcement Learning)

    Это похоже на дрессировку собаки. Есть агент (робот или программа), который действует в какой-то среде. За хорошие действия он получает награду (баллы), за плохие — штраф.

    Примеры:* робот-пылесос учится не врезаться в стены; программа AlphaGo учится играть в Го; автопилот учится парковаться.

    Как выбрать правильный подход?

    Чтобы закрепить материал, давайте представим, что вы работаете в банке. Какие задачи вы можете решать?

    | Задача | Тип обучения | Подтип | | :--- | :--- | :--- | | Оценить вероятность дефолта клиента (вернет/не вернет) | С учителем | Классификация | | Предсказать сумму, которую клиент потратит в следующем месяце | С учителем | Регрессия | | Разделить базу клиентов на сегменты для маркетинга | Без учителя | Кластеризация |

    Заключение

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

    В следующей статье мы углубимся в процесс подготовки данных, ведь, как говорят специалисты по Data Science: «Мусор на входе — мусор на выходе». Мы научимся чистить данные и готовить их для наших моделей.

    2. Подготовка данных: предварительная обработка, разведочный анализ и конструирование признаков

    Подготовка данных: предварительная обработка, разведочный анализ и конструирование признаков

    В предыдущей статье мы познакомились с основными понятиями машинного обучения и узнали, что модели учатся на данных. Но есть один нюанс, о котором часто забывают новички: данные в реальном мире «грязные». Они полны пропусков, ошибок, выбросов и шума.

    Существует негласное правило в Data Science: 80% времени уходит на подготовку данных и только 20% — на построение моделей. Если вы подадите на вход нейросети некачественные данные, даже самая совершенная архитектура выдаст бессмысленный результат. Этот принцип называется Garbage In, Garbage Out («Мусор на входе — мусор на выходе»).

    Сегодня мы пройдем путь от «сырого» датасета до набора данных, готового к обучению, через три этапа: очистка (Preprocessing), разведочный анализ (EDA) и конструирование признаков (Feature Engineering).

    Этап 1. Предварительная обработка (Data Preprocessing)

    Первый шаг — это «генеральная уборка». Наша цель — сделать данные пригодными для чтения алгоритмом.

    Работа с пропущенными значениями

    Представьте таблицу с данными о клиентах банка, где в колонке «Возраст» у некоторых людей пустота. Компьютер не умеет умножать или складывать пустоту (NaN — Not a Number). Что делать?

  • Удаление: Если строк с пропусками мало (например, менее 5%), их можно просто удалить. Это самый простой, но рискованный метод — мы можем потерять важную информацию.
  • Заполнение (Импутация): Мы можем заменить пропуск на какое-то число.
  • * Для количественных данных (возраст, зарплата) часто используют среднее арифметическое или медиану. * Для категориальных данных (город, пол) можно использовать моду (самое частое значение) или создать отдельную категорию «Неизвестно».

    !Стратегии работы с пропущенными значениями: удаление против заполнения

    Удаление дубликатов и шума

    Иногда данные задваиваются из-за технических сбоев. Если в вашем датасете одна и та же транзакция записана дважды, модель может решить, что это событие происходит чаще, чем на самом деле. Дубликаты необходимо удалять.

    Этап 2. Разведочный анализ данных (EDA)

    Когда данные очищены, наступает время стать детективом. Exploratory Data Analysis (EDA) — это процесс исследования данных с целью поиска закономерностей, аномалий и проверки гипотез.

    Описательная статистика

    Для начала нам нужно понять «центр» наших данных и их разброс. Здесь нам поможет математика.

    Самая популярная мера — среднее арифметическое:

    Где: * — среднее значение выборки. * — количество объектов в выборке. * — значение -го объекта. * — знак суммирования (сумма всех значений).

    Однако среднее значение коварно. Представьте бар, где сидят 10 рабочих с зарплатой 50 000 рублей. Средняя зарплата — 50 000. В бар заходит миллиардер. Внезапно средняя зарплата в баре становится миллионной, хотя 10 человек всё так же получают 50 000.

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

    Визуализация распределений

    Цифры в таблице сухие. Графики позволяют увидеть структуру данных мгновенно.

    * Гистограмма: Показывает, как часто встречаются те или иные значения. Например, распределение роста людей (похоже на колокол). * Boxplot («Ящик с усами»): Отличный инструмент для поиска выбросов. Всё, что выходит за пределы «усов», считается аномалией.

    !Гистограмма показывает форму распределения, а Boxplot помогает найти аномалии

    Корреляция

    Нам важно знать, как признаки зависят друг от друга. Связаны ли «Площадь квартиры» и «Цена»? Скорее всего, да. Эту связь измеряет коэффициент корреляции Пирсона (). Он меняется от -1 до 1.

    * : Полная прямая связь (чем больше , тем больше ). * : Полная обратная связь (чем больше , тем меньше ). * : Связи нет.

    Важно помнить: Корреляция не означает причинно-следственную связь! Если продажи мороженого коррелируют с количеством солнечных ожогов, это не значит, что мороженое вызывает ожоги. У них просто общая причина — жаркое солнце.

    Этап 3. Конструирование признаков (Feature Engineering)

    Это настоящее искусство. Мы создаем новые признаки, которые помогут модели лучше понять задачу, и преобразуем существующие.

    Кодирование категориальных признаков

    Большинство алгоритмов ML (например, линейная регрессия) умеют работать только с числами. Они не поймут, если вы подадите им на вход слово «Красный» или «BMW».

  • Label Encoding: Каждой категории присваивается число (BMW = 1, Audi = 2, Lada = 3).
  • Проблема:* Модель может решить, что Lada (3) «больше» или «лучше», чем BMW (1), хотя это просто метки.
  • One-Hot Encoding (OHE): Для каждой категории создается отдельный столбец (признак), где ставится 1, если объект относится к категории, и 0, если нет.
  • | Марка | -> | Is_BMW | Is_Audi | Is_Lada | | :--- | :--- | :--- | :--- | :--- | | BMW | -> | 1 | 0 | 0 | | Audi | -> | 0 | 1 | 0 |

    Масштабирование данных (Scaling)

    Представьте, что у нас есть два признака:

  • Возраст (от 18 до 90).
  • Зарплата (от 20 000 до 500 000).
  • Диапазон зарплаты в тысячи раз больше диапазона возраста. Для многих алгоритмов это проблема: они будут считать зарплату более важным признаком просто из-за больших чисел. Чтобы это исправить, мы приводим все признаки к одному масштабу.

    Нормализация (Min-Max Scaling): Сжимает все данные в диапазон от 0 до 1.

    Где: * — новое, нормализованное значение. * — исходное значение. * — минимальное значение в столбце. * — максимальное значение в столбце.

    Стандартизация (Z-score): Делает так, чтобы среднее значение стало равно 0, а стандартное отклонение — 1.

    Где: * — стандартизированное значение. * — исходное значение. * (мю) — среднее значение выборки. * (сигма) — стандартное отклонение (мера разброса данных).

    Создание новых признаков

    Иногда полезная информация скрыта. * Из даты «2023-10-05» можно извлечь признаки: «День недели», «Выходной ли это?», «Время года». * Из «Цены» и «Площади» можно создать новый мощный признак «Цена за квадратный метр».

    Заключение

    Мы прошли путь подготовки данных. Теперь наш датасет чист (без пропусков), понятен (мы изучили распределения) и удобен для математических алгоритмов (все признаки — числа одного масштаба).

    В следующей статье мы перейдем к самому интересному — выбору алгоритма машинного обучения и тренировке нашей первой модели. Мы разберем, как делить данные на обучающую и тестовую выборки, чтобы честно проверить знания нашего ИИ.

    3. Алгоритмы обучения с учителем: линейные модели, деревья решений и ансамбли

    Алгоритмы обучения с учителем: линейные модели, деревья решений и ансамбли

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

    В этой статье мы разберем три кита классического машинного обучения (Classical ML): линейные модели, деревья решений и ансамбли. Именно эти алгоритмы решают 90% задач в бизнесе, от скоринга кредитов до рекомендаций товаров.

    Линейные модели: простота и эффективность

    Линейные модели — это фундамент машинного обучения. Они пытаются найти прямую линию (или плоскость в многомерном пространстве), которая лучше всего описывает данные. Их главное преимущество — скорость работы и интерпретируемость: мы всегда можем сказать, почему модель приняла то или иное решение.

    Линейная регрессия (Linear Regression)

    Вспомните задачу из первой лекции: предсказать стоимость поездки на такси. Это классическая задача регрессии. Линейная регрессия предполагает, что ответ можно получить, просто умножив признаки на определенные веса и сложив их.

    Математически это выглядит так:

    Где: * — предсказываемое значение (например, цена поездки). * — свободный член или смещение (bias). Это базовая цена, даже если все признаки равны нулю (цена посадки). * — веса модели (коэффициенты). Они показывают важность каждого признака. * — значения признаков (расстояние, время суток, класс авто).

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

    Обучение модели заключается в том, чтобы подобрать такие веса , при которых линия проходит максимально близко ко всем точкам сразу.

    Логистическая регрессия (Logistic Regression)

    Пусть вас не обманывает название. Логистическая регрессия используется для задач классификации, а не регрессии. Например, чтобы определить: уйдет клиент из банка или останется (ответ 1 или 0).

    Линейная регрессия здесь не подойдет, так как она может выдать число 150 или -20, а нам нужна вероятность от 0 до 1. Для этого результат линейного уравнения оборачивают в специальную функцию — сигмоиду.

    Где: * — результат функции (вероятность того, что объект относится к классу 1). * — число Эйлера (математическая константа, приблизительно равна 2.718). * — результат линейного уравнения ().

    Если вероятность больше 0.5, мы говорим, что это класс 1. Если меньше — класс 0.

    Деревья решений (Decision Trees)

    Если линейные модели — это математика, то деревья решений — это логика. Этот алгоритм имитирует то, как принимают решения люди. Вспомните игру «Акинатор» или медицинский опросник.

    Как это работает?

    Дерево задает последовательность вопросов «Да/Нет» к данным, чтобы разбить их на группы. Давайте представим, что мы решаем, брать ли зонт.

  • Корневой узел: Идет ли дождь?
  • Да:* -> Берем зонт (Лист). Нет:* -> Идем к следующему вопросу.
  • Узел решения: Облачно ли на улице?
  • Да:* -> Берем зонт (Лист). Нет:* -> Не берем зонт (Лист).

    !Структура дерева решений: от корня через ветви к листьям

    В машинном обучении алгоритм сам придумывает эти вопросы, перебирая все возможные признаки и значения, чтобы найти такое разбиение, которое лучше всего разделяет классы.

    Плюсы и минусы деревьев

    * Плюсы: Легко понять и визуализировать. Не требуют сложной подготовки данных (масштабирования). * Минусы: Склонность к переобучению (overfitting). Дерево может построить слишком сложную структуру, запомнив каждый отдельный пример из обучающей выборки, но не поняв общей закономерности. На новых данных такое дерево будет работать плохо.

    Ансамбли: сила толпы

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

    Существует две основные стратегии создания ансамблей: Бэггинг и Бустинг.

    1. Бэггинг (Bagging) и Случайный лес

    Идея бэггинга (Bootstrap Aggregating) заключается в параллельном обучении множества независимых моделей. Самый яркий пример — Случайный лес (Random Forest).

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

    Как работает Random Forest:

  • Мы берем много деревьев решений (например, 100 штук).
  • Каждое дерево учится на случайной подвыборке данных (не видит весь датасет).
  • При построении каждого узла дерево видит только случайный набор признаков.
  • Итог: Для классификации мы берем «голосование большинства», для регрессии — среднее арифметическое ответов всех деревьев.
  • Такой подход отлично борется с переобучением. Ошибки отдельных деревьев гасят друг друга.

    2. Бустинг (Boosting) и Градиентный бустинг

    Если бэггинг — это толпа независимых экспертов, то бустинг — это команда, где каждый следующий участник исправляет ошибки предыдущего.

    Модели обучаются последовательно:

  • Строим первое, очень простое дерево. Оно делает много ошибок.
  • Строим второе дерево, которое учится предсказывать ошибки первого дерева.
  • Строим третье дерево, которое исправляет ошибки первых двух.
  • И так далее.
  • Итоговый ответ — это сумма предсказаний всех моделей с определенными весами.

    Где: * — итоговое предсказание ансамбля. * — количество моделей (деревьев). * — предсказание -го дерева. * (гамма) — вес (вклад) -го дерева в общий результат.

    Самые популярные реализации бустинга сегодня — это библиотеки XGBoost, LightGBM и CatBoost (разработка Яндекса). Они часто побеждают в соревнованиях по анализу данных.

    !Бэггинг (параллельное обучение) против Бустинга (последовательное исправление ошибок)

    Как выбрать алгоритм?

    В Data Science нет «серебряной пули», но есть общие рекомендации:

  • Начните с простого. Всегда пробуйте линейную регрессию или логистическую регрессию первыми. Они станут вашим «базовым уровнем» (baseline).
  • Нужна интерпретируемость? Используйте линейные модели или одно дерево решений. Вы сможете объяснить бизнесу каждое слагаемое формулы или каждое условие.
  • Нужно максимальное качество? Используйте ансамбли (Random Forest или Gradient Boosting). На табличных данных они сейчас являются стандартом индустрии.
  • Мало данных? Линейные модели работают лучше на маленьких выборках, чем сложные ансамбли, которым нужно много примеров для обучения.
  • Заключение

    Мы разобрали основные инструменты «учителя» в машинном обучении. Линейные модели рисуют границы, деревья строят лабиринты правил, а ансамбли объединяют их усилия для достижения наилучшего результата.

    Но как понять, что наша модель действительно работает хорошо? Просто посмотреть на предсказания недостаточно. В следующей статье мы погрузимся в мир метрик качества и узнаем, чем Accuracy отличается от Precision, и почему в медицине нельзя использовать те же метрики, что и в YouTube.

    4. Обучение без учителя и введение в глубокое обучение: кластеризация и нейросети

    Обучение без учителя и введение в глубокое обучение: кластеризация и нейросети

    Мы уже научились предсказывать цены на квартиры и определять, вернет ли клиент кредит, используя размеченные данные. Это было обучение с учителем. Но что делать, если у нас нет правильных ответов? Что если у нас есть просто гигантская куча документов, фотографий или транзакций, и никто не сказал нам, что есть что?

    В этой статье мы шагаем в неизведанное. Мы разберем обучение без учителя (Unsupervised Learning), где алгоритм предоставлен сам себе, и откроем дверь в мир глубокого обучения (Deep Learning) — технологий, лежащих в основе ChatGPT, Midjourney и автопилотов Tesla.

    Обучение без учителя: поиск структуры в хаосе

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

    Главная цель здесь — найти скрытые закономерности, структуру или аномалии в данных.

    Кластеризация (Clustering)

    Самая популярная задача обучения без учителя — это кластеризация. Это процесс группировки объектов так, чтобы объекты внутри одной группы (кластера) были более похожи друг на друга, чем на объекты из других групп.

    Представьте, что вы маркетолог. У вас есть база из миллиона покупателей. Вы не знаете, кто они, но хотите сделать им спецпредложения. Алгоритм кластеризации может найти такие группы:

    * «Экономные студенты» (покупают доширак и энергетики). * «Молодые родители» (покупают подгузники и детское питание). * «ЗОЖ-активисты» (покупают авокадо и фитнес-браслеты).

    #### Алгоритм K-Means (К-средних)

    Это «автомат Калашникова» в мире кластеризации. Он простой, быстрый и работает во многих случаях.

    Суть алгоритма:

  • Мы выбираем число кластеров (например, 3).
  • Алгоритм случайно ставит 3 точки в пространстве данных. Эти точки называются центроидами.
  • Каждый объект данных «приписывается» к ближайшему центроиду.
  • Центроиды перемещаются в центр масс своих новых групп.
  • Шаги 3 и 4 повторяются, пока центроиды не перестанут двигаться.
  • !Процесс итеративного обучения алгоритма K-Means: центроиды смещаются к центрам скоплений данных.

    Чтобы понять, какой центроид «ближе», компьютер использует Евклидово расстояние — по сути, длину прямой линии между точками.

    Где: * — расстояние между точкой и точкой (центроидом). * — знак суммы (суммируем по всем признакам). * — количество признаков (измерений). * и — координаты точек по -му признаку.

    Понижение размерности (Dimensionality Reduction)

    Иногда данных слишком много не по количеству строк, а по количеству столбцов (признаков). Представьте таблицу с 10 000 колонок. Визуализировать это невозможно, а модели обучаются на таком объеме вечность.

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

    Введение в глубокое обучение (Deep Learning)

    Теперь перейдем к теме, которая создает весь хайп в современном ИИ. Глубокое обучение — это подраздел машинного обучения, основанный на искусственных нейронных сетях.

    Почему «глубокое»? Потому что современные сети состоят из десятков и сотен слоев, наслоенных друг на друга.

    Нейрон: кирпичик интеллекта

    Искусственный нейрон — это математическая модель, вдохновленная биологическим нейроном нашего мозга. Он получает сигналы, взвешивает их важность и решает, передавать ли сигнал дальше.

    Математически один нейрон выполняет два действия:

  • Линейная комбинация: Считает взвешенную сумму входов.
  • Где: * — результат суммирования. * — количество входов. * — вес -го входа (важность сигнала). * — значение -го входа. * — смещение (bias), порог активации.

  • Функция активации: Преобразует полученное число , добавляя нелинейность. Без этого нейросеть была бы просто большой линейной регрессией.
  • Самая популярная функция активации сегодня — ReLU (Rectified Linear Unit):

    Где: * — выход нейрона. * — функция, которая возвращает , если оно положительное, и 0, если отрицательное. То есть «отсекает» минусы.

    !Структура искусственного нейрона: входы, веса, суммирование и активация.

    Многослойный перцептрон (MLP)

    Один нейрон может решать только примитивные задачи. Но если соединить их в сеть, начинается магия.

    Классическая нейросеть состоит из трех типов слоев:

  • Входной слой (Input Layer): Принимает сырые данные (пиксели картинки, слова текста).
  • Скрытые слои (Hidden Layers): Те самые «глубокие» слои, где происходит обработка. Первый скрытый слой находит простые паттерны (линии, углы), следующий собирает из них фигуры (глаза, уши), третий — целые объекты (кошки, собаки).
  • Выходной слой (Output Layer): Выдает финальный ответ (вероятность класса).
  • Как учатся нейросети? (Backpropagation)

    Нейросеть в начале своего пути глупа. Веса расставлены случайно. Она смотрит на фото кошки и говорит: «Это тостер с вероятностью 99%».

    Чтобы исправить это, используется алгоритм обратного распространения ошибки (Backpropagation).

  • Прямой проход (Forward Pass): Данные проходят через сеть, получается предсказание.
  • Вычисление ошибки (Loss): Мы сравниваем предсказание с реальностью. Насколько сильно сеть ошиблась?
  • Обратный проход (Backward Pass): Мы идем от конца сети к началу и вычисляем, какой вклад в ошибку внес каждый конкретный нейрон.
  • Обновление весов: Мы немного меняем веса в сторону уменьшения ошибки. Для этого используется метод градиентного спуска.
  • Представьте, что вы стоите на вершине горы в густом тумане (это высокая ошибка). Ваша задача — спуститься в долину (к минимальной ошибке). Вы ощупываете землю ногами, находите, где склон идет вниз, и делаете маленький шаг в ту сторону. Повторяете миллион раз, пока не окажетесь внизу.

    !Визуализация градиентного спуска: поиск минимума функции ошибки.

    Где применяются нейросети?

    Глубокое обучение совершило революцию там, где классические алгоритмы (вроде деревьев решений) буксовали:

    * Компьютерное зрение (Computer Vision): Распознавание лиц, диагностика по рентгену, беспилотные автомобили. * Обработка естественного языка (NLP): Переводчики (Google Translate), генерация текста (ChatGPT), голосовые помощники (Siri, Алиса).

    Заключение

    Сегодня мы рассмотрели две полярные области. С одной стороны — обучение без учителя, которое помогает найти структуру в хаосе неразмеченных данных. С другой — глубокое обучение, мощнейший инструмент, имитирующий работу мозга для решения сложнейших задач восприятия.

    На этом теоретическая часть нашего курса завершена. У вас есть полный арсенал знаний: от подготовки данных до понимания архитектуры нейросетей. Впереди — практика и создание ваших собственных моделей.

    5. Оценка качества моделей, борьба с переобучением и внедрение решений

    Оценка качества моделей, борьба с переобучением и внедрение решений

    Поздравляю! Если вы читаете эту статью, значит, вы уже знаете, как собирать данные, как их чистить и как обучать различные алгоритмы — от простой линейной регрессии до нейронных сетей. Казалось бы, дело сделано: запускаем метод fit(), получаем модель и идем пить кофе.

    Но здесь возникает главный вопрос: а можно ли доверять этой модели?

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

    Честная игра: Обучающая и тестовая выборки

    Представьте, что вы готовитесь к экзамену по математике. У вас есть учебник с задачами и ответами в конце. Если вы просто выучите наизусть ответы ко всем задачам из учебника, вы сдадите домашнюю работу на отлично. Но что случится на реальном экзамене, где задачи будут новыми?

    То же самое происходит с моделями. Если мы проверим качество модели на тех же данных, на которых она училась, мы получим ложно завышенный результат. Модель просто «запомнит» примеры.

    Чтобы оценка была честной, данные всегда делят на части:

  • Обучающая выборка (Training set): Обычно 70-80% данных. На них модель учится (настраивает веса).
  • Тестовая выборка (Test set): Оставшиеся 20-30%. Эти данные модель никогда не видела в процессе обучения. Мы используем их только один раз — в самом конце, чтобы проверить реальное качество.
  • !Прямоугольник, разделенный на три части разных цветов: большая часть (Train), средняя (Validation) и маленькая (Test)

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

    Метрики качества: почему Accuracy недостаточно?

    Самая интуитивная метрика — это Accuracy (Доля правильных ответов). Это просто процент случаев, когда модель угадала правильно.

    Где: * (True Positive) — верно предсказанный положительный класс (например, модель сказала «болен», и пациент болен). * (True Negative) — верно предсказанный отрицательный класс (сказала «здоров», и пациент здоров). * (False Positive) — ложное срабатывание (сказала «болен», а пациент здоров). * (False Negative) — пропуск события (сказала «здоров», а пациент болен).

    Проблема Accuracy: Представьте, что мы ищем редкое заболевание, которое встречается у 1 человека из 100. Если наша модель будет всем подряд говорить «Здоров», её Accuracy будет 99%! Цифра красивая, но модель абсолютно бесполезна, так как пропустила всех больных.

    Для более детальной оценки используют Матрицу ошибок (Confusion Matrix) и производные от неё метрики.

    !Квадратная таблица, где строки - это реальные классы, а столбцы - предсказанные, с цветовой индикацией ошибок и верных ответов

    Precision и Recall

    Две ключевые метрики, которые часто находятся в конфликте друг с другом:

  • Precision (Точность): Доля действительно положительных объектов среди всех, кого модель назвала положительными. Грубо говоря: «Если модель сказала 'Ага!', насколько можно ей верить?»
  • Где: * — верно предсказанные положительные объекты. * — объекты, ошибочно отнесенные к положительному классу.

  • Recall (Полнота): Какую долю положительных объектов из всех существующих модель смогла найти. Грубо говоря: «Не пропустили ли мы кого-то?»
  • Где: * — верно предсказанные положительные объекты. * — объекты положительного класса, которые модель пропустила.

    Пример: * В спам-фильтре важен Precision. Лучше пропустить спам во входящие (низкий Recall), чем отправить важное письмо от начальника в папку «Спам» (низкий Precision). * В диагностике рака важен Recall. Лучше отправить здорового человека на дообследование (низкий Precision), чем пропустить больного пациента (низкий Recall).

    F1-Score

    Если нам важны и точность, и полнота, используют их гармоническое среднее — F1-меру.

    Где: * — точность. * — полнота.

    Метрики для задач регрессии

    Если мы предсказываем не класс, а число (например, цену квартиры), подход меняется. Нам важно, насколько сильно мы ошиблись в рублях.

    MAE (Mean Absolute Error)

    Средняя абсолютная ошибка. Мы берем модуль разницы между предсказанием и реальностью и усредняем.

    Где: * — количество объектов. * — реальное значение. * — предсказанное значение. * — модуль числа.

    MSE (Mean Squared Error)

    Средняя квадратичная ошибка. Мы возводим ошибку в квадрат. Это сильно «наказывает» модель за большие промахи.

    Где: * — количество объектов. * — реальное значение. * — предсказанное значение.

    Переобучение (Overfitting) и Недообучение (Underfitting)

    Это главные враги Data Scientist'а.

  • Недообучение: Модель слишком простая. Она не уловила закономерности. Например, мы пытаемся описать движение планет прямой линией. Ошибка велика и на тренировке, и на тесте.
  • Переобучение: Модель слишком сложная. Она не выучила закон, а просто «зазубрила» шум и выбросы в обучающей выборке. На тренировке ошибка почти ноль, а на тесте — огромная.
  • !Три графика в ряд, показывающие как линия модели проходит через точки данных

    Как бороться с переобучением?

  • Больше данных: Самый лучший способ. Чем больше примеров, тем сложнее модели их просто запомнить.
  • Регуляризация: Мы искусственно штрафуем модель за сложность. Мы добавляем к функции ошибки слагаемое, которое растет, если веса модели становятся слишком большими.
  • Кросс-валидация (Cross-Validation): Метод, при котором мы делим данные на частей (фолдов). Модель учится раз, каждый раз используя одну часть как тест, а остальные — как трейн. Это дает более надежную оценку качества.
  • Внедрение (Deployment): Модель готова, что дальше?

    Jupyter Notebook — это песочница. Бизнесу не нужен ноутбук с кодом, ему нужен сервис.

    Процесс вывода модели в продакшн (эксплуатацию) обычно выглядит так:

  • Сериализация: Сохранение обученной модели в файл (например, с помощью библиотеки pickle или joblib в Python). Это как «Сохранить игру».
  • Обертка в API: Создание веб-сервиса (например, на Flask или FastAPI). Приложение получает данные через HTTP-запрос, загружает модель, делает предсказание и возвращает ответ.
  • Контейнеризация: Упаковка всего этого в Docker, чтобы сервис работал одинаково на любом сервере.
  • Мониторинг: Данные в реальном мире меняются. Модель, обученная на ценах 2020 года, будет врать в 2024 году. Это явление называется Data Drift. За качеством модели нужно следить постоянно и периодически переобучать её.
  • Заключение

    Мы завершили теоретический блок курса «Основы машинного обучения». Мы прошли путь от понимания того, что такое ИИ, до методов оценки и внедрения моделей.

    Машинное обучение — это не магия, а сочетание математики, статистики и программирования. Теперь, обладая этим фундаментом, вы готовы переходить к практике: брать реальные датасеты, ошибаться, экспериментировать и создавать решения, которые приносят пользу.