trainSoftmaxLayer

Обучите слой softmax для классификации

Описание

пример

net = trainSoftmaxLayer(X,T) обучает слой softmax, net, на входных данных X и цели T.

net = trainSoftmaxLayer(X,T,Name,Value) обучает слой softmax, net, с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

Для примера можно задать функцию потерь.

Примеры

свернуть все

Загрузите выборочные данные.

[X,T] = iris_dataset;

X является матрицей 4х150 из четырёх атрибутов радужки: Длина сепала, ширина чашелистика, длина лепестка, ширина лепестка.

T является матрицей 3x150 связанных векторов классов, определяющей, какому из трех классов каждый вход назначен. Каждая строка соответствует фиктивной переменной, представляющей один из видов радужки (классов). В каждом столбце 1 в одной из трех строк представляет класс, к которому принадлежит конкретная выборка (наблюдение или пример). Существует нуль в строках для других классов, к которым наблюдение не принадлежит.

Обучите слой softmax с помощью выборочных данных.

net = trainSoftmaxLayer(X,T);
nntraintool('close')

Классифицировать наблюдения в один из трех классов с помощью обученного слоя softmax.

Y = net(X);

Постройте матрицу неточностей с помощью целей и классификаций, полученных из слоя softmax.

plotconfusion(T,Y);

Figure Confusion (plotconfusion) contains an axes. The axes with title Confusion Matrix contains 50 objects of type patch, text, line.

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

свернуть все

Обучающие данные, заданные как m -by - n матрица, где m - количество переменных в обучающих данных, а n - количество наблюдений (примеры). Следовательно, каждый столбец X представляет выборку.

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

Целевые данные, заданные как k -by - n матрица, где k - количество классов, а n - количество наблюдений. Каждая строка является фиктивной переменной, представляющей конкретный класс. Другими словами, каждый столбец представляет выборку, и все значения столбца равны нулю, кроме одной в строке. Эта отдельная запись указывает класс для этой выборки.

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

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

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

Пример: 'MaxEpochs',400,'ShowProgressWindow',false задает максимальное количество итераций как 400 и скрывает окно обучения.

Максимальное количество итераций обучения, заданное как разделенная разделенными запятой парами, состоящая из 'MaxEpochs' и положительное целое значение.

Пример: 'MaxEpochs',500

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

Функция потерь для слоя softmax, заданная как разделенная разделенными запятой парами, состоящая из 'LossFunction' и любой из них 'crossentropy' или 'mse'.

mse обозначает среднюю функцию квадратичной невязки, которая задается:

E=1nj=1ni=1k(tijyij)2,

где n количество примеров обучения, и k количество классов. tij - ij-я запись целевой матрицы, T, и yij - i-й выход автоэнкодера, когда входной вектор x j.

Функция перекрестной энтропии задается:

E=1nj=1ni=1ktijlnyij+(1tij)ln(1yij).

Пример: 'LossFunction','mse'

Индикатор для отображения окна обучения во время обучения, заданный как разделенная разделенными запятой парами, состоящая из 'ShowProgressWindow' и любой из них true или false.

Пример: 'ShowProgressWindow',false

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

Алгоритм настройки, используемый для обучения слоя softmax, задается как разделенная разделенными запятой парами, состоящая из 'TrainingAlgorithm' и 'trainscg', который обозначает масштабированный сопряженный градиент.

Пример: 'TrainingAlgorithm','trainscg'

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

свернуть все

Слой Softmax для классификации, возвращенный как network объект. Слой softmax, net, совпадает с размером целевого объекта T.

См. также

|

Введенный в R2015b