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

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

, (4.27)

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

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

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

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

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

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

H (t) £ Hmin ; , (5.28)

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

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

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

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

, (5.29)

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

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: