Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Почему кросс-энтропия является хорошей функцией потерь для предобучения языка?
Предостережение: это все известно, кстати; интересно, что, хотя существует множество точек зрения и интуиций по поводу "почему кросс-энтропия", все они могут быть выведены из одной исходной точки.
Вот простое вывод на основе первых принципов, который не предполагает ничего о распределении данных. Он исходит из очень разумного операционного требования :)
"Я хочу, чтобы моя модель звучала умно"
но мы не можем это измерить, поэтому мы спрашиваем
"Я хочу, чтобы моя модель звучала как человек"
Хотя у нас есть доступ ко всем текстам, когда-либо написанным, мы не можем это тоже измерить, поэтому мы вместо этого спрашиваем
"Я хочу, чтобы моя модель была как можно более вероятной для генерации одного из текстов, когда-либо написанных"
Или более прямо:
"Я хочу, чтобы моя модель запомнила обучающие данные."
Рассмотрим этот мысленный эксперимент:
Дано множество S всех текстов, когда-либо написанных людьми, мы проводим независимые испытания для каждого "текста" в S:
Сэмпл: "текст для примера" из нашей модели Pr( ;W)
Проверка: совпадает ли "текст для примера" с оригиналом? Обратите внимание: мы не условны ни на чем! мы просто спрашиваем, из всего, что модель могла бы сгенерировать, получили ли мы "текст".
Определим успех как событие
E = "все проверки на образцы успешны"
Вероятность E есть произведение вероятностей, присвоенных правильной истинной основе вашей модели W
Pr(E) = Π_{text in S} Pr(text; W)
Максимизация log Pr(E) по W дает вам цель кросс-энтропии.
Как вы оптимизируете это с помощью SGD?
текст для примера из корпуса
вычислить градиент log Pr(token|prefix) для каждого префикса текста
обновить модель
Что элегантно, так это то, что это одновременно:
1) Минимизирует длину описания данных под моделью P( ;W) (взгляд на сжатие)
2) Минимизирует KL-дивергенцию к истинному распределению — если оно существует (хотя мы никогда не предполагали, что оно существует)
3) Реализует оценку максимального правдоподобия
Вывод прост и хорошо известен, но он подчеркивает что-то важное:
кросс-энтропия естественным образом возникает из желания точного воспроизведения обучающих данных.
P.S. вы могли бы вместо этого попросить максимизировать
Pr(текст, сгенерированный моделью, находится в истинной основе)
интересно, что оптимизация этого может привести к коллапсу моды, поскольку оптимальное решение — всегда предсказывать один и тот же текст из корпуса. Тем не менее, градиенты снова выглядят как кросс-энтропия, но с множителем
t.е., Pr(text;W) grad log Pr(text;W)
64,23K
Топ
Рейтинг
Избранное