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

Столбцы целевой матрицы состоят из всех нулей и одного 1 в положении класса, представленного этим векторам-столбцам. Когда N = 1, программное обеспечение использует кросс-энтропию для двоичного кодирования, в противном случае оно использует кросс-энтропию для 1-of-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 позволяют обрабатывать цели с относительной важностью.

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

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 - имя аргумента и 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