11 May 2012

Модель нейрона с реакцией на последовательности

Artificial Intelligence
Sandbox
В последнее время на Хабре было несколько статей о Нейронных сетях. Для расширения кругозора предлагаю описание Нейронной сети, построенной на неклассических принципах, и с которой я очень активно и продуктивно проводил эксперименты. Нейрон будет не суммировать входящие сигналы, а распознавать поступающие последовательности сигналов.

Построение нейрона


Пусть нейрон имеет несколько входов и один выход. Нейрон, как и вся нейронная сеть, работает по тактам. Входы нейрона упорядочены. В течение одного такта нейрон получает на вход последовательность нулей и единиц от всех синапсов в соответствии с установленным порядком: сначала от первого, затем от второго и так далее. Последовательность входных сигналов одного такта дополняется последовательностью сигналов следующего. Итого можно считать, что нейрон получает на вход непрерывную последовательность нулей и единиц.
Нейрон имеет шаблон, встретив который в любом месте поступающей последовательности, нейрон “выстреливает”: выдаёт сигнал (единицу) на выходе в том такте, в котором он встретил шаблонную последовательность.
Обучение нейрона сводится к поиску шаблона, который нейрон должен находить в своей входящей последовательности.

Построение сети. Энергия


Пусть нейронная сеть состоит для начала из двух нейронов, каждый из которых соединён с рецепторами.
  • Для анализа изображений рецепторами традиционно будут пиксели матрицы, на которую проецируется изображение.

На матрицу будем проецировать изображения двух типов: горизонтальные и вертикальные линии. Поставим перед собой задачу обучить нейронную сеть распознавать эти изображения, причём так, чтобы один нейрон реагировал только на горизонтальные, а другой — только на вертикальные линии.
Для этого сначала усложним поведение нейрона. Предположим, что нейрон, выдавая сигнал (единицу), затрачивает энергию (всегда одну и ту же, обозначим её 1Э — единица энергии). Откуда нейрон возьмёт энергию? Из своего окружения. Будем считать, что на каждом такте в нейронную сеть поступает некоторое количество энергии, которая целиком распределяется по нейронам.
  • Заранее скажу, что количество энергии, поступающее в нейронную сеть за определённый интервал соответствует количеству ответных сигналов нейронной сети. То есть, в условиях, когда на вход подаются только два типа изображения, и мы хотим добиться однозначной реакции, на каждом такте в сеть должна поступать одна единица энергии.

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

Обучение


Что должно происходить с нейронами, если они “выстреливают” слишком часто? Расход энергии в этом случае увеличивается, и в какой-то момент оказывается, что нейрон встретил шаблонную последовательность, но энергетический потенциал не позволяет сформировать ответ. Это значит, что шаблонная последовательность слишком часто встречается: шаблон нужно изменить.
  • Шаблоном может быть любая последовательность, причём её длина не должна соответствовать количеству входных синапсов нейрона: она может быть как короче, так и длиннее.

В описанном случае шаблон следует удлинить. Допустим, битом, следующим за тем, который встретился во входной последовательности следующим за распознанным шаблоном.
А что, если нейроны “молчат”? Их энергия накапливается. Предположим, что достижение некоторого верхнего порога энергетического потенциала нейрона (скажем, 10Э) является критическим. Достижение верхнего порога означает, что нейрон имеет неактуальный шаблон: шаблон нужно укоротить. Укорачивание шаблона сопрягаем с расходом некоторого количества энергии, скажем, 1Э.

Поведение


Таким образом получилась динамическая система, несложная для программной реализации.
Отмечу, что система, построенная на двух нейронах по изложенным принципам, может достаточно эффективно распознавать образы. Для приведённого примера с вертикальными и горизонтальными линиями стабилизированная нейронная сеть будет выдавать правильные результаты для любых (!) горизонтальных и вертикальных линий вне зависимости от их толщины и расположения на сетчатке.
Tags:нейронные сети
Hubs: Artificial Intelligence
+26
3.6k 192
Comments 56
Top of the last 24 hours