Как определить производную функции потерь для логлос и MSE?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
Для MSE производная по предсказанию — это линейный градиент ошибки: чем дальше предсказание от цели, тем сильнее поправка. Для log loss производная выражает, как сильно нужно сдвинуть вероятность в сторону правильного класса; она особенно удобна в связке с сигмоидой. Важно уметь не только записать формулу, но и объяснить, как она используется при обучении модели.
Определение:
MSE (Mean Squared Error) для одного объекта обычно записывают как
[
L = \frac{1}{2}(y - \hat y)^2
]
Тогда производная по предсказанию (\hat y) равна:
[
\frac{\partial L}{\partial \hat y} = \hat y - y
]
Если без коэффициента (\frac{1}{2}), то будет:
[
\frac{\partial L}{\partial \hat y} = 2(\hat y - y)
]
Log loss для бинарной классификации: [ L = -\left(y \log p + (1-y)\log(1-p)\right) ] где (p) — вероятность положительного класса. Производная по (p): [ \frac{\partial L}{\partial p} = -\frac{y}{p} + \frac{1-y}{1-p} ] Если модель использует логит (z) и сигмоиду (p=\sigma(z)), то после применения цепного правила получается очень удобный результат: [ \frac{\partial L}{\partial z} = p - y ]
Пример использования:
Для одного объекта с истинной меткой (y=1):
-
MSE при (\hat y=0.8):
[ \frac{\partial L}{\partial \hat y} = 0.8 - 1 = -0.2 ] Значит, модель должна увеличить предсказание. -
Log loss при (p=0.8):
[ \frac{\partial L}{\partial z} = 0.8 - 1 = -0.2 ] Значит, модель тоже должна увеличить логит, чтобы поднять вероятность положительного класса.
import math
# MSE
y = 1.0
y_hat = 0.8
mse_grad = y_hat - y # dL/dy_hat при L = 0.5 * (y - y_hat)^2
# Log loss по вероятности
p = 0.8
logloss_grad_p = -y / p + (1 - y) / (1 - p)
# Log loss по логиту z через сигмоиду
logloss_grad_z = p - y
print("MSE grad:", mse_grad)
print("LogLoss grad wrt p:", logloss_grad_p)
print("LogLoss grad wrt z:", logloss_grad_z)
Пояснение кода:
Код показывает три вещи.
- Для MSE градиент по предсказанию — это просто разница (\hat y - y).
- Для log loss по вероятности градиент имеет дроби и может становиться большим, если модель слишком уверена и ошибается.
- Если брать производную по логиту (z), а не по вероятности (p), то формула упрощается до (p - y). Именно это обычно и используется в обучении логистической регрессии и нейросетей с sigmoid + binary cross-entropy.
Ключевые моменты:
- Для MSE производная по предсказанию: (\hat y - y) при записи с коэффициентом (\frac{1}{2}).
- Для log loss по вероятности: (-\frac{y}{p} + \frac{1-y}{1-p}).
- Для log loss в связке с sigmoid по логиту: (\frac{\partial L}{\partial z} = p - y).
- Удобно помнить, что и для MSE, и для binary log loss градиент по “выходу модели” часто сводится к разности предсказания и целевого значения.
- Log loss лучше подходит для классификации, MSE — для регрессии; у них разные интерпретации ошибки и разные свойства градиента.