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 из кодирования 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 из кодирования 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 позволяют целям быть обработанными с относительной важностью.

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

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

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

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

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

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

свернуть все

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

Смотрите также

| | | | |

Введенный в R2013b