ДНК задачи

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

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

Версия 17:30, 24 июня 2026

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


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

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

Содержание

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

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

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

  • Пространство объектов: Множество <math>X</math>, представляющее все возможные описания объектов. В этой же секции фиксируется признаковое пространство: типы признаков (числовые, категориальные, текстовые, графовые) и их масштабы[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 (средняя абсолютная ошибка), так как она более робастна к выбросам и понятна инженерам.

См. также

Литература

  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]
Личные инструменты