exponenta event banner

crossentropy

Характеристики нейронной сети

Описание

пример

perf = crossentropy(net,targets,outputs,perfWeights) вычисляет производительность сети с заданными целевыми показателями и выходами с дополнительными весами производительности и другими параметрами. Функция возвращает результат, который сильно штрафует выходы, которые крайне неточны (y рядом 1-t), с очень небольшим штрафом за достаточно правильные классификации (y рядом t). Минимизация перекрестной энтропии приводит к хорошим классификаторам.

Перекрестная энтропия для каждой пары элементов «выход-цель» вычисляется как: ce = -t .* log(y).

Совокупная эффективность перекрестной энтропии представляет собой среднее значение отдельных значений: perf = sum(ce(:))/numel(ce).

Частный случай (N = 1): Если выход состоит только из одного элемента, то выходы и цели интерпретируются как двоичное кодирование. То есть существует два класса с целями 0 и 1, тогда как в кодировании 1-of-N существует два или более класса. Двоичное выражение перекрестной энтропии: ce = -t .* log(y) - (1-t) .* log(1-y) .

perf = crossentropy(___,Name,Value) поддерживает настройку в соответствии с указанными аргументами пары имя-значение.

Примеры

свернуть все

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

[x,t] = iris_dataset;
net = patternnet(10);
net.performParam.regularization = 0.1;
net = train(net,x,t);
y = net(x);
perf = crossentropy(net,t,y,{1},'regularization',0.1)
perf = 0.0278

В этом примере показано, как настроить сеть для использования crossentropy во время обучения.

net = feedforwardnet(10);
net.performFcn = 'crossentropy';
net.performParam.regularization = 0.1;
net.performParam.normalization = 'none';

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

свернуть все

Нейронная сеть, указанная как сетевой объект.

Пример: net = feedforwardnet(10);

Целевые значения нейронной сети, определенные как матрица или массив ячеек числовых значений. Целевые значения сети определяют требуемые выходы и могут быть определены как Nоколо-Q матрица Q N- векторы элементов или Mоколо-TS массив ячеек, где каждый элемент является Niоколо-Q матрица. В каждом из этих случаев N или Ni указывает длину вектора, Q количество образцов, M количество сигналов для нейронных сетей с несколькими выходами, и TS - количество временных шагов для данных временных рядов.  targets должны иметь те же размеры, что и outputs.

Столбцы целевой матрицы состоят из всех нулей и одного 1 в позиции класса, представляемого этим вектором столбца. Когда N = 1, программное обеспечение использует перекрестную энтропию для двоичного кодирования, в противном случае оно использует перекрестную энтропию для 1-of-N кодирования. NaN значения могут указывать на неизвестные или неподходящие выходные значения. Производительность NaN целевые значения игнорируются.

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

Выходные значения нейронной сети, определенные как матрица или массив ячеек числовых значений. Выходные значения сети могут быть указаны как Nоколо-Q матрица Q N- векторы элементов или Mоколо-TS массив ячеек, где каждый элемент является Niоколо-Q матрица. В каждом из этих случаев N или Ni указывает длину вектора, Q количество образцов, M количество сигналов для нейронных сетей с несколькими выходами и TS - количество временных шагов для данных временных рядов. outputs должны иметь те же размеры, что и targets.

Выходные данные могут включать NaN для указания неизвестных выходных значений, предположительно полученных в результате NaN входные значения (также представляющие неизвестные или неподходящие значения). Производительность NaN выходные значения игнорируются.

Общий случай (N > = 2): Столбцы выходной матрицы представляют оценки членства в классе и должны быть равны 1. Вы можете использовать softmax передаточная функция для получения таких выходных значений. Использовать patternnet для создания сетей, которые уже настроены на использование межэнтропийной производительности с выходным уровнем softmax.

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

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

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

perfWeights могут иметь те же размеры, что и targets и outputs. Альтернативно, каждый размер весов производительности может либо совпадать с размером targets и outputs, или быть 1. Например, если targets является Nоколо-Q матрица, определяющая Q образцы N-элементные векторы, весовые коэффициенты производительности могут быть Nоколо-Q указывая различную важность для каждого целевого значения, или Nоколо-1 определение различной важности для каждой строки целевых объектов, или 1около-Q указывая различную важность для каждой выборки, или быть скаляром 1 (т.е. 1 на 1), указывающим одинаковую важность для всех целевых значений.

Аналогично, если outputs и targets - массивы ячеек матриц, perfWeights может быть массивом ячеек одинакового размера, массивом ячеек строк (указывающим относительную важность каждого временного шага), массивом ячеек столбцов (указывающим относительную важность каждого вывода нейронной сети) или массивом ячеек одной матрицы или только матрицы (оба случая указывают, что все матрицы имеют одинаковые значения важности).

Для любой проблемы, perfWeights значение {1} (по умолчанию) или скаляр 1 указывает, что все характеристики имеют одинаковую важность.

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

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

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

Пример: 'normalization','standard' определяет входы и цели, нормируемые в диапазоне (-1, + 1).

Доля производительности, приписанная значениям веса/смещения, заданная как двойная между 0 (по умолчанию) и 1. Большее значение штрафует сеть за большие веса, и чем больше вероятность того, что функция сети избежит переоборудования.

Пример: 'regularization',0

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

Режим нормализации для выходов, целей и ошибок, указанный как 'none', 'standard', или 'percent'. 'none' не выполняет нормализацию. 'standard' приводит к нормализации выходов и целей до (-1, + 1) и, следовательно, к ошибкам в диапазоне (-2, + 2).'percent' нормализует выходы и цели к (-0,5, 0,5) и ошибки к (-1, 1).

Пример: 'normalization','standard'

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

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

свернуть все

Производительность сети, возвращенная как двойная в диапазоне (0,1).

См. также

| | | | |

Представлен в R2013b