Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diplom1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.73 Mб
Скачать

Структура Synapse (синаптическая связь)

В обычной нейронной сети к синапсу привязаны ссылки на точное положение входного и выходного нейронов. Объект синапс соответствует единичной связи между двумя конкретными нейронами, к которой привязан ее вес.

В неокогнитроне требуется пользоваться связями между разными нейронами, которым соответствуют общие веса. Это приводит либо к дублированию сведений о весах (и повторению изменения весов для всех связей, к которым вес относится), либо к рассмотрению некой обобщенной связи. Поскольку вес связи привязан к относительному положению входного и выходного нейрона, массив таких обобщенных связей будет иметь размер нейронной окрестности данного слоя, и под связью с координатами (shift_i, shift_j) будет пониматься связь всех нейронов, где входной имеет координаты (i+shift_i, j+shift_j), а выходной – координаты (i, j). Таким образом, связь из полноценного объекта превращается в набор данных для использования нейроном. С учетом этого связь была реализована как полностью открытый класс (структура).

Класс Neurolayer

Содержит слои нейронов и функции работы слоев: генерация слоя, генерация связей между нейронами, подсчет значений нейронов слоя, изменение весов. Этот класс не содержит закрытых данных, его основное предназначение – упорядочивание структуры сети и удобство обращения к группам нейронов.

Параметром слоя являются его нейроны и его синаптические связи. Также слой имеет прямую ссылку на соседние с ним слои.

Его наследники – классы cLayer и Slayer

Отвечают за методы слоев конкретного типа. В классе сети Neuronet содержатся объекты классов CLayer и SLayer.

У S-слоев добавляются подавляющие нейроны и связи с ними. S-слои и C-слои имеют различные функции инициализации нейронов и весов, а также заполнения значений. У S-слоев также есть метод addPlane, добавляющий к уже сформированному слою дополнительную нейронную плоскость в процессе обучения. У S-слоя есть несколько вариантов функции обучения (определения клетки-зерна), а также метод изменения весов после нахождения зерна. Методы выбора зерна включают в себя обучение с учителем первых слоев, обучение с учителем промежуточных слоев, а также обучение с учителем, включающее генерацию дополнительных нейронных плоскостей.

У C-слоев есть разные функции инициализации весов – первый слой (UG, слой извлечения контраста) имеет другое взаимное расположение нейрона, чем обычные C-слои, при этом он тоже относится к C-слоям. У последнего слоя (UCN) также есть различия в методах генерации связей с остальными слоями этого типа. Также у C-слоев есть несколько вариантов весовой функции в окрестности: окружение может быть квадратным (оба координатных сдвига не превышают r) или круглым (shift_i2+shift_j2 <= r2), а также иметь подавляющую часть или не иметь ее. Функция весов является одним из параметров метода генерации синапсов.

Класс нейросети (Neuronet)

Объект этого класса представляет саму нейронную сеть. Нейронная сеть состоит из нейронных слоев (Slayer и Clayer). Она выполняет глобальные функции: обучение сети, получение значения для конкретных входных данных, распечатка результата. С этим классом контактирует внешняя оболочка приложения.

Сеть содержит нейронные слои CLayer и SLayer, а также массив нейронов input. В значения input заносятся значения, соответствующие входному изображению, таким образом они поступают на вход сети. Затем, при запросе ответа, сеть последовательно вызывает функции активации слоев. В режиме обучения же активируются слои, начиная от первого (UG) и до обучаемого (Sl), затем вызывается необходимая функция обучения слоя Sl. При создании сети слои также создаются последовательно: характеристики слоев (размеры окрестности, количество нейронных плоскостей) задаются в качестве параметра, как и размер входного изображения, а размеры внутренних слоев определяются исходя из этих данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]