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

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

1. Введение в ML: что это такое и как обучаются машины

Введение в ML: что это такое и как обучаются машины

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

Главное отличие ML от обычного программирования заключается в подходе к решению задач.

Смена парадигмы: от инструкций к примерам

В классическом программировании разработчик пишет четкие правила. Например, чтобы конвертировать температуру, программист пишет формулу: «умножь на 1.8 и прибавь 32». Компьютер просто выполняет инструкцию.

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

!Сравнение подходов: в ML результатом работы является алгоритм (правило)

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

Три кита машинного обучения

Чтобы обучение состоялось, необходимы три компонента:

  • Данные (Data). Это учебник для машины. Чем больше и качественнее примеры, тем лучше ученик усвоит материал.
  • Признаки (Features). Это характеристики объекта. Для квартиры это площадь, этаж, район. Для картинки — цвета пикселей.
  • Алгоритм (Algorithm). Это метод, с помощью которого машина ищет закономерности. Результатом работы алгоритма становится Модель.
  • Как именно машина «учится»?

    Рассмотрим процесс на самом простом примере — предсказании стоимости квартиры. Допустим, у нас есть гипотеза, что цена зависит только от площади.

    1. Модель (Уравнение)

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

    где — предсказываемая цена квартиры, — площадь квартиры (известный признак), — вес (важность признака), — смещение (базовая цена).

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

    !Начальный этап: модель со случайными весами плохо описывает данные

    2. Функция потерь (Оценка ошибки)

    Машина делает предсказание для первой квартиры и сравнивает его с реальной ценой. Разница между предсказанием и реальностью называется ошибкой или функцией потерь (Loss Function).

    Простейший способ посчитать ошибку — взять квадрат разницы:

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

    Если модель ошиблась сильно, будет огромным. Цель обучения — найти такие и , чтобы была минимальной для всех квартир сразу.

    3. Оптимизация (Работа над ошибками)

    Теперь происходит магия обучения. Зная ошибку, алгоритм должен понять: нужно увеличить вес или уменьшить его, чтобы ошибка стала меньше?

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

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

    Машина повторяет этот цикл тысячи раз:

  • Сделать предсказание.
  • Посчитать ошибку.
  • Слегка подкрутить веса ( и ) в сторону уменьшения ошибки.
  • Когда ошибка перестает падать, обучение завершено. Мы получили обученную модель.

    Виды машинного обучения

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

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

    Самый популярный тип. У нас есть данные и правильные ответы к ним (размеченный датасет). * Задача: Машина должна научиться по входу предсказывать выход. * Примеры: * Определение спама (письмо -> спам/не спам). * Предсказание цены акций (история торгов -> цена завтра). * Медицинская диагностика (снимки МРТ -> есть патология или нет).

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

    У нас есть данные, но нет правильных ответов. Мы просто бросаем машину в океан информации и просим: «Найди здесь структуру». * Задача: Найти скрытые закономерности, сгруппировать объекты. * Примеры: * Сегментация клиентов банка (разделение на группы по поведению). * Рекомендательные системы (поиск похожих фильмов).

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

    Похоже на дрессировку собаки. Машина (агент) действует в среде и получает сигналы: «хорошо» (награда) или «плохо» (штраф). * Задача: Максимизировать награду. * Примеры: * Робот-пылесос учится обходить препятствия. * ИИ, играющий в шахматы или Dota 2.

    Обобщающая способность

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

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

    Итоги

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

    2. Подготовка данных: почему это важнее самого алгоритма

    Подготовка данных: почему это важнее самого алгоритма

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

    На практике работа специалиста по машинному обучению (Data Scientist) на 80% состоит из подготовки данных и лишь на 20% — из настройки моделей. В этой статье мы разберем, как превратить «сырые» данные в идеальное топливо для алгоритмов.

    Очистка данных: генеральная уборка

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

    1. Пропуски (Missing Values)

    Представьте таблицу с данными о пассажирах «Титаника». В графе «Возраст» у некоторых людей пустота. Компьютер не умеет считать пустоту, ему нужны числа. Что делать?

    * Удаление: Если пропусков мало (например, 1% строк), можно просто удалить эти строки. Но если пропусков много, мы потеряем ценную информацию. * Заполнение (Imputation): Мы можем заполнить пустоты средним значением или медианой. Если средний возраст пассажиров 30 лет, мы подставляем 30 всем, у кого возраст неизвестен.

    2. Выбросы (Outliers)

    Выброс — это значение, которое аномально сильно отличается от остальных.

    Пример: Мы анализируем зарплаты в небольшом городе. У большинства жителей зарплата 50 000 рублей. Но в городе живет один миллиардер. Если мы посчитаем среднюю зарплату, она окажется неоправданно высокой, хотя это не отражает реальность для 99% жителей.

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

    !Визуализация выброса: одна аномальная точка искажает общую картину данных

    Работа с категориями: как объяснить машине слова

    Алгоритмы машинного обучения понимают только язык математики. Они не знают, что такое «Красный», «Зеленый» или «Синий». Им нужны числа. Процесс перевода текста в числа называется кодированием признаков.

    Label Encoding (Порядковое кодирование)

    Самый простой способ — присвоить каждому слову уникальное число. * Красный = 1 * Зеленый = 2 * Синий = 3

    Проблема: Машина может решить, что «Синий» (3) больше, чем «Красный» (1), или что «Зеленый» — это среднее между ними. Для цветов это неверно, ведь цвета равнозначны. Этот метод подходит только там, где есть явный порядок (например: «Низкий», «Средний», «Высокий» -> 1, 2, 3).

    One-Hot Encoding (Горячее кодирование)

    Чтобы избежать ложного порядка, создают новые колонки для каждой категории. Если объект красный, мы ставим 1 в колонке «Красный» и 0 в остальных.

    | Цвет | -> | Is_Red | Is_Green | Is_Blue | |---|---|---|---|---| | Красный | -> | 1 | 0 | 0 | | Зеленый | -> | 0 | 1 | 0 | | Синий | -> | 0 | 0 | 1 |

    Теперь все цвета равноправны. Это самый надежный способ кодирования категорий.

    !Принцип работы One-Hot Encoding: создание отдельных признаков для каждой категории

    Масштабирование признаков: почему размер имеет значение

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

  • Площадь: от 20 до 200 кв. м.
  • Расстояние до центра: от 1000 до 20 000 метров.
  • Числа во втором признаке (расстояние) в сотни раз больше, чем в первом (площадь). Для многих алгоритмов (например, нейросетей или метода ближайших соседей) большие числа автоматически означают «большую важность». Модель будет игнорировать площадь и смотреть только на расстояние, что неверно.

    Чтобы этого избежать, мы приводим все признаки к одному масштабу (обычно от 0 до 1).

    Нормализация (Min-Max Scaling)

    Мы сжимаем все данные в диапазон [0, 1]. Формула выглядит так:

    где — новое (нормализованное) значение, — исходное значение, — минимальное значение в этом столбце данных, — максимальное значение в столбце.

    Пример: Если минимальная площадь 20, а максимальная 200, то квартира с площадью 110 превратится в: .

    Стандартизация (Z-score)

    Этот метод делает так, чтобы среднее значение стало равно 0, а разброс данных (стандартное отклонение) стал равен 1. Это полезно, если в данных есть выбросы.

    где — новое значение, — исходное значение, (мю) — среднее арифметическое всего столбца, (сигма) — стандартное отклонение (показатель того, насколько сильно данные разбросаны от среднего).

    !Эффект масштабирования: приведение признаков к единому диапазону

    Разделение выборки: экзамен для модели

    Представьте, что учитель дал вам 100 задач для подготовки к контрольной. Если на контрольной он даст те же самые 100 задач, вы получите пятерку, просто запомнив ответы. Но это не значит, что вы поняли предмет. Чтобы проверить реальные знания, задачи на контрольной должны быть новыми.

    В машинном обучении мы делаем то же самое. Мы делим все имеющиеся данные на две части:

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

    Итоги

    * Качество данных первично. Даже лучший алгоритм не даст результата на «мусорных» данных. * Числа вместо слов. Все текстовые категории (цвета, города, марки машин) должны быть превращены в числа через One-Hot Encoding или другие методы. * Равные права для признаков. Масштабирование (нормализация) необходимо, чтобы признаки с большими числами не подавляли признаки с маленькими числами. * Честная проверка. Всегда делите данные на обучающую и тестовую выборки, чтобы проверить реальную способность модели к предсказаниям.