Почему кросс-энтропия является хорошей функцией потерь для предобучения языка? Предостережение: это все известно, кстати; интересно, что, хотя существует множество точек зрения и интуиций по поводу "почему кросс-энтропия", все они могут быть выведены из одной исходной точки. Вот простое вывод на основе первых принципов, который не предполагает ничего о распределении данных. Он исходит из очень разумного операционного требования :) "Я хочу, чтобы моя модель звучала умно" но мы не можем это измерить, поэтому мы спрашиваем "Я хочу, чтобы моя модель звучала как человек" Хотя у нас есть доступ ко всем текстам, когда-либо написанным, мы не можем это тоже измерить, поэтому мы вместо этого спрашиваем "Я хочу, чтобы моя модель была как можно более вероятной для генерации одного из текстов, когда-либо написанных" Или более прямо: "Я хочу, чтобы моя модель запомнила обучающие данные." Рассмотрим этот мысленный эксперимент: Дано множество 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