crossentropy

Категориальная перекрестная энтропийная потеря

Описание

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

Потеря вычисляется с помощью следующей формулы

потеря=1Ni=1MTiжурнал(Xi)

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

Примечание

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

пример

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

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

Примеры

свернуть все

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

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

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 или числовой массив, это должно иметь тот же порядок размерности как вход dlX. Размер каждой размерности targets должен совпадать с размером каждой соответствующей размерности в dlX.

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

Порядок размерности бесформатных входных данных, заданных как разделенная запятой пара, состоящая из 'DataFormat' и символьный массив или строка, которая обеспечивает метку для каждой размерности данных. Каждый символ в 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