focalCrossEntropy

Вычислите фокусные потери перекрестной энтропии

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

numCategories = 10;
observations = 32;
X = rand(numCategories,observations);

Создайте форматированный глубоким обучением массив, который имеет формат данных с метками 'C' и 'B'.

dlX = dlarray(X,'CB');

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

dlX = softmax(dlX);

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

targets = dlarray(zeros(numCategories,observations));
targets(2,:) = 1;

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

dlY = focalCrossEntropy(dlX,targets,'Reduction','none');

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

numCategories = 10;
observations = 32;
X = rand(numCategories,observations);

Создайте неформатированный массив глубокого обучения.

dlX = dlarray(X);

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

dlX = softmax(dlX,'DataFormat','CB');

Создайте целевые данные. Установите целевые объекты, относящиеся ко второй категории, как векторы с кодировкой с одним горячим контактом.

targets = zeros(numCategories,observations);
targets(2,:) = 1;

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

dlY = focalCrossEntropy(dlX,targets,'DataFormat','CB')
dlY = 
  1x1 dlarray

    0.4769

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

numCategories = 10;
observations = 32;
X = rand(numCategories,observations);

Создайте форматированный глубокий массив обучения, который имеет формат данных с метками 'C' и 'B'.

dlX = dlarray(X,'CB');

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

dlX = sigmoid(dlX);

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

targets = zeros(numCategories,observations);
targets(2,:) = 1;
targets(6,:) = 1;

Вычислите среднее значение фокусной потери перекрестной энтропии, вычисленной между предсказаниями и целями. Установите значение 'TargetCategories'значение в' independent'для многомерной классификации.

dlY = focalCrossEntropy(dlX,targets,'TargetCategories','independent')
dlY = 
  1x1 dlarray

    2.4362

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

свернуть все

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

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

Целевые метки классификации, заданные как форматированный или неформатированный dlarray или числовой массив.

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

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

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

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

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

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

Параметр фокусировки функции фокусных потерь, заданный как разделенная разделенными запятой парами, состоящая из 'Gamma' и положительное вещественное число. Увеличение значения Gamma увеличивает чувствительность сети к неправильно классифицированным наблюдениям.

Параметр балансировки функции фокальных потерь, заданный как разделенная разделенными запятой парами, состоящая из 'Alpha' и положительное вещественное число. The Alpha значение линейно масштабирует функцию потерь и обычно устанавливается на 0.25. Если вы уменьшаетесь Alpha, увеличение Gamma.

Тип потерь выхода, заданный как разделенная запятой пара, состоящий из 'Reduction' и одно из следующих:

  • 'mean' - Среднее значение потерь на выходе для каждого предсказания. Функция вычисляет среднее значение значений потерь, вычисленных для каждых предсказаний в вход dlX. Функция возвращает среднюю потерю как неформатированную dlarray. Наблюдения со всеми нулевыми целевыми значениями по размерности канала исключены из вычисления средних потерь.

  • 'none' - Выход потерь для каждого предсказания. Функция возвращает значения потерь для каждого наблюдения в dlX. Выборки для вычисления фокусных потерь перекрестной энтропии также содержат наблюдения, целевые значения которых все являются нулями по размерности канала. Если dlX является форматированным dlarray, выход dlY является форматированным dlarray с теми же метками размерностей, что и dlX. Если dlX является неформатированным dlarray, выход dlY является неформатированным dlarray.

Значение по умолчанию 'mean'.

Пример: 'Reduction','mean'

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

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

  • 'exclusive' - Однометковая классификация. Каждое наблюдение в предсказаниях dlX присваивается исключительно одной категории.

  • 'independent'- Многомерная классификация. Каждое наблюдение в предсказаниях dlX может быть присвоен одной или нескольким независимым категориям.

Значение по умолчанию 'exclusive'.

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

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

  • 'C' - Канал

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

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

  • 'U' - Не определено

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

Вы должны задать 'DataFormat' когда входные данные dlX не является форматированным dlarray.

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

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

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

свернуть все

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

См. также

| (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox)

Введенный в R2020b