Примеры из статьи можно самостоятельно воспроизвести на симуляторе, в котором демонстрируется принцип работы взаимного торможения эффекторов, при детектировании проецируемого на рецепторное поле образа-примитива. Такое торможение позволяет контрастировать примитив, а также приводит к другим интересным эффектам, о которых будет рассказано ниже и которые можно самостоятельно воспроизвести на симуляторе.
Симулятор представлен в виде дуплексной матрицы, где имеются 2 типа элементов: рецепторы и эффекторы.
Внешне матрица выполнена в виде ячеистой структуры по типу шестигранника, где в его центре находится эффектор (на рисунке это элементы с номерами 14,23, 8, 18, 27, 108, 117). Вокруг эффектора веером расположены рецепторы. Почему матрица выполнена таким образом, какие особенности и преимущества это дает – подробно рассказано в соответствующем разделе. Коротко напомню основное – это дает более наглядную схему связей, без хаоса линий и цифр, характерную для обычной схемы в виде расположенных друг против друга линеек элементов. В данной схеме каждый элемент имеет 2 числовых значения внутри. Более крупная цифра, расположенная выше – порядковый номер элемента в сети. Например, цифры 10, 11, 12 и т.д. Более мелкая цифра ниже: - Для эффектора – показывает суммарный вес, полученный от рецепторов. - Для рецептора – вес передаваемый им эффектору
Имитация воздействия на рецептор производится простым кликом по кружку, после чего он меняет цвет и вес связи, передаваемый связанному с ним эффектору. При клике левой кнопкой вес увеличивается от 0,1 до 0,9 и цвет становится более насыщенным, при клике правой – вес уменьшается и цвет становится более тусклым. Так имитируется установка веса на синапсе нейрона-эффектора. Чтобы сразу задать максимальный вес рецептора 0,9 нужно сделать первый клик (по рецептору с весом 0) левой кнопкой. Если по рецептору с весом 0,9 кликнуть правой – его вес обнулится. Одновременно с изменением веса рецепторов меняется значение суммарного веса у эффектора.
Состояние элементов на рисунке показано при настройках сети: - Порог = 0,4 - Вес тормозных связей = 0,1
На рисунке таким образом были активированы 6 рецепторов (№10, 11, 17, 20, 21, 22) с весом передаваемого возбуждения 0,1. Они в свою очередь активировали эффектор (элемент 18) передав ему суммарный вес 0,6. По текущим настройкам сети порог срабатывания эффектора 0,4. Поэтому, так как переданный ему от рецепторов суммарный вес превысил порог – он активировался, что демонстрируется изменением его цвета. Кроме того, на рисунке видны линии связи 2 типов: Основная связь – между рецепторами и эффектором. По ней передается уровень сигнала от рецептора к эффектору с заданным весом. Тормозная связь – только между эффекторами. По ней передается взаимное торможение, но только от активных эффекторов.
У симулятора есть несколько настроек, позволяющих имитировать изменения параметров элементов сети. Они расположены ниже и представляют собой поле, в которое можно вводить числовое значение параметра и ползунок, перемещая который можно динамически менять значение того же параметра. Крайние справа – 2 графических настройки в виде флажков. Рассмотрим настройки более подробно: Загрузить рисунок – поле со списков выбора нескольких простых примитивов, которые будут спроецированы на рецепторное поле. Порог срабатывания для всех нейронов – поле и ползунок. Задает общий для всех эффекторов порог срабатывания. Это означает, что как только суммарный вес эффектора превысит величину порога, он активируется и начнет оказывать тормозное влияние на связанные с ним тормозными связями соседние эффекторы. Коэффициент увеличения веса – поле и ползунок. Задают общий для всех основных весов коэффициент усиления, имитирующий уровень воздействия на активные рецепторы. Вес для всех тормозных связей – устанавливает общий для всех эффекторов тормозной вес. Тормозное влияние передается только от активного эффектора и рассчитывается по формуле:
В данном случае от эффектора передается тормозное влияние величиной: 0,6*0,1=0,06 условных единиц. И поступает оно на каждый их шести эффекторов связанных с активным тормозными связями (элементы 14, 23, 27, 117, 108, 8). Но на эти же эффекторы поступили сигналы от активных рецепторов с величиной 0,1. При этом например на эффектор 14 поступили сигналы от рецепторов 10 и 17, что в подняло его суммарный вес до: 0,1*2=0,2. В итоге, два типа воздействия на эффектор 14 установили его итоговый вес как суммарный вес от рецепторов за минусом тормозного влияния от активных эффекторов, имеющих с ним связи (в данном примере только один эффектор на него влияет (№18): 0,2-0,06=0,14. Аналогичным образом устанавливаются итоговые веса остальных эффекторов, на которые поступило активно/тормозное влияние элементов нейросети. Показать линии связей – нажатие флажков отображает линии связей элементов, отжатие – скрывает.
Справа от модели нейросети расположен интерактивный график, где показаны значения весов эффекторов. По вертикали отражаются веса (вверх – положительные, вниз - отрицательные), по горизонтали – номера элементов сети. Значение весов показаны в виде вертикальных линий, длина которых соответствует весу. Горизонтальная линия пересекающая значения весов с надписью «Порог» показывает текущее значение порога срабатывания эффекторов. Ее положение связано со значение в поле «Порог срабатывания для всех нейронов» или ползунка рядом с ним. График позволяет более наглядно демонстрировать поведение сети при активации рецепторов или изменении параметров.
В качестве примеров рассмотрим несколько простейших примитивов и принцип расчета весов эффекторов при их возбуждении активировавшимися рецепторами. Параметры сети для всех примеров установим следующие:
Вес основных связей (Wr) устанавливается кликом по рецептору левой/правой кнопкой мыши. Для упрощения расчетов поставим их одинаковыми как 0,2.
Расчет итогового веса эффектора делается в три этапа:
Такой расчет делается последовательно для каждого эффектора при изменении статуса хотя бы одного рецептора в сети. То есть каждое изменение статусов рецепторов означает пересчет всей сети. При этом для расчета тормозного влияния делается дополнительный цикл расчетов – итераций, в которых происходит постепенное повышение учета тормозного влияния за 10 шагов. Это результат решения задачи равновесного состояния сети чисто программными методами для данного симулятора. Если бы она была создана в виде микросхемы, не пришлось бы делать пересчет каждого узла с дополнительными итерациями – веса устанавливались бы самостоятельно, как результат взаимодействия уровней напряжений элементов сети.
Теперь рассмотрим простейшие примитивы и примеры расчета весов
Три рецептора 22, 21, 31 передают свой потенциал на связанные с ними эффекторы с коээф. передачи 0,2 образуя суммарный вес на эффекторах (без учета торможения):
Так как активировался только один эффектор №117, то только он и притормаживает связанные с ним тормозными связями эффекторы № 108, 18, 27, 126, 121, 112. То есть эти эффекторы получают двойное воздействие: активирующее от активных рецепторов №22, 21, 31 и тормозное от эффектора №117. Последнее рассчитывается так: 0,6*0,2=0,012
Теперь вычитаем из суммарного веса без учета торможения тормозной вес – и так для каждого эффектора, получившего активно/тормозное воздействие:
Как видим, эффекторы №121, 112 получили только тормозное воздействие, в итоге их вес стал отрицательным. Физический смысл этого – эффектор изначально приторможен. На графике состояние весов показано более наглядно. Две вертикальных полоски слева со значением 0,28 отражают положительные веса №18, 27. Самая большая полоска справа со значением 0,6 – активный эффектор. Обратим внимание – его вес вышел за порог срабатывания (горизонтальная линия порога с уровнем 0,4) – поэтому он активировался и начал оказывать тормозное влияния на связанные с ним эффекторы. Теперь рассмотрим более сложный примитив.
Здесь активны уже 4 рецептора №22, 21, 31, 30 которые передали веса на связанные с ними эффекторы №117, 27. И теперь они начинают взаимно тормозить друг друга, передавая соседу тормозное влияние 0,6*0,2=0,12. Поэтому их итоговый вес: 0,6-0,12=0,48. Кроме того, эффектор №18 получил кроме активирующего влиянии от рецепторов №22, 21 еще и два тормозных влияния от активных эффекторов №117, 27. Поэтому его итоговый вес стал: (0,2+0,2)-(0,6+0,6)*0,2=0,16. Аналогично определился вес эффектора №126 – он также получил двойное активно/тормозное воздействие. На графике теперь мы видим два превышения порога срабатывания – это активные эффекторы. Добавим еще один рецептор в примитив и посмотрим, как изменится состояние сети.
Тут схема распределения весов становится интересной тем, что выключился активный эффектор, который без взаимного торможения оставался бы активным. Его суммарный вес за счет торможения от двух соседних стал ниже порога. То есть не будь торможения, веса эффекторов №117, 27, 126 были бы все по 0,6. Но так как теперь эта тройка начала тормозить друг друга, то их веса соответственно уменьшились на величину торможения, в данном случае 0,12. Поэтому веса эффекторов № 117, 126 уменьшились на эту величину. И оба они воздействуют на эффектор №27, уменьшая его вес на 0,12*2=0,24, устанавливая его итоговый вес: 0,6-0,24=0,36. Однако, возникает вопрос: ведь то же самое можно сказать и про другие эффекторы. № 117 тормозят №27, 126, а №126 соответственно притормаживают №117, 27. Строго говоря, любой из них мог оказаться выключенным, но выключился именно №27. То, что именно ему уготовано быть отключенным легко проверить включая/отключая в любой последовательности эти пять включенных рецепторов – при активации всех пяти всегда именно он окажется выключенным. Но в данном случае, так как суммарные веса эффекторов получились вблизи порога срабатывания, неоднозначность ситуации решилась в виде выключения №27 потому, что в алгоритме расчета весов симулятора последовательно обходятся все эффекторы в порядке возрастания их номеров. Поэтому для №27 вес рассчитывается раньше всех – и получается равным 0,36, что ниже порога, после чего он тут же выключается и перестает учитываться в расчете остальных двух весов активных эффекторов. Метод итераций при самом мелком шаге все равно будет приводить к такому результату, поэтому увеличение числа итераций ничего не решит.
В реальной нейросети тоже самое произойдет из за некоторой нестабильности параметров нейронов и случайных флуктуаций. Только там уже нельзя будет определенно сказать, какой из эффекторов окажется выключенным. Убедиться, что проблема именно в неустойчивом состоянии возле порога срабатывания можно задав веса всем пяти рецепторам 0,3 – и тогда получим уверенное равновесное состояние. Но как уже говорилось, ситуация с одинаковыми весами от рецепторов не типична для реальной нейросети, поэтому выключение №27 будет уже строго определено например при таком раскладе весов: |
Здесь уже виден эффект контрастирования – выделения более нагруженных весами эффекторов. В данном случае №117, 126 получили веса 0,3+0,2+0,2=0,7 а №27 – 0,2+0,2+0,2=0,6. Два более сильных эффектора тормозной связью 0,2 задавили более слабый №27, и взаимно понизили веса друг друга.
Добавим еще один рецептор. Здесь снова виден эффект контрастирования, но с особенностью, прежде не проявлявшейся: эффекторы №36, 117 показывают свой полный суммарный вес 0,6, как будто не испытывают взаимного торможения.
Так и есть – если посмотреть на линии тормозных связей, то видно, что эти два эффектора не связаны между собой, поэтому и не тормозят друг друга. Зато они успешно притормозили два других - №27, 126 до уровня меньше порога, отчего они выключились и прекратили притормаживать №36, 117. Поэтому оставшиеся эффекторы, вернули свой начальный вес. Это можно сравнить с качелями, где при нагрузке одной из перекладин, она падает вниз, а другая синхронно с ней летит вверх. Буквально так и произошло с этими парами эффекторов. Теперь рассмотрим практическое применение в схемотехнике нейросети симулятора эффекта взаимного торможения: как и для чего он используется. То что при этом отдельные эффекторы теряют в весе вплоть до выключения – думаю уже очевидно, но что это дает например для распознавания образов? |
Как видно из описания схемы симулятора, на элементы нейросети воздействуют два фактора: активация рецепторов и тормозное влияние активировавшихся эффекторов. Это в итоге приводит к сложной реакции нейросети с различными эффектами, имеющими принципиальное значение при распознавании образов.
Выключение самых слабо нагруженных эффекторов означает, что остаются только самые нагруженные и тем самым происходит фильтрация слабых сигналов. Это как бы самоочевидно. Но вот то, что взаимное торможение так же позволяет делать прямо противоположное, а именно выделять даже самые слабые сигналы, на первый взгляд кажется противоречивым. Ведь торможение судя по названию должно тормозить, а не усиливать. Но посмотрим на рисунок. На первом мы видим 5 активных эффекторов, 4 в группе и один отдельный. Это при уровне торможения 0,1. На втором рисунке мы видим только 2 включенных эффектора: один из группы и тот же отдельно от них стоящий №215. Это уже при максимальном уровне торможения 1. Взаимным торможением эффекторов в группе из них остался только один самый нагруженный, но так же и отдельно стоящий, не связанный с группой тормозными связями и потому не получивший тормозного влияния. При этом его вес может лишь слегка превышать уровень порога. В итоге получается, что взаимное торможение как бы выделило этот слабый эффектор среди группы более сильных потому, что большая часть из группы была просто выключена торможением. То есть контрастирование через взаимное торможение не означает усиление сильно нагруженных или ослабление слабо нагруженных эффекторов, это частные случаи эффекта, а выделение наименее заторможенных. Это может быть как наиболее сильный эффектор, а потому и меньше всего потерявший в весе, но также и просто одиночный, не связанный тормозными связями с текущими активными эффекторами.
Этот эффект мы можем наблюдать когда вдруг небольшое почесывание вдруг внезапно становится сильным зудом в виде точечного раздражения, словно укол иголкой. Таким образом могут выделяться даже очень слабые сигналы. Но если говорить от контрастировании в общем смысле как выделении признака, то это хорошо видно по следующим трем рисункам.
На первом видна область активных эффекторов, включенных областью активных рецепторов. Это при уровне торможения 0,1. Если увеличить его до 0,3 то останутся активными только эффекторы по границе области. Если увеличить его до 0,4 то активны стали только 4, которые к тому же вернули себе исходный вес. Дальнейшее увеличение уровня торможения не изменит эффекторный рисунок, так как все эффекторы, имеющие связи с этими 4 активными оказались выключенными ими же и не могут на них влиять. В итоге, в первом случае мы получили при детектировании рецепторного рисунка типа «пятно» аналогичный эффекторный рисунок в виде «пятна», при увеличении уровня торможения до 0,3 – границу контура, при увеличении до 0,4 – опорные точки примитива.
Чтобы сравнить сложные примитивы, сначала нужно выделить у них какие то признаки, что означает разбиение примитива на более простые, например разбить многогранник на отдельные линии, а длинные линии на более короткие. Это так же делается при помощи взаимного торможения, которое было рассмотрено выше на примерах, когда выключались эффекторы. Получалось как бы разбиение отрезка на пунктирную линию, а фигуры на отрезки, которые детектируются уже отдельными эффекторами. То есть задача в том, чтобы воспринимать фигуру не как одно целое, а в виде отдельных частей, которые потом можно группировать, сравнивать – что означает продолжение анализа примитива на других слоях. Хотя само по себе разбиение предопределено уже тем, что эффекторы в симуляторе охватывают только по 6 ближайших к ним рецепторов. А это не позволит детектировать одним эффектором большую фигуру – она автоматически будет распознаваться группой эффекторов. Но такое разбиение не получится модулировать (регулировать, изменять) каким то внешним параметром, например параметрами гомеостаза – и переключать контексты восприятия. Поэтому разбиение обусловленное только схемой соединения (охвата) эффекторов и рецепторов имеет мало практического смысла.
До сих пор мы рассматривали изменения сети при постоянных значениях ее параметров, только меняя образы (примитивы) на рецепторном поле. Теперь посмотрим, что будет происходить при детектировании одного и того же образа, но при изменении параметров (порога срабатывания эффекторов и уровня тормозного влияния). В описании примера контрастирования «пятна» на 3 снимках было видно, что при увеличении торможения эффекторный рисунок меняется несколько раз. Он так же будет меняться и при изменении уровня порога. А так же при изменении обоих параметров. То есть меняя параметры сети получаем возможность создания серии эффекторных рисунков при детектировании одного рецепторного. Можно сказать, что мы таким образом создаем конфигурации эффекторного рисунка, различные варианты отклика сети на один раздражитель при разных условиях.
Представим, что есть еще одна сеть, «следящая» за параметрами гомеостаза, выходные сигналы которой способны воздействовать на параметры первого слоя. И тогда мы получаем простейшую модель смены контекста восприятия, что означает смену моделей поведения, в зависимости от текущих параметров гомеостаза. Можно предположить, что именно так регулировалась нервная система у простых древних организмов, пока не возникли более сложные механизмы переключения моделей. Но она осталась в наследие и продолжает работать в первичных зонах и задает первичную корректировку при детектировании образов.
Обнаружен организм с крупнейшим геномом Новокаледонский вид вилочного папоротника Tmesipteris oblanceolata, произрастающий в Новой Каледонии, имеет геном размером 160,45 гигапары, что более чем в 50 раз превышает размер генома человека. | Тематическая статья: Тема осмысления |
Рецензия: Рецензия на статью | Топик ТК: Главное преимущество модели Beast |
| ||||||||||||