exponenta event banner

fitnet

Нейронная сеть подгонки функций

Описание

пример

net = fitnet(hiddenSizes) возвращает функцию, подгоняющую нейронную сеть со скрытым размером слоя hiddenSizes.

пример

net = fitnet(hiddenSizes,trainFcn) возвращает функцию, подгоняющую нейронную сеть со скрытым размером слоя hiddenSizes и функции обучения, указанные trainFcn.

Примеры

свернуть все

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

[x,t] = simplefit_dataset;

Матрица 1 на 94 x содержит входные значения и матрицу 1 на 94 t содержит соответствующие целевые выходные значения.

Постройте нейронную сеть, соответствующую функции, с одним скрытым слоем размером 10.

net = fitnet(10);

Просмотр сети.

view(net)

Размеры входа и выхода равны нулю. Программа корректирует их размеры во время обучения в соответствии с данными обучения.

Обучение сети net использование данных обучения.

net = train(net,x,t);

Просмотр обученной сети.

view(net)

Можно видеть, что размеры входных и выходных данных равны 1.

Оценка целевых показателей с использованием обученной сети.

y = net(x);

Оценка эффективности работы обученной сети. Функция производительности по умолчанию представляет собой среднеквадратичную ошибку.

perf = perform(net,y,t)
perf =

   1.4639e-04

Алгоритм обучения по умолчанию для сети подгонки функций - Левенберг-Марквардт ( 'trainlm' ). Используйте алгоритм обучения байесовской регуляризации и сравните результаты производительности.

net = fitnet(10,'trainbr');
net = train(net,x,t);
y = net(x);
perf = perform(net,y,t)
perf =

   3.3038e-10

Алгоритм обучения байесовской регуляризации улучшает производительность сети с точки зрения оценки целевых значений.

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

свернуть все

Размер скрытых слоев в сети, заданный как вектор строки. Длина вектора определяет количество скрытых слоев в сети.

Пример: Например, можно указать сеть с 3 скрытыми слоями, где первый скрытый слой имеет размер 10, второй - 8, а третий - 5: [10,8,5]

Входные и выходные размеры устанавливаются равными нулю. Программа корректирует их размеры во время обучения в соответствии с данными обучения.

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

Имя обучающей функции, указанное как одно из следующих.

Функция обученияАлгоритм
'trainlm'

Левенберг-Марквардт

'trainbr'

Байесовская регуляризация

'trainbfg'

BFGS Квази-Ньютон

'trainrp'

Упругое обратное распространение

'trainscg'

Масштабированный сопряженный градиент

'traincgb'

Сопряжение градиента с перезапуском Пауэлла/Била

'traincgf'

Сопряженный градиент Флетчера-Пауэлла

'traincgp'

Сопряженный градиент Полака-Рибьера

'trainoss'

Одношаговый секант

'traingdx'

Градиентный спуск переменной скорости обучения

'traingdm'

Градиентный спуск с импульсом

'traingd'

Градиентный спуск

Пример: Например, можно задать алгоритм градиентного спуска переменной скорости обучения в качестве обучающего алгоритма следующим образом: 'traingdx'

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

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

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

свернуть все

Сеть фитинга функции, возвращенная как network объект.

Совет

  • Функциональная подгонка - это процесс обучения нейронной сети на наборе входов для получения связанного набора целевых выходов. После построения сети с требуемыми скрытыми слоями и обучающим алгоритмом необходимо обучить ее с помощью набора обучающих данных. Как только нейронная сеть подходит к данным, она формирует обобщение взаимосвязи «вход-выход». Затем можно использовать обученную сеть для создания выходных данных для входных данных, на которых она не обучалась.

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