# Машинное обучение

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

Источник: https://llmdocs.ru/wiki/machine-learning/ · обновлено 2026-11-09 · лицензия CC BY-SA 4.0

- **Термин**: Артур Сэмюэл (1959)
- **Основные виды**: обучение с учителем, без учителя, с подкреплением
- **Задачи**: классификация, регрессия, кластеризация, ранжирование, генерация
- **Популярные методы**: линейные модели, деревья и бустинг, нейронные сети
- **Библиотеки**: scikit-learn, XGBoost, CatBoost, PyTorch, JAX
- **Смежные области**: статистика, оптимизация, анализ данных
**Машинное обучение** (англ. *machine learning*, ML) — раздел искусственного интеллекта, изучающий алгоритмы, которые улучшают решение задачи на основе опыта, то есть данных, а не следуют вручную написанным правилам. Вместо того чтобы программировать, как отличить спам от обычного письма, разработчик показывает модели тысячи размеченных писем, и она сама находит закономерности.

Машинное обучение лежит в основе поиска и рекомендаций, распознавания речи и изображений, кредитного скоринга, машинного перевода и [больших языковых моделей](https://llmdocs.ru/wiki/llm.md).

## Определение и история

Термин ввёл Артур Сэмюэл из IBM: в 1959 году он описал программу для игры в шашки, которая улучшала игру, анализируя свои партии.[1] Классическое определение дал Том Митчелл (1997): программа обучается на опыте E относительно задачи T и меры качества P, если её качество на задаче T, измеренное P, растёт с опытом E.[2]

Развитие шло волнами. Перцептрон Розенблатта (1958) вызвал первую волну интереса к [нейросетям](https://llmdocs.ru/wiki/neural-network.md); в 1990–2000-х доминировали статистические методы — метод опорных векторов, случайный лес, [градиентный бустинг](https://llmdocs.ru/wiki/gradient-boosting.md). В 2012 году свёрточная сеть AlexNet с большим отрывом выиграла конкурс ImageNet, начав эпоху **глубокого обучения**.[5] С 2017 года архитектура [трансформер](https://llmdocs.ru/wiki/transformer.md) привела к современным языковым моделям.

## Виды обучения

| Вид | Данные | Задачи | Примеры |
|---|---|---|---|
| С учителем (*supervised*) | примеры с правильными ответами | классификация, регрессия | спам-фильтр, прогноз цены |
| Без учителя (*unsupervised*) | данные без ответов | кластеризация, снижение размерности, поиск аномалий | сегментация клиентов |
| Самообучение (*self-supervised*) | ответы извлекаются из самих данных | предсказание следующего слова, восстановление фрагментов | предобучение LLM, [эмбеддинги](https://llmdocs.ru/wiki/embedding.md) |
| С подкреплением (*reinforcement*) | награды за действия в среде | управление, игры, выравнивание моделей | AlphaGo, RLHF |

Подробнее о первых двух — в статье [Обучение с учителем и без](https://llmdocs.ru/wiki/supervised-unsupervised.md).

## Как устроен процесс

1. **Постановка задачи** — что предсказываем и как измерим успех в терминах бизнеса.
2. **Сбор и разметка данных** — чаще всего самая дорогая часть.
3. **Подготовка признаков** — очистка, кодирование категорий, нормализация, новые признаки.
4. **Обучение** — подбор параметров модели, минимизирующих функцию потерь, обычно [градиентным спуском](https://llmdocs.ru/wiki/gradient-descent.md) или его вариантами.
5. **Оценка** — на отложенных данных, которые модель не видела, с помощью подходящих [метрик](https://llmdocs.ru/wiki/classification-metrics.md) и [кросс-валидации](https://llmdocs.ru/wiki/cross-validation.md).
6. **Внедрение и мониторинг** — модель обслуживает запросы, а за качеством и сдвигом данных следят; этим занимается [MLOps](https://llmdocs.ru/wiki/mlops.md).

## Пример

Обучение классификатора в [scikit-learn](https://llmdocs.ru/wiki/scikit-learn.md):[3]

```python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.metrics import classification_report

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)

model = HistGradientBoostingClassifier(max_iter=200, learning_rate=0.1)
model.fit(X_train, y_train)                       # обучение на 80% данных
print(classification_report(y_test, model.predict(X_test)))  # оценка на отложенных 20%
```

## Ключевые понятия

- **Признаки и целевая переменная** — входные данные модели и то, что она предсказывает.
- **Функция потерь** — число, показывающее, насколько ошибается модель; обучение — её минимизация.
- **Обобщение** — способность работать на новых данных. Модель, запомнившая обучающую выборку, **переобучена**; слишком простая — **недообучена** (см. [Переобучение и регуляризация](https://llmdocs.ru/wiki/overfitting-regularization.md)).
- **Гиперпараметры** — настройки, которые не обучаются, а задаются: глубина деревьев, скорость обучения, число слоёв.
- **Утечка данных** — когда в признаки случайно попадает информация о правильном ответе, недоступная в реальной работе; даёт прекрасные метрики на тесте и провал в продакшене.

## Классическое ML и глубокое обучение

Для табличных данных (строки и столбцы, как в базе) чаще всего лучше работают градиентный бустинг и линейные модели: они быстрее обучаются, проще интерпретируются и требуют меньше данных. Глубокие нейросети незаменимы для неструктурированных данных — текста, изображений, звука — и для больших объёмов, где они обучаются на [GPU](https://llmdocs.ru/wiki/gpu-cuda.md) с помощью фреймворков вроде [PyTorch](https://llmdocs.ru/wiki/pytorch.md).[6] Практичный путь в изучение — бесплатные курсы, например Machine Learning Crash Course от Google.[4]

## См. также

- [Обучение с учителем и без](https://llmdocs.ru/wiki/supervised-unsupervised.md)
- [Нейронная сеть](https://llmdocs.ru/wiki/neural-network.md)
- [Переобучение и регуляризация](https://llmdocs.ru/wiki/overfitting-regularization.md)
- [scikit-learn](https://llmdocs.ru/wiki/scikit-learn.md)
- [MLOps](https://llmdocs.ru/wiki/mlops.md)

## Источники

1. [A. L. Samuel — Some Studies in Machine Learning Using the Game of Checkers (IBM Journal, 1959)](https://ieeexplore.ieee.org/document/5392560)
2. [Tom M. Mitchell — Machine Learning (McGraw Hill, 1997)](https://www.cs.cmu.edu/~tom/mlbook.html)
3. [scikit-learn — User Guide](https://scikit-learn.org/stable/user_guide.html)
4. [Google — Machine Learning Crash Course](https://developers.google.com/machine-learning/crash-course)
5. [Krizhevsky, Sutskever, Hinton — ImageNet Classification with Deep Convolutional Neural Networks (NeurIPS 2012)](https://papers.nips.cc/paper_files/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html)
6. [I. Goodfellow, Y. Bengio, A. Courville — Deep Learning (MIT Press, 2016)](https://www.deeplearningbook.org/)
