ДНК задачи

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM GPT-4o и проверена участником Arina Pakalova 21:37, 24 июня 2026 (MSD)


ДНК задачи (аббревиатура от Дано — Найти — Критерий) — это мнемоническое правило и базовый математический шаблон, используемый для строгой формализации задач в машинном обучении. Шаблон требует точного описания трех компонент: исходных данных, искомой математической зависимости и функционала, по которому будет оцениваться качество решения.

Использование шаблона ДНК позволяет систематизировать постановку задачи до начала написания кода или выбора конкретных алгоритмов, исключая логические пробелы и некорректные сравнения моделей[1].

Содержание

Структура шаблона

Дано (Входные данные и ограничения)

Секция описывает информационное пространство, в котором существует задача.

  • Пространство объектов: Множество X, представляющее все возможные описания объектов. В этой же секции фиксируется признаковое пространство: типы признаков (числовые, категориальные, текстовые, графовые) и их масштабы[1].
  • Структура выборки: Характер распределения данных. Фиксируется, выполняется ли предположение о независимости и одинаковой распределенности (н.о.р., англ. i.i.d.), или данные имеют сложную структуру (например, временные ряды с автокорреляцией, пространственные данные).
  • Системные ограничения: Аппаратные лимиты (объем оперативной памяти, время инференса), которые задают верхнюю границу сложности допустимых моделей.

Найти (Искомая зависимость)

Секция определяет цель построения модели.

  • Пространство ответов: Множество Y, в котором лежат целевые переменные (для обучения с учителем) или структура выходных данных (для обучения без учителя).
  • Тип задачи: На основе X и Y определяется математическая формулировка: поиск решающего правила для классификации (отображение X \to \{1, \dots, K\}), регрессия (X \to \mathbb{R}), ранжирование или поиск скрытых структур в X (кластеризация).
  • Класс моделей: Семейство алгоритмов \mathcal{A}, в котором ведется поиск (например, класс линейных моделей или класс деревьев решений).

Критерий (Функционал качества)

Секция задает математический аппарат для выбора наилучшего алгоритма a \in \mathcal{A}.

  • Функция потерь (Loss function): Функция L(a(x), y), оценивающая ошибку одного предсказания. Критерий требует указания её свойств (например, дифференцируемость для применения градиентных методов).
  • Эмпирический риск (Критерий оптимизации): Функционал Q(a, X^l) = \frac{1}{l}\sum_{i=1}^{l} L(a(x_i), y_i), который непосредственно минимизируется в процессе обучения на обучающей выборке X^l[1].
  • Внешний критерий (Метрика): Итоговая метрика оценки (например, ROC-AUC, F_1-мера), по которой результаты будут проверяться на тестовой выборке и представляться заказчику. В корректной формулировке ДНК функции потерь и внешняя метрика могут не совпадать, но должны быть коррелированы.

Математическая формализация

В общем виде шаблон ДНК сводит задачу машинного обучения к стандартной задаче оптимизации: a^* = \arg\min_{a \in \mathcal{A}} Q(a, X^l) \to \min где:

  • X^l = \{(x_1, y_1), \dots, (x_l, y_l)\}Дано (выборка);
  • \mathcal{A}Найти (семейство допустимых решающих правил);
  • QКритерий (функционал эмпирического риска)[1].

Влияние шаблона на процесс решения

Разделение задачи на компоненты ДНК препятствует типичным ошибкам проектирования. Если специалист не зафиксировал в блоке «Дано» нарушение условия н.о.р. (например, наличие концептуального дрейфа), он может некорректно применить стандартную кросс-валидацию по K блокам (K-fold cross-validation), что приведет к утечке данных (data leakage) и завышенной оценке качества модели[1].

Аналогично, разделение блоков «Найти» и «Критерий» объясняет использование суррогатных функций потерь. В задаче классификации найти точное решение часто вычислительно невозможно (NP-трудная задача), поэтому в блоке «Критерий» вместо пороговой функции потерь используют её гладкую верхнюю оценку (логистическую функцию или hinge loss), что позволяет применить градиентный спуск для поиска приближенного решения в блоке «Найти»[1].

Примеры заполнения шаблона

Задача выявления мошеннических транзакций

  • Дано: X — векторы признаков транзакций (сумма, время, IP-адрес). Выборка не н.о.р. во времени, наблюдается сильный дисбаланс классов (менее 1% фрода). Ограничение: модель должна выдавать ответ менее чем за 50 мс.
  • Найти: Бинарный классификатор a: X \to [0, 1], оценивающий вероятность мошенничества (с последующей бинаризацией по порогу).
  • Критерий: В качестве функции потерь используется логистическая функция потерь (logistic loss) с весами для компенсации дисбаланса. Внешний критерий — Recall (полнота) при фиксированном значении Precision не ниже 90% (обусловлено бизнес-требованием минимизации ложноположительных срабатываний).

Задача прогнозирования остаточного срока службы оборудования

  • Дано: X — многомерные временные ряды показателей датчиков (вибрация, температура). Длина последовательностей варьируется. Данные содержат пропуски из-за сбоя датчиков.
  • Найти: Функцию регрессии a: X \to \mathbb{R}_{+}, предсказывающую количество часов до поломки.
  • Критерий: Функция потерь — среднеквадратичная ошибка (MSE). Внешний критерий — MAE (средняя абсолютная ошибка), так как она более робастна к выбросам и понятна инженерам.

См. также

Литература

  1. Воронцов К. В. Математические методы обучения по прецедентам. — М.: МЦНМО, 2018. [1]
  2. Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer. [1]
  3. Шолле Ф. Глубокое обучение. — М.: МЦНМО, 2018. [1]