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

Обучение последнего слоя

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

Конкурентной областью для выбора обучаемой клетки становится весь слой целиком. Если была выбрана клетка, имеющая максимальное значение на всем слое, она (а с ней и ее плоскость) обучаются распознавать поступивший для обучения образец. Если не было выбрано ни одной клетки (либо есть несколько равновозбужденных клеток, либо, чаще, все клетки не реагируют), генерируется дополнительная плоскость, и ее центральная клетка становится зерном. Таким образом, если образец вызвал неопределенную реакцию слоя, на слое добавляется плоскость, которая обучается распознавать этот образец. При этом один образец (возможно с небольшими изменениями) может вызывать реакцию разных плоскостей.

У каждой плоскости S-слоя есть соответствующая ей метка класса. При подаче обучающего образца на входной слой нейронная сеть знает, к какому классу относится образец. При этом разные трансформации одного и того же изображения являются обучающими образцами одного класса. Когда плоскость последнего S-слоя реагирует на образец, ее метка сравнивается с известной меткой класса образца. Если они совпадают, эта плоскость обучается. Если нет – считается, что победителя нет и создается новая плоскость, причем ей после обучения присваивается необходимая метка класса.

Последний C-слой, следующий за последним S-слоем занимается классификацией образцов. Он содержит N плоскостей, по числу классов образцов, причем каждая состоит из 1 нейрона. На последнем S-слое для каждого класса существует несколько распознающих его плоскостей, и все они привязаны к одной плоскости последнего С-слоя: той, которая соответствует этой метке класса. Веса и пороговое значение для последнего слоя подбираются таким образом, чтобы при возникновении возбуждения в любой из плоскостей, отвечающих за этот класс, нейрон этого класса отрегировал и выдал максимальный выходной сигнал.

Задача поиска образца на изображении

Задача поиска образца рассматривается как модификация задачи распознавания образца. В качестве обучающей выборки используется искомый образец и его трансформации. Все они считаются изображениями одного класса. В процессе обучения от сети требуется узнавание образца. После обучения пороги распознавания увеличиваются чтобы уменьшить число ложных срабатываний. Оптимальной является конфигурация сети с узкими областями узнавания каждой модификации образца и большим количеством модификаций, подаваемых в качестве обучающих примеров (повороты, масштабирование). Таким образом будет минимизировано число ложных срабатываний в областях, где образец на изображении отсутствует. Также задача легко расширяется до поиска нескольких типов образцов на изображении – это требует только увеличения размера сети, но не изменения принципов ее функционирования.

Когда сеть обучена, входное изображение, на котором производится поиск, разбивается на пересекающиеся фрагменты с размером, соответствующим размеру входного слоя. Для обучения сети оптимальными являются входные образцы, где большая часть пикселей содержит информацию об образце (а не изображения с большой долей фоновых пикселей). При этом входное изображение будет разбиваться на большое количество небольших фрагментов.

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

1.3. Практическая часть: программная реализация неокогнитрона

Объектно-ориентированный подход к проектированию сети

Структура программы

В неокогнитронной сети можно выделить следующие объекты: нейрон, синаптическая связь, слой нейронов (включает в себя нейроны и связи), нейронная сеть (включает в себя нейронные слои).

Рис. 1 .10 изображает диаграмму классов сети, включающая в себя классы и их основные методы. Ниже классы приведено подробное описание классов.

Рис. 1.10. Диаграмма классов сети (версия 1)

Класс Neuron (нейрон)

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

Ключевые параметры и методы класса указаны на диаграмме классов (рис. 10)

Значение выходного сигнала нейрона – параметр нейрона value. Нейрону также известна собственная абсолютная позиция на слое и радиус окружения.

Связь нейронов и синапсов в теории равноценная: как нейрон может считаться центральным объектом, через который происходит обращение к синапсам, так и синапс может обращаться к двум нейронам, с которыми он связан. Таким образом, ссылки на входной и выходной нейрон должны присутствовать у синапсов, а ссылки на входные и выходные связи – у нейронов. Поскольку в сети отсутствует обратная связь, исключим выходные связи из рассмотрения.

Одной из особенностей неокогнитрона являются общие веса для соседних групп нейронов. Вес – это параметр синаптической связи. Тогда нейрон должен хранить только ссылку на синаптические связи, а сами связи хранятся на более высоких уровнях сети. Ссылки хранятся в виде вектора позиций в массиве связей. Ссылка на массив связей передается в качестве параметра функции вычисления сигнала.

Функция вычисления сигнала зависит от слоя, к которому принадлежит нейрон, и определяется классом слоя.

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

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