Pull to refresh

Правило Хебба всё-таки не требует внешнего подкрепления

Reading time3 min
Views3.1K

Само правило Хебба звучит следующим образом: «Если аксон клетки А находится достаточно близко, чтобы возбуждать клетку B, и неоднократно или постоянно принимает участие в её возбуждении, то наблюдается некоторый процесс роста или метаболических изменений в одной или обеих клетках, ведущий к увеличению эффективности А, как одной из клеток возбуждающих В». Взято здесь.

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

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

Внутренняя структура модели имеет следующий вид:

Входящий сигнал состоит из зрительной и моторной информации.

Зрительная информация содержит в себе поле игры, состоящие из 28Х28 клеток, представленное в виде периферического поля зрения и фокуса взгляда. Периферическое зрение, в данном случае, передаёт в сжатом формате 12Х12 всё поле игры, а фокус зрения, только часть игрового поля размером 7Х7 клеток.

Моторная информация содержит сведения о перемещении фокуса зрения по игровому полю. В случае отсутствия сигнала на моторные нейроны от нейронной сети, движение задаёт генератор. При появлении сигнала на моторных нейронах генератор тормозиться.

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

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

Скорректированный сигнал, поступает на первый слой нейронной сети, где происходит поиск повторяющихся ситуаций, на основании которых формируются паттерны/маски.

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

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

Такая нейронная сеть, строится на основании адаптированного правила Хебба, имеющего следующий частный вид: 

Для первого слоя:

  • Если входящий сигнал не совпадает с имеющимися ранее записанными масками на n% то формируется новая маска.

  • Если входящий сигнал совпадает – то данные содержащиеся в маске дополняются входящим сигналом.

  • Если к маске не обращались в течении m циклов, то из нейронной сети удаляются все сведения о данной маске. 

Для второго слоя:

  • Если сочетание активных масок не совпадает с ранее встречавшимися на n%, то такое сочетание записывается. А также записывается входящий сигнал, в качестве исходных данных для его коррекции в будущем.

  • Если сочетание активных масок совпадает – то все раннее записанные сочетания дополняются исходя из их схожести. Так же дополняется и представление входящего сигнала.

  • Если сочетание масок не встречалось в течении m циклов, то из нейронной сети удаляются все сведения о данном сочетании. 

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

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

Собственно ссылка на исходник такой модели на C#. Понятно, что реализация не настолько простая как это описано выше, и наверное детально вникать в логику работы самой программы смысла особого нет (Но на всякий случай, код был причёсан). Это именно пример нейронной сети, построенной по правилу Хебба, для демонстрации возможностей правила Хебба.

 По особенности запуска программы – из-за генерации движения, программа показывает результат не сразу. И обучение программы каждый раз идёт по-разному, быстрее или медленней. А из-за маленького размера игрового плоя победа может быть случайной.

Tags:
Hubs:
Total votes 9: ↑9 and ↓0+9
Comments1

Articles