В этой статье рассматривается содержание, обсуждаемое в модуле Сигмоидный нейрон и кросс-энтропия Курса глубокого обучения, и все изображения взяты из одного модуля.

Ситуация, которая у нас есть, заключается в том, что нам дано изображение, мы знаем истинную метку для этого изображения, содержит ли оно текст или нет, а в приведенном ниже случае, поскольку изображение содержит текст, мы можем сказать, что вся масса вероятности находится в случайной величине, принимающей значение 1, и есть масса вероятности 0 в случайной величине, принимающей значение No Text.

Конечно, на практике мы не знаем этого истинного распределения, поэтому мы аппроксимируем его с помощью сигмовидной функции, и когда мы передаем эти входные данные как x к сигмовидному нейрону, мы получаем на выходе значение 0,7, которое мы снова можем интерпретировать как распределение вероятностей, поскольку вероятность изображения, содержащего текст, равна 0,7, а вероятность изображения, не содержащего текста, составляет 0,3.

Итак, мы вычисляли разницу между этими двумя распределениями, используя квадрат ошибки, но теперь у нас есть лучшая метрика, основанная на теории вероятностей, которая называется расхождением KL между этими двумя распределениями.

Таким образом, теперь вместо минимизации квадрата потерь ошибки нас интересует минимизация расхождения KL, и эта минимизация будет относиться к параметрам модели (w, b)

Термин, выделенный (желтым цветом) на изображении ниже, зависит от w, b в соответствии с определением/уравнением сигмоиды, а термин, подчеркнутый синим цветом, не зависит от w и b

Итак, наша цель — минимизировать величину по параметрам w, b. А поскольку подчеркнутая синим цветом часть на изображении выше не зависит от w, b; мы можем думать об этом как о константе. И наша задача сводится к минимизации только первого члена, т.е. перекрестной энтропии по параметрам w, b.

Таким образом, значение Cross-Entropy в приведенном выше случае оказывается равным: -log(0.7), что совпадает с -log y_hat для настоящий класс. (В данном случае истинный класс равен 1, т. е. изображение содержит текст, а y_hat, соответствующий этому истинному классу, равен 0,7).

Использование кросс-энтропии с сигмовидным нейроном

Когда истинный выход равен 1, функция потерь сводится к следующему:

И когда истинный выход равен 0, функция потерь:

И это просто потому, что есть 1 член, который умножается на 0, и этот член, очевидно, будет равен нулю, так что остается член потери.

Более упрощенный способ записи функции Cross-Entropy Loss:

Алгоритм обучения для функции кросс-энтропийных потерь

Как видно из вывода, мы имеем дело с проблемой классификации (поскольку возможный вывод равен 0, 1). Использование Cross-Entropy Loss имеет смысл только в случае классификации, потому что именно тогда мы пытаемся интерпретировать вывод как вероятность. Мы вычисляем выходные данные для каждой из 5 точек данных и используем их для вычисления функции потерь как:

И как только у нас есть потеря, мы можем вычислить дельта-термины (выделены на изображении ниже), обновить параметры и продолжить это в течение нескольких итераций по данным:

И мы вычисляем эти члены δ (дельта), взяв частные производные функции потерь по w и b.

Вычисление частных производных с потерями кросс-энтропии:

Функцию потерь (в общем случае) мы можем записать как:

И тогда мы можем вычислить частную производную функции потерь по w, используя цепное правило, как:

И точно так же частная производная функции потерь по b будет:

Изменения в функции Code for Cross-Entropy Loss:

Наш код с функцией потери квадрата ошибки выглядит следующим образом:

Теперь изменятся три функции: первая — функция ошибок, а две другие — функции, вычисляющие производную функции потерь по w и b.

В функции ошибок ранее мы вычисляли квадрат ошибки ошибки, которая теперь заменена кросс-энтропийной потерей:

Функция ошибки:

Ранее

Обновленный

Две другие функции:

Ранее

Обновленный