logo search
Нейронные_сети_1

2.10 Конструктор нейронной сети

При проектировании интеллектуальных компонентов важным этапом является настройка структуры нейронной сети на предметную область, структуру и параметры обучающих данных. Под выбором структуры в случае многослойной сети прямого распространения (4.2) понимается определение числа слоев k нейронной сети и числа нейронов mk на каждом слое. Слои нумеруются от слоя, принимающего входные сигналы (1-ый слой) к слою, посылающему сигналы выходному слою(k-ый слой). Выходной (k+1-ый) слой обычно формируется автоматически в соответствии с поставленной задачей. Выбор структуры нейросетевой модели для решения конкретной задачи обычно возложен на пользователя в связи с тем, что в настоящее время отсутствуют универсальные методы определения оптимальной структуры нейросети. В литературе приводится несколько практических замечаний по поводу определения структуры сети в зависимости от задачи. В [41], например, предлагается сравнить оценку константы Липшица для выборки (4.5) и для нейросетевой функции. Для нейронной сети вида (4.2) константа Липшица определяется по формуле

,

(4.27)

где с – характеристика крутизны функции (4.3), mi – число нейронов на i-ом слое, m0 – число входных параметров, k – число слоев в сети. Тогда нейросеть может аппроксимировать выборку только в случае, если Ls < LNN. Другим принципом построения структуры сети может быть условие, по которому нейронная сеть должна иметь число настраиваемых параметров, меньшее, чем число примеров в обучающей выборке.

Как отмечалось ранее, методы автоматизированного формирования структуры нейросети делятся на методы наращивания и методы прореживания. В [40,41] отмечается преимущество методов наращивания. В соответствие с принципом автоматизации построения решателя предлагается эвристический метод автоматизированного наращивания структуры нейросети, основанный на методе динамического создания узлов (Dynamic Node Creation) [261] (рис.4.17):

  1. Пользователем задается число слоев k и строится начальная структура сети, содержащая минимальное число нейронов на каждом слое. Определяется максимальное число нейронов на каждом слое mkmax.

  2. Инициализация сети случайными параметрами. t :=1, t0=1.

  3. Такт обучения всех нейронов с незафиксированными параметрами, t:=t+1;

  4. Проверка условий:

H(t) Hmin ;

,

(5.28)

где t – номер текущего такта обучения, H(ti) – оценка обучения сети на t такте, константа, 0<<1, и q задаются пользователем.

  1. Если условия (5.28) не выполняются, то перейти к п.3, иначе перейти к следующему пункту.

  2. Если H(t) Hmin , то КОНЕЦ ОБУЧЕНИЯ, иначе перейти к следующему пункту.

  3. Проверка условия

,

(5.29)

где t0 момент добавления первого нейрона из тех, параметры которых не зафиксированы, t1 момент добавления текущего нейрона,константа, 0<<1.

  1. ЕСЛИ условие (4.29) не выполняется, ТО параметры нейронов, добавленные после момента t0 ,фиксируются и в дальнейшем обучении не участвуют, ИНАЧЕ нейроны, добавленные после момента t0 , не внесли существенного улучшения в качество обучения сети и они маркируются для инициализации.

  2. Инициализация нового нейрона и всех маркированных нейронов.

  3. Добавление нового нейрона в слой с наименьшим номером k, для которого mk < mkmax .

  4. Переход к п.3

Надо заметить, что параметры нейронов выходного слоя не фиксируются и всегда участвуют в обучении.

Рис. 4.17. Алгоритм автоматизированного формирования структуры многослойной нейронной сети

В [239] отмечается, что для ряда задач применение метода динамического создания узлов может приводить к значительному увеличению времени построения нейросети, т.к. вся сеть переобучается после добавления каждого нейрона. Предлагаемый алгоритм отличается от метода динамического создания узлов тем, что часть параметров сети фиксируется и не участвует в обучении. Это достигается введением условия в п.5 и константы, регулирующей количество обучаемых нейронов. При задании значения близкого к 1, вся сеть будет инициализироваться случайными параметрами после добавления каждого нового узла, что соответствует созданию новой сети. При задании значения , близкого к 0, обучаться будет только добавленный нейрон. Фиксация части параметров сети может значительно ускорить процесс обучения [239].