crossentropy

Потеря перекрестной энтропии для задач классификации

Описание

Перекрестная энтропийная операция вычисляет потерю перекрестной энтропии между сетевыми предсказаниями и целевыми значениями для задач классификации одно меток и мультиметок.

Примечание

Эта функция вычисляет потерю перекрестной энтропии между предсказаниями и предназначается сохраненный как dlarray данные. Если вы хотите вычислить потерю перекрестной энтропии в layerGraph объект или Layer массив для использования с trainNetwork, используйте следующий слой:

пример

dlY = crossentropy(dlX,targets) вычисляет категориальную потерю перекрестной энтропии между предсказаниями dlX и целевые значения targets для задач классификации одно меток. Вход dlX отформатированный dlarray с метками размерности. Выход dlY бесформатный скалярный dlarray без меток размерности.

dlY = crossentropy(dlX,targets,'DataFormat',FMT) также задает формат размерности FMT когда dlX не отформатированный dlarray.

dlY = crossentropy(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Например, 'TargetCategories','independent' вычисляет потерю перекрестной энтропии для задачи классификации мультиметок.

Примеры

свернуть все

Потеря перекрестной энтропии оценивает, как хорошо сетевые предсказания соответствуют целевой классификации.

Создайте данные о классификации входов как матрицу случайных переменных. Данные содержат 12 наблюдений, которые могут быть в любой из 10 категорий.

numCategories = 10;
observations = 12;

X = rand(numCategories,observations);
dlX = dlarray(X,'CB');

Преобразуйте значения категории в данных к музыке вероятности к каждой категории.

dlX = softmax(dlX);

Создайте целевые данные, которые содержат правильную категорию для каждого наблюдения в dlX.

targetsIdx = randi(10,1,12);
targets = zeros(10,12);
for i = 1:numel(targetsIdx)
    targets(targetsIdx(i),i) = 1;
end

Вычислите потерю перекрестной энтропии между предсказаниями и целями.

dlY = crossentropy(dlX,targets)
dlY = 
  1x1 dlarray

    2.3343

Входные параметры

свернуть все

Предсказания в виде dlarray с или без меток размерности или числового массива. Когда dlX не отформатированный dlarray, необходимо задать формат размерности с помощью 'DataFormat',FMT. Если dlX числовой массив, targets должен быть dlarray.

Типы данных: single | double

Целевая классификация помечает в виде отформатированного или бесформатного dlarray или числовой массив.

Если targets отформатированный dlarray, его формат размерности должен совпасть с форматом X, или то же самое как 'DataFormat' если X восстанавливается после форматирования

Если targets бесформатный dlarray или числовой массив, размер targets должен точно совпадать с размером X. Формат X или значение 'DataFormat' неявно применяется к targets.

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'TargetCategories','independent','DataFormat','CB' оценивает потерю перекрестной энтропии для задач классификации мультиметок и задает порядок размерности входных данных как 'CB'

Тип задачи классификации в виде разделенной запятой пары, состоящей из 'TargetCategories' и одно из следующего:

  • 'exclusive' — Классификация одно меток. Каждое наблюдение в предсказаниях dlX исключительно присвоен одной категории. Функция вычисляет потерю между целевым значением для одной категории, заданной targets и соответствующее предсказание в dlX, усредненный по количеству наблюдений.

  • 'independent'— Мультипометьте классификацию. Каждое наблюдение в предсказаниях dlX может быть присвоен одной или нескольким независимым категориям. Функция вычисляет сумму потери между каждой категорией, заданной targets и предсказания в dlx для тех категорий, усредненных по количеству наблюдений. Потеря перекрестной энтропии для этого типа задачи классификации также известна как бинарную потерю перекрестной энтропии.

Значением по умолчанию является 'exclusive'.

Для классификации одно меток потеря вычисляется с помощью следующей формулы:

loss=1Ni=1MTilog(Xi)

где Xi является сетевым ответом, Ti является целевым значением, M является общим количеством ответов в X (через все наблюдения и категории), и N является общим количеством наблюдений в X.

Для классификации мультиметок потеря вычисляется с помощью следующей формулы:

loss=1Ni=1Nj=1C(Ti,jlog(Xi,j)+(1Ti,j)log(1Xi,j))

где здесь Xi,j является сетевым ответом для данной категории, Ti,j является целевым значением той категории, и C является общим количеством категорий. В этом случае потеря перекрестной энтропии вычисляется как вероятность заданного наблюдения, присваиваемого данной категории, суммировала по всем категориям и наблюдениям и нормировала на количество наблюдений.

Пример: 'TargetCategories','independent'

Порядок размерности бесформатных входных данных в виде разделенной запятой пары, состоящей из 'DataFormat' и символьный массив или строка FMT это обеспечивает метку для каждой размерности данных. Каждый символ в FMT должно быть одно из следующего:

  • 'S' — Пространственный

  • 'C' — Канал

  • 'B' — Пакет (например, выборки и наблюдения)

  • 'T' — Время (например, последовательности)

  • 'U' — Незаданный

Можно указать, что несколько размерностей пометили 'S' или 'U'. Можно использовать, маркирует 'C'B, и 'T' самое большее однажды.

Необходимо задать 'DataFormat' когда входные данные dlX не отформатированный dlarray.

Пример: 'DataFormat','SSCB'

Типы данных: char | string

Выходные аргументы

свернуть все

Потеря перекрестной энтропии, возвращенная как dlarray скаляр без меток размерности. Выход dlY имеет тот же базовый тип данных как вход dlX.

Потеря перекрестной энтропии dlY средняя логарифмическая потеря через 'B' пакетная размерность dlX.

Больше о

свернуть все

Потеря перекрестной энтропии

crossentropy функция вычисляет потерю перекрестной энтропии для проблем классификации. Для получения дополнительной информации см. определение Классификации Выходной Слой на ClassificationOutputLayer страница с описанием.

Расширенные возможности

Введенный в R2019b