ML Questions
Last updated
Last updated
Accuracy (точность) — это доля правильных предсказаний модели среди всех предсказаний. Рассчитывается как ( 𝑇 𝑃 + 𝑇 𝑁 ) / ( 𝑇 𝑃 + 𝑇 𝑁 + 𝐹 𝑃 + 𝐹 𝑁 ), где TP — True Positives, TN — True Negatives, FP — False Positives, FN — False Negatives.
Accuracy хорошо работает для сбалансированных классов, но в случае несбалансированных данных (когда один класс встречается значительно чаще другого) может давать неверное представление о качестве модели.
Recall (чувствительность) показывает, какую долю положительных примеров модель предсказала верно. Рассчитывается как 𝑇 𝑃 / ( 𝑇 𝑃 + 𝐹 𝑁 ) .
Важен в задачах, где важно минимизировать количество ложных отрицательных предсказаний, например, в медицинских исследованиях (диагностика болезней) или системах безопасности (распознавание опасностей).
Precision (точность) — это доля верно предсказанных положительных классов среди всех предсказанных положительных. Рассчитывается как 𝑇 𝑃 / ( 𝑇 𝑃 + 𝐹 𝑃 ) TP/(TP+FP).
Precision важен в случаях, когда ложные срабатывания критичны, например, в задачах с финансовыми рисками или фильтрацией спама. В отличие от recall, precision фокусируется на минимизации ложных положительных предсказаний.
F1 score — это гармоническое среднее между precision и recall, которое учитывает их баланс. Рассчитывается как 2 × ( 𝑃 𝑟 𝑒 𝑐 𝑖 𝑠 𝑖 𝑜 𝑛 × 𝑅 𝑒 𝑐 𝑎 𝑙 𝑙 ) / ( 𝑃 𝑟 𝑒 𝑐 𝑖 𝑠 𝑖 𝑜 𝑛 + 𝑅 𝑒 𝑐 𝑎 𝑙 𝑙 ).
Используется, когда важно одновременно учитывать и precision, и recall, например, в задачах с несбалансированными данными.
Confusion matrix — это таблица, которая показывает количество верных и неверных предсказаний модели для каждого класса. С ее помощью можно увидеть, как часто модель путает классы. Содержит TP, TN, FP, FN, что помогает понять, как модель справляется с каждой категорией и где могут быть ошибки.
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 градиенты приводят к нестабильности.
Чтобы минимизировать проблему затухающего градиента, можно использовать следующие подходы:
Использование функций активации ReLU и ее вариантов (Leaky ReLU, ELU): В отличие от tanh и sigmoid, ReLU не имеет ограниченный положительный диапазон выходных значений.
Batch Normalization: Нормализация входов слоев позволяет стабилизировать обучение и уменьшить затухание градиентов, поддерживая их масштабы в пределах разумных значений.
Residual Connections: Использование остаточных связей (skip-connections) позволяет градиентам "перескакивать" через слои, предотвращая их затухание и обеспечивая эффективное обучение даже в очень глубоких сетях.
Gradient Clipping: Эта техника применяется, чтобы предотвратить взрыв градиентов путем ограничения их максимального значения. Это может помочь также в ситуациях с затухающими градиентами, обеспечивая более стабильное обучение.
Градиентный спуск — это алгоритм оптимизации, который на каждом шаге обновляет параметры модели, сдвигаясь в направлении антиградиента функции потерь для её минимизации. Применяется для обучения нейронных сетей, линейных моделей и других алгоритмов. Существует несколько вариаций: стохастический, мини-батч и полный градиентный спуск.
Градиентный спуск (Gradient Descent) — это метод оптимизации, используемый для минимизации функции потерь. Он работает по следующему принципу:
Инициализируются параметры модели (например, веса нейронов) случайными значениями.
Для каждого шага вычисляется градиент функции потерь по параметрам, который указывает, как и в каком направлении следует изменять параметры, чтобы уменьшить значение функции потерь.
Полный (Batch) градиентный спуск:
В этом варианте градиент рассчитывается по всему набору данных за один раз. Этот метод может быть очень медленным на больших данных, так как для обновления параметров нужно пройти по всему набору данных, что требует много времени и памяти.
Стохастический градиентный спуск (SGD):
В этом случае градиент рассчитывается и параметры обновляются для каждого отдельного примера из обучающей выборки. Это делает процесс более быстрым и менее требовательным к памяти, но модель может обновляться на основе шумных данных, что приводит к колебаниям на пути к оптимуму.
Мини-батч градиентный спуск:
Этот метод представляет собой компромисс между полным и стохастическим градиентным спуском. Здесь данные разбиваются на небольшие батчи, и градиент рассчитывается по каждому батчу. Это улучшает скорость обучения, снижает колебания и лучше использует параллельные вычисления.
Улучшенные версии градиентного спуска:
Momentum. Добавляет импульс, чтобы ускорить движение по поверхности ошибки и избежать колебаний.
RMSProp и Adam. Эти методы адаптируют шаг обучения в зависимости от истории градиентов, что делает обучение более стабильным и эффективным.
Batch normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчам, что ускоряет обучение и делает модель более устойчивой к начальной инициализации весов.
Dropout — это техника регуляризации, при которой случайно "выключаются" некоторые нейроны во время обучения, что снижает вероятность переобучения.
BatchNorm используется для ускорения обучения, а Dropout — для предотвращения переобучения.
Энтропия — это мера неопределённости или "хаоса" в распределении данных. В контексте машинного обучения энтропия используется для оценки чистоты разделений в таких алгоритмах, как деревья решений. Чем выше энтропия, тем больше неопределённости в данных.
Формула для вычисления энтропии:
Где:
H(X)— энтропия случайной величины X,
n — количество возможных состояний (классов) переменной X,
GINI - апроксимация энтропии формула будет
Обновление параметров происходит по следующей формуле: θ←θ−η∇θJ(θ)
Здесь θ — это параметры модели, η — шаг обучения (learning rate), ∇θJ(θ) — градиент функции потерь J по параметрам θ.
H(X)=−∑i=1np(xi)log2p(xi)
p(xi) — вероятность того, что случайная величина X примет значение xi ,
log2 — логарифм по основанию 2.
H(X)=1−∑i=1np(xi)