ML Questions

Что такое accuracy и как его использовать?

Accuracy (точность) — это доля правильных предсказаний модели среди всех предсказаний. Рассчитывается как ( 𝑇 𝑃 + 𝑇 𝑁 ) / ( 𝑇 𝑃 + 𝑇 𝑁 + 𝐹 𝑃 + 𝐹 𝑁 ), где TP — True Positives, TN — True Negatives, FP — False Positives, FN — False Negatives.

Accuracy хорошо работает для сбалансированных классов, но в случае несбалансированных данных (когда один класс встречается значительно чаще другого) может давать неверное представление о качестве модели.


Как рассчитывается recall и в каких ситуациях он важен?

Recall (чувствительность) показывает, какую долю положительных примеров модель предсказала верно. Рассчитывается как 𝑇 𝑃 / ( 𝑇 𝑃 + 𝐹 𝑁 ) .

Важен в задачах, где важно минимизировать количество ложных отрицательных предсказаний, например, в медицинских исследованиях (диагностика болезней) или системах безопасности (распознавание опасностей).


Что такое precision и в чем его отличие от recall?

Precision (точность) — это доля верно предсказанных положительных классов среди всех предсказанных положительных. Рассчитывается как 𝑇 𝑃 / ( 𝑇 𝑃 + 𝐹 𝑃 ) TP/(TP+FP).

Precision важен в случаях, когда ложные срабатывания критичны, например, в задачах с финансовыми рисками или фильтрацией спама. В отличие от recall, precision фокусируется на минимизации ложных положительных предсказаний.


Что такое F1 score и когда его следует применять?

F1 score — это гармоническое среднее между precision и recall, которое учитывает их баланс. Рассчитывается как 2 × ( 𝑃 𝑟 𝑒 𝑐 𝑖 𝑠 𝑖 𝑜 𝑛 × 𝑅 𝑒 𝑐 𝑎 𝑙 𝑙 ) / ( 𝑃 𝑟 𝑒 𝑐 𝑖 𝑠 𝑖 𝑜 𝑛 + 𝑅 𝑒 𝑐 𝑎 𝑙 𝑙 ).

Используется, когда важно одновременно учитывать и precision, и recall, например, в задачах с несбалансированными данными.


Что такое confusion matrix и как ее интерпретировать?

Confusion matrix — это таблица, которая показывает количество верных и неверных предсказаний модели для каждого класса. С ее помощью можно увидеть, как часто модель путает классы. Содержит TP, TN, FP, FN, что помогает понять, как модель справляется с каждой категорией и где могут быть ошибки.


Что такое ROC AUC и как он оценивается?

ROC AUC (Area Under Curve) — это площадь под ROC кривой, которая строится на основе True Positive Rate (TPR) и False Positive Rate (FPR) для разных порогов классификации. AUC равен 1 для идеальной модели и 0.5 для случайного угадывания. Он используется для оценки бинарных классификаторов и позволяет сравнивать модели независимо от выбранного порога.

Таким образом, AUC ROC равен доле пар объектов вида (объект класса 1, объект класса 0), которые алгоритм верно упорядочил, т.е. первый объект идёт в упорядоченном списке раньше.

AUC ROC имеет вероятностный смысл: это вероятность того, что случайно взятый объект класса 1 имеет оценку принадлежности к классу 1 выше, чем случайно взятый объект класса 0.


Что такое градиент? Каковы проблемы vanishing и exploding градиента? Как можно их решить?

Градиент — это вектор частных производных функции потерь по параметрам модели. Проблемы vanishing и exploding градиента возникают в глубоких нейронных сетях, когда значения градиентов становятся слишком малыми или слишком большими.

Vanishing градиенты замедляют обучение, а exploding градиенты приводят к нестабильности.

Чтобы минимизировать проблему затухающего градиента, можно использовать следующие подходы:

  • Использование функций активации ReLU и ее вариантов (Leaky ReLU, ELU): В отличие от tanh и sigmoid, ReLU не имеет ограниченный положительный диапазон выходных значений.

  • Batch Normalization: Нормализация входов слоев позволяет стабилизировать обучение и уменьшить затухание градиентов, поддерживая их масштабы в пределах разумных значений.

  • Residual Connections: Использование остаточных связей (skip-connections) позволяет градиентам "перескакивать" через слои, предотвращая их затухание и обеспечивая эффективное обучение даже в очень глубоких сетях.

  • Gradient Clipping: Эта техника применяется, чтобы предотвратить взрыв градиентов путем ограничения их максимального значения. Это может помочь также в ситуациях с затухающими градиентами, обеспечивая более стабильное обучение.


Как работает градиентный спуск и в каких задачах он применяется?

Градиентный спуск — это алгоритм оптимизации, который на каждом шаге обновляет параметры модели, сдвигаясь в направлении антиградиента функции потерь для её минимизации. Применяется для обучения нейронных сетей, линейных моделей и других алгоритмов. Существует несколько вариаций: стохастический, мини-батч и полный градиентный спуск.

Градиентный спуск (Gradient Descent) — это метод оптимизации, используемый для минимизации функции потерь. Он работает по следующему принципу:

  1. Инициализируются параметры модели (например, веса нейронов) случайными значениями.

  2. Для каждого шага вычисляется градиент функции потерь по параметрам, который указывает, как и в каком направлении следует изменять параметры, чтобы уменьшить значение функции потерь.

  3. Обновление параметров происходит по следующей формуле: θθηθJ(θ)\theta \leftarrow \theta - \eta \nabla_\theta J(\theta)

    Здесь θ\theta — это параметры модели, η\eta — шаг обучения (learning rate), θJ(θ)\nabla_\theta J(\theta) — градиент функции потерь J по параметрам θ\theta.

Полный (Batch) градиентный спуск:

В этом варианте градиент рассчитывается по всему набору данных за один раз. Этот метод может быть очень медленным на больших данных, так как для обновления параметров нужно пройти по всему набору данных, что требует много времени и памяти.

Стохастический градиентный спуск (SGD):

В этом случае градиент рассчитывается и параметры обновляются для каждого отдельного примера из обучающей выборки. Это делает процесс более быстрым и менее требовательным к памяти, но модель может обновляться на основе шумных данных, что приводит к колебаниям на пути к оптимуму.

Мини-батч градиентный спуск:

Этот метод представляет собой компромисс между полным и стохастическим градиентным спуском. Здесь данные разбиваются на небольшие батчи, и градиент рассчитывается по каждому батчу. Это улучшает скорость обучения, снижает колебания и лучше использует параллельные вычисления.

Улучшенные версии градиентного спуска:

  • Momentum. Добавляет импульс, чтобы ускорить движение по поверхности ошибки и избежать колебаний.

  • RMSProp и Adam. Эти методы адаптируют шаг обучения в зависимости от истории градиентов, что делает обучение более стабильным и эффективным.


В чем суть batch normalization и dropout? В каких случаях их используют?

Batch normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчам, что ускоряет обучение и делает модель более устойчивой к начальной инициализации весов.

Dropout — это техника регуляризации, при которой случайно "выключаются" некоторые нейроны во время обучения, что снижает вероятность переобучения.

BatchNorm используется для ускорения обучения, а Dropout — для предотвращения переобучения.


Какую роль играет энтропия в задачах машинного обучения?

Энтропия — это мера неопределённости или "хаоса" в распределении данных. В контексте машинного обучения энтропия используется для оценки чистоты разделений в таких алгоритмах, как деревья решений. Чем выше энтропия, тем больше неопределённости в данных.

Формула для вычисления энтропии:

H(X)=i=1np(xi)log2p(xi)H(X) = - \sum_{i=1}^{n} p(x_i) \log_2 p(x_i)

Где:

  • H(X)— энтропия случайной величины X,

  • p(xi)p(x_i) — вероятность того, что случайная величина X примет значение xix_i ​,

  • n — количество возможных состояний (классов) переменной X,

  • log2\log_2 — логарифм по основанию 2.

GINI - апроксимация энтропии формула будет

H(X)=1i=1np(xi)H(X) = 1 - \sum_{i=1}^{n} p(x_i)


Как работает градиентый бустинг и различия реализаций XGBoost, lightGBM, CatBoost


Как работает дерево решений? Какие его преимущества и недостатки?


Что такое L1 и L2 регуляризация? В чем разница между ними?


Как работает алгоритм backpropagation?


Что такое Attention и как он используется в трансформерах?

Last updated