ДНК задачи
Материал из MachineLearning.
| | Статья написана с использованием LLM GPT-4o и проверена участником Arina Pakalova 21:30, 24 июня 2026 (MSD) |
ДНК задачи (аббревиатура от Дано — Найти — Критерий) — это мнемоническое правило и базовый математический шаблон, используемый для строгой формализации задач в машинном обучении. Шаблон требует точного описания трёх компонент: исходных данных, искомой математической зависимости и функционала, по которому будет оцениваться качество решения.
Использование шаблона ДНК позволяет систематизировать постановку задачи до начала написания кода или выбора конкретных алгоритмов, исключая логические пробелы и некорректные сравнения моделей[1].
Содержание |
Структура шаблона
Дано (Входные данные и ограничения)
Секция описывает информационное пространство, в котором существует задача.
- Пространство объектов: Множество
, представляющее все возможные описания объектов. В этой же секции фиксируется признаковое пространство: типы признаков (числовые, категориальные, текстовые, графовые) и их масштабы[1].
- Структура выборки: Характер распределения данных. Фиксируется, выполняется ли предположение о независимости и одинаковой распределённости (н.о.р., англ. i.i.d.), или данные имеют сложную структуру (например, временные ряды с автокорреляцией, пространственные данные).
- Системные ограничения: Аппаратные лимиты (объём оперативной памяти, время инференса), которые задают верхнюю границу сложности допустимых моделей.
Найти (Искомая зависимость)
Секция определяет цель построения модели.
- Пространство ответов: Множество <math>Y</math>, в котором лежат целевые переменные (для обучения с учителем) или структура выходных данных (для обучения без учителя).
- Тип задачи: На основе <math>X</math> и <math>Y</math> определяется математическая формулировка: поиск решающего правила для классификации (отображение <math>X \to \{1, \dots, K\}</math>), регрессия (<math>X \to \mathbb{R}</math>), ранжирование или поиск скрытых структур в <math>X</math> (кластеризация).
- Класс моделей: Семейство алгоритмов <math>\mathcal{A}</math>, в котором ведётся поиск (например, класс линейных моделей или класс деревьев решений).
Критерий (Функционал качества)
Секция задает математический аппарат для выбора наилучшего алгоритма <math>a \in \mathcal{A}</math>.
- Функция потерь (Loss function): Функция <math>L(a(x), y)</math>, оценивающая ошибку одного предсказания. Критерий требует указания её свойств (например, дифференцируемость для применения градиентных методов).
- Эмпирический риск (Критерий оптимизации): Функционал <math>Q(a, X^l) = \frac{1}{l}\sum_{i=1}^{l} L(a(x_i), y_i)</math>, который непосредственно минимизируется в процессе обучения на обучающей выборке <math>X^l</math>[1]. В некоторых задачах (например, метод опорных векторов) добавляется термин регуляризации.
- Внешний критерий (Метрика): Итоговая метрика оценки (например, ROC-AUC, <math>F_1</math>-мера), по которой результаты будут проверяться на тестовой выборке и представляться заказчику. В корректной формулировке ДНК функции потерь и внешняя метрика могут не совпадать, но должны быть коррелированы.
Математическая формализация
В общем виде шаблон ДНК сводит задачу машинного обучения к стандартной задаче оптимизации:
<math>a^* = \arg \min_{a \in \mathcal{A}} Q(a, X^l)</math>
где:
- <math>X^l = \{(x_1, y_1), \dots, (x_l, y_l)\}</math> — Дано (выборка);
- <math>\mathcal{A}</math> — Найти (семейство допустимых решающих правил);
- <math>Q</math> — Критерий (функционал эмпирического риска)[1].
Влияние шаблона на процесс решения
Разделение задачи на компоненты ДНК препятствует типичным ошибкам проектирования. Если специалист не зафиксировал в блоке «Дано» нарушение условия н.о.р. (например, наличие дрейфа концепции, англ. concept drift), он может некорректно применить стандартную кросс-валидацию по K блокам (K-fold cross-validation). Это приведёт к утечке данных (data leakage) и завышенной оценке качества модели[1].
Аналогично, разделение блоков «Найти» и «Критерий» объясняет использование суррогатных функций потерь. В задаче классификации найти точное решение часто вычислительно невозможно (NP-трудная задача), поэтому в блоке «Критерий» вместо пороговой функции потерь используют её гладкую верхнюю оценку (логистическую функцию или hinge loss). Это позволяет применить градиентный спуск для поиска приближённого решения в блоке «Найти»[1].
Примеры заполнения шаблона
Задача выявления мошеннических транзакций
- Дано: <math>X</math> — векторы признаков транзакций (сумма, время, IP-адрес). Выборка не н.о.р. во времени, наблюдается сильный дисбаланс классов (менее 1% мошеннических транзакций). Ограничение: модель должна выдавать ответ менее чем за 50 мс.
- Найти: Бинарный классификатор <math>a: X \to [0, 1]</math>, выдающий оценку вероятности принадлежности к классу мошенничества.
- Критерий: В качестве функции потерь используется логистическая функция потерь (logistic loss) с весами для компенсации дисбаланса. Внешний критерий — Recall (полнота) при фиксированном значении Precision не ниже 90% (обусловлено бизнес-требованием минимизации ложноположительных срабатываний).
Задача прогнозирования остаточного срока службы оборудования
- Дано: <math>X</math> — многомерные временные ряды показателей датчиков (вибрация, температура). Длина последовательностей варьируется. Данные содержат пропуски из-за сбоя датчиков.
- Найти: Функцию регрессии <math>a: X \to \mathbb{R}_{+}</math>, предсказывающую количество часов до поломки.
- Критерий: Функция потерь — среднеквадратичная ошибка (MSE). Внешний критерий — MAE (средняя абсолютная ошибка), так как она более робастна к выбросам и понятна инженерам.
См. также
- Формализация задачи обучения по прецедентам
- Эмпирический риск
- Функция потерь
- Обучающая выборка
- Переобучение

