Переходя от истории к системному изучению технологий, важно выстроить четкую иерархию внутри предметной области Data Science, освоить классификацию типов машинного обучения и познакомиться с правилами организации данных перед стартом разработки моделей.
Иерархия ИИ, МО и Глубокого обучения
В современной практике понятия «Искусственный интеллект» (AI), «Машинное обучение» (ML) и «Нейронные сети» (Deep Learning) часто используют как синонимы. Однако они вложены друг в друга как матрёшка:
- Искусственный интеллект (ИИ / AI): Область науки, посвященная автоматизации интеллектуального труда. Сюда входят как системы машинного обучения, так и статические правила (включая регулярные выражения чат-ботов первого поколения вроде ELIZA или экспертные системы).
- Машинное обучение (МО / ML): Класс ИИ-методов, работающих по индуктивному принципу (обучение по прецедентам). В отличие от дедуктивного подхода (когда эксперт формулирует правила и закладывает их в базу), машинное обучение самостоятельно выявляет эмпирические закономерности напрямую из исторических данных.
- Глубокое обучение (Deep Learning / DL): Подмножество машинного обучения, решающее задачи за счет использования многослойных (глубоких) нейросетевых архитектур.
Бизнес-правило: Не усложняйте без необходимости
Из-за текущего информационного хайпа вокруг нейросетей и больших языковых моделей (LLM) разработчики часто пытаются применить глубокое обучение (Deep Learning) ко всем задачам без разбора.
«Аудируя проекты на крупных хакатонах по ИИ, я регулярно сталкиваюсь с одной и той же ошибкой: команды тратят ресурсы на построение сложных нейросетей там, где классические “неглубокие” методы (например, градиентный бустинг или линейные модели) показывают лучший результат за секунды. Нейросети — мощный инструмент, но применять их нужно осознанно и только там, где классический ML не справляется».
— Леонид Лукин, к.т.н.
Три фундаментальные парадигмы машинного обучения
Выбор алгоритма всегда диктуется структурой имеющихся у вас данных и типом решаемой задачи. Машинное обучение делится на три большие группы:
1. Обучение с учителем (Supervised Learning)
Тип обучения, основанный на использовании размеченных данных. У модели есть вектор входных характеристик (признаков) и точная целевая метка (ответ).
- Регрессия: Прогнозирование числовых непрерывных значений. Пример: На основе базы данных из 10 000 проданных подержанных автомобилей (год, пробег, объем двигателя, марка) модель учится прогнозировать точную рыночную стоимость новой машины.
- Классификация: Распределение объектов по дискретным классам. Пример: Спам-фильтр, анализирующий текст входящего письма, его размер, отправителя и выносящий бинарный вердикт: «спам» или «не спам».
2. Обучение без учителя (Unsupervised Learning)
Работа с неразмеченными данными, когда у объектов отсутствуют целевые метки-ответы. Задача алгоритма — самостоятельно структурировать информацию.
- Кластеризация: Сегментация объектов по группам схожести. Пример: Модель группирует 10 000 автомобилей по внутренним признакам на 3 кластера, а аналитик затем содержательно описывает эти кластеры (бюджетные городские машины, кроссоверы, спорткары).
- Генеративные подходы: Обучение на огромных массивах неструктурированного текста (например, в LLM), в процессе которого модель самостоятельно улавливает семантическую структуру языка.
- Полуконтролируемое обучение (Semi-supervised Learning): Комбинированный подход, когда модель обучается на терабайтах неразмеченных данных (unsupervised), но калибруется на небольшой размеченной выборке (supervised).
3. Обучение с подкреплением (Reinforcement Learning)
Парадигма, в которой агент (модель) обучается принятию последовательных решений, совершая действия в среде и получая от нее обратную связь в виде вознаграждений или штрафов (ревордов).
- Как это работает: Мы не даем модели готовые примеры «правильных» решений. Вместо этого мы описываем математическое правило вознаграждения (например, «если доехал без аварий и быстро — плюс 100 очков, если совершил опасный маневр — минус 50»).
- Применение: Обучение автопилотов (как правило, в симулируемых виртуальных средах, чтобы избежать реальных аварий в процессе обучения), робототехника и алгоритмические торговые системы (где вознаграждение — это полученная прибыль).
Методология организации данных: Валидация и переобучение
Любая модель машинного обучения оперирует табличными данными, приведенными к числовому формату (даже тексты, аудиозаписи и изображения принудительно векторизуются перед подачей в алгоритм).
Чтобы модель работала эффективно в реальных условиях (показывала хорошую обобщающую способность), датасет необходимо правильно распределить.
Разделение выборки
- Обучающая выборка (Train): Основной массив данных (60-70%), на котором модель настраивает свои внутренние параметры (веса).
- Валидационная выборка (Validation): Набор данных (около 20%), используемый для оценки качества промежуточных результатов и подбора гиперпараметров.
- Тестовая выборка (Test): Финальный контрольный набор (20-30%), на котором проверяется работа уже полностью готовой модели.
Борьба с переобучением (Overfitting)
- Недообучение (Underfitting): Возникает при использовании избыточно простых моделей. Алгоритм не может выявить закономерности даже на обучающей выборке.
- Переобучение (Overfitting): Происходит, когда модель слишком сложна. Она идеально подстраивается («зазубривает») под обучающие данные, включая случайные шумы, но полностью теряет точность при работе с новыми тестовыми данными.
- Метод ранней остановки (Early Stopping): Решение, основанное на анализе графиков ошибок на обучающей и валидационной выборках. Обучение останавливается в точке локального минимума валидационной ошибки, не позволяя модели уйти в переобучение.
Подготовка к практике
На следующем занятии мы переходим к реализации нашего первого практического алгоритма — линейной регрессии.
Для комфортной работы вам потребуется:
- Скачать файлы практических работ с предоставленной папки на Google Диске или скопировать их к себе на диск.
- Использовать для запуска облачный интерактивный блокнот Google Colab.
Преимущество использования Google Colab: Платформа предоставляет бесплатный доступ к графическим процессорам (GPU), что позволит проводить матричные вычисления и обучение моделей на порядок быстрее, чем на ресурсах локального центрального процессора (CPU).
План занятия
Иерархия ИИ, классификация методов машинного обучения и организация данных
- Разграничение ключевых понятий (ИИ vs ML vs DL):
- Искусственный интеллект (ИИ / AI): Широкое понятие, объединяющее любые системы автоматизации интеллектуального труда (включая простейшие правила, регулярные выражения и экспертные системы).
- Машинное обучение (МО / ML): Подмножество ИИ, основанное на поиске эмпирических закономерностей в данных.
- Индуктивное обучение (по прецедентам): Движение от частных данных к общим правилам (основной подход ML).
- Дедуктивное обучение: Перенос готовых экспертных знаний в базу правил компьютера (экспертные системы).
- Глубокое обучение (Deep Learning / DL): Подмножество машинного обучения, использующее архитектуру многослойных нейронных сетей.
- Проблема нерационального использования нейросетей: Разбор опыта хакатонов — почему не стоит пытаться применять глубокие нейросети к задачам, которые быстрее и эффективнее решаются классическими, неглубокими методами.
- Три фундаментальных направления машинного обучения:
- Обучение с учителем (Supervised Learning): Обучение на размеченных данных, где для каждого объекта известна целевая метка.
- Задача регрессии: Прогнозирование числовых непрерывных значений (например, рыночной цены автомобиля на основе года выпуска, пробега и объема двигателя).
- Задача классификации: Определение категориальной принадлежности объекта (например, спам-фильтрация входящих писем или медицинская маршрутизация пациентов).
- Обучение без учителя (Unsupervised Learning): Работа с неразмеченными массивами данных с целью поиска скрытых зависимостей.
- Задача кластеризации: Самостоятельное объединение объектов в группы схожести (например, сегментация базы автомобилей без цен на бюджетные, спортивные и представительские категории).
- Генеративные алгоритмы и LLM: Обучение на больших неструктурированных текстах для выявления семантических связей.
- Полуконтролируемое / частичное обучение (Semi-supervised Learning): Комбинированный подход с использованием небольшого объема размеченных данных для калибровки большой неразмеченной выборки.
- Обучение с подкреплением (Reinforcement Learning): Обучение агента (модели) оптимальному поведению в процессе взаимодействия со средой.
- Концепция вознаграждения (реворда): Обучение через обратную связь от среды вместо явного программирования правил.
- Области применения: Автопилоты (моделирование и тренировка агентов в виртуальных симуляторах), робототехника, игры, финансовые инвестиционные модели.
- Основы организации данных в машинном обучении (по слайдам):
- Данные как векторы: Табличное представление, где строки представляют отдельные объекты (примеры), а столбцы — признаки (features) объектов. Обязательность приведения любых данных (текст, аудио, изображения) к числовому формату.
- Структура датасета: Разделение данных на три выборки:
- Обучающая (Train): Для настройки весов и обучения модели.
- Валидационная (Validation): Для подбора гиперпараметров и оценки текущего качества.
- Тестовая (Test): Финальный аудит обобщающей способности модели.
- Пропорции деления: 70/30 (для исследований) и 60/20/20 (для внедрения в продакшен).
- Качество обобщения модели:
- Недообучение (Underfitting): Ситуация, когда избыточно простая модель не способна уловить базовую структуру данных.
- Переобучение (Overfitting / переподгонка): Модель избыточно сложна, отлично запоминает обучающую выборку («зазубривает» шум), но показывает высокую ошибку на новых данных.
- Ранняя остановка (Early Stopping): Метод выбора модели по графику сложности. Обучение прерывается в момент, когда ошибка на валидационном наборе начинает расти, несмотря на продолжение снижения ошибки на обучении.
- Подготовка к практической работе на Python:
- Проверка доступа к учебным ноутбукам на Google Диск.
- Особенности запуска кода в облачной среде Google Colab (использование ресурсов GPU для ускорения вычислений).