🤔🤔
Какие лоссы ты знаешь?Какие лоссы ты знаешь?
В машинном обучении (и особенно в глубоких нейронных сетях) лосс-функция (или функция потерь) используется для оценки того, насколько хорошо модель предсказывает результат. Лосс — это численное выражение ошибки, которое модель пытается минимизировать во время обучения.
🚩
Лоссы для задач регрессииЭти функции используются, когда нужно предсказать непрерывное значение (например, цену дома).
🟠
MSE (Mean Squared Error, Среднеквадратичная ошибка)MSE = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2
Почему: Она штрафует большие ошибки сильнее (из-за квадрата), поэтому модель пытается минимизировать крупные отклонения.
Недостаток: Чувствительна к выбросам, так как большие ошибки сильно влияют на результат.
🟠
MAE (Mean Absolute Error, Средняя абсолютная ошибка)MAE = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i|
Почему: Она менее чувствительна к выбросам.
Недостаток: Может быть сложнее оптимизировать, поскольку производная модуля недифференцируема в 0.
🟠
Huber Loss Комбинация MSE и MAE. Менее чувствительна к выбросам, чем MSE.
L_{\delta}(a) =
\begin{cases}
\frac{1}{2}(y_i - \hat{y}_i)^2 & \text{if } |y_i - \hat{y}_i| \leq \delta, \\
\delta \cdot |y_i - \hat{y}_i| - \frac{1}{2} \delta^2 & \text{otherwise.}
\end{cases}
🚩
Лоссы для задач классификацииЭти функции подходят для задач, где нужно определить категорию (например, "кот" или "собака").
🟠
Binary Cross-Entropy (Логарифмическая потеря) Используется для бинарной классификации.
BCE = - \frac{1}{n} \sum_{i=1}^n \big(y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i)\big)
Почему: Лосс сильнее штрафует уверенные, но неправильные предсказания. Пример: Вероятность принадлежности классу "1" предсказана как 0.99, но правильный класс — "0".
🟠
Categorical Cross-Entropy (Кросс-энтропия)Для многоклассовой классификации:
CCE = - \sum_{i=1}^n \sum_{j=1}^k y_{ij} \log(\hat{y}_{ij})
Почему: Учитывает все классы, штрафуя уверенные ошибки сильнее.
🟠
Hinge LossПрименяется в задачах с методами опорных векторов (SVM).
L = \max(0, 1 - y_i \cdot \hat{y}_i)
Почему: Стимулирует модель делать более "уверенные" предсказания.
🚩
Лоссы для задач сегментации или генерации🟠
Dice Loss:Используется для задач сегментации изображений.
Dice = 1 - \frac{2 |A \cap B|}{|A| + |B|}
Почему: Учитывает пересечение предсказанной области и истинной разметки.
🟠
Perceptual LossИспользуется в задачах генерации изображений, чтобы сравнивать "перцептивное" различие между изображениями, а не просто пиксели.
🚩
Специфические лоссы🟠
KL Divergence (Дивергенция Кульбака-Лейблера)Измеряет, насколько распределение предсказаний модели отличается от целевого распределения.
D_{KL}(P || Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)}
🟠
Triplet LossДля задач, связанных с обучением эмбеддингов (например, в системах рекомендаций или в задачах поиска изображений).
🚩
Пример реализации (MSE)import torch
import torch.nn as nn
# Предсказания модели
y_pred = torch.tensor([2.5, 0.0, 2.0, 8.0])
# Истинные значения
y_true = torch.tensor([3.0, -0.5, 2.0, 7.0])
# Среднеквадратичная ошибка
loss_fn = nn.MSELoss()
loss = loss_fn(y_pred, y_true)
print(f"MSE Loss: {loss.item()}")
Ставь 👍👍 и забирай 📚 📚 Базу знанийБазу знаний