crossentropy

Производительность нейронной сети

Синтаксис

perf = crossentropy(net,targets,outputs,perfWeights)
perf = crossentropy(___,Name,Value)

Описание

пример

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

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

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

Выходные значения нейронной сети, заданные как матричный или массив ячеек числовых значений. Сетевые выходные значения могут быть заданы как N-by-Q матрица Q N - векторы элемента или M-by-TS массив ячеек, где каждым элементом является Ni-by-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-by-Q матрица, задающая выборки Q N - векторы элемента, веса производительности могут быть N-by-Q указание на различную важность для каждого целевого значения или N-by-1 определение различной важности для каждой строки целей или 1-by-Q указание на различную важность для каждой выборки, или быть скаляром 1 (т.е. 1 на 1) указание на ту же важность для всех целевых значений.

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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