Функции обучения нейронных сетей
Метод обучения. В качестве метода обучения сетей в ППП NNT версии 4 используют функцию train, которая позволяет установить процедуры обучения сети и настройки ее параметров, присваивая свойствам net.trainFcn и net.trainParam требуемые значения. Обучение нейронной сети Синтаксис: [net, TR] = train(net, P, T, Pi, Ai) [net, TR] = train(net, P, T, Pi, Ai, VV, TV) Описание: Функция [net, TR] = train(net, P, T, Pi, Ai) является методом для объектов класса network object, который реализует режим обучения нейронной сети. Эта функция характеризуется следующими входными и выходными аргументами. Входные аргументы: net - имя нейронной сети; Р - массив входов; Т - вектор целей, по умолчанию нулевой вектор; Pi - начальные условия на линиях задержки входов, по умолчанию нулевой вектор; Ai - начальные условия на линиях задержки слоев, по умолчанию нулевой вектор. Выходные аргументы: net - структура объекта network object после обучения; TR - характеристики процедуры обучения: TR.timesteps - длина последней выборки; TR.perf - значения функции качества на последнем цикле обучения. Заметим, что входной аргумент Т используется только при наличии целевых выходов, аргументы Pi и Pf - только в случае динамических сетей, имеющих линии задержки на входах или в слоях. Входные аргументы Р и Т могут иметь два формата: cell array и double array. Формат cell array наиболее прост для понимания и соответствует последовательному представлению данных. Последовательное представление данных. Каждую строку массива ячеек можно рассматривать как временную последовательность, и тогда описание многомерной сети может быть представлено следующим образом: Р - массив ячеек размера Ni xTS, каждый элемент которого Р {i, ts} - числовой массив размера RixQ; Т - массив ячеек размера NtxTS, каждый элемент которого Т{ i, ts} - числовой массив размера VixQ; Pi - массив ячеек размера NixID, каждый элемент которого Pi {i, k} - числовой массив размера RixQ; Ai - массив ячеек размера N1xLD, каждый элемент которого Ai{i, k} - числовой массив размера SixQ; Y - массив ячеек размера NoxTS, каждый элемент которого Y {i, ts} - числовой массив размера UixQ; Pf - массив ячеек размера NixID, каждый элемент которого Pf{i, k} - числовой массив размера RixQ; Af - массив ячеек размера N1xLD, каждый элемент которого Af{i, k} - числовой массив размера SixQ. Параметры описания массивов ячеек и их связь с параметрами сети представлены в табл. 3.1. Таблица 3.1
Столбцы массивов начальных условий Pi, Pf, Ai, Af упорядочены в соответствии со следующими условиями: Pi{i, k} - значение начального условия для линии задержки i-гo входа в момент времени ts = k - ID; Pf {i, k} - значение начального условия для линии задержки i-гo входа в момент времени ts = TS + k - ID; Ai{i, k} - значение начального условия для линии задержки i-гo слоя в момент времени ts = k - LD; Af {i, k} - значение начального условия для линии задержки i-гo слоя в момент времени ts = TS + k - LD. Групповое представление данных можно использовать только при обучении статических сетей (TS = 1). При этом следует помнить, что при переходе от формата последовательного представления данных cell array к формату группового представления double array массив ячеек, содержащий, например, Ni числовых массивов размера RixQ, преобразуется в единственный числовой массив размера . Табл. 3.2 поясняет связь этих форм представления. Таблица 3.2
Функция [net, TR] = train(net, P, T, Pi, Ai, VV, TV) позволяет использовать в процессе обучения контрольные и тестовые подмножества для оценки представительности используемых обучающих выборок. Эти подмножества описываются массивами структур со следующими полями: VV.P, TV.P - контрольное и тестовое подмножества векторов входов; VV.T, TV.T - контрольное и тестовое подмножества векторов целей; VV.Pi, TV.Pi - начальные значения задержек на входе сети для контрольного и тестового подмножеств, по умолчанию нулевые; VV.Ai, TV.Ai - начальные значения задержек на слоях для контрольного и тестового подмножеств, по умолчанию нулевые. Алгоритм: Метод train вызывает функцию обучения, заданную свойством net.trainFcn со значениями параметров обучения, заданными свойством net.trainParam. Обычно цикл обучения определяется как предъявление сети всех векторов входа. Затем выполняется настройка параметров сети. Обучение продолжается до тех пор, пока не будет выполнено заданное число циклов обучения, достигнуто допустимое значение критерия качества обучения или выполнено любое другое условие остановки для выбранной функции обучения. Сопутствующие функции: SIM, INIT, ADAPT.
|