compassML Questions

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

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

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


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

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

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


chevron-rightЧто такое precision и в чем его отличие от recall?hashtag

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

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


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

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

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


chevron-rightЧто такое confusion matrix и как ее интерпретировать?hashtag

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


chevron-rightЧто такое ROC AUC и как он оценивается?hashtag

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.


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

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

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

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

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

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

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

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


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

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

Градиентный спуск (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. Эти методы адаптируют шаг обучения в зависимости от истории градиентов, что делает обучение более стабильным и эффективным.


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

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

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

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


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

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

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

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)


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


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


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


chevron-rightКак работает алгоритм backpropagation?hashtag


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

Last updated