Статьи

Хорошо спланированное исследование графиков, мозгов и гремлинов

SMI32-окрашенные пирамидные нейроны в коре головного мозга. Предоставлено UC Regents Davis по лицензии Creative Commons Attribution 2.5.

Что общего между графиками и мозгами ? Во-первых, они имеют одинаковую структуру: вершины / нейроны связаны друг с другом ребрами / аксонами . Во-вторых, они оба имеют схожий процесс: траверсеры / потенциалы действия распространяются, чтобы произвести некоторое вычисление, которое является функцией топологии структуры. Если существует сопоставление между двумя доменами, то можно применить процессы одного домена (мозга) к структуре другого (график). Цель этого поста — изучить применение нейронных алгоритмов в графовых системах.

Розеттский камень графов

Прежде чем погрузиться конкретно в графики и мозги, важно убедиться, что на определенном уровне общности многие структуры реального мира имеют графическую форму. В статье « Розеттский камень для коннекционизма » ( полная загрузка ) является Santa Fe институт статьей , в которой приведены сопоставлениях между трехвалентного графом и различными динамическими системами с точки зрения из коннекционизма (то есть искусственные нейронные сети ).

«Термин« коннекционизм »обычно применяется к нейронным сетям. Однако есть много других моделей, которые математически схожи, включая системы классификаторов, иммунные сети, сети автокаталитических химических реакций и другие. Ввиду этого сходства целесообразно расширить термин коннекционизм. Я определяю модель коннекциониста как динамическую систему с двумя свойствами: (1) Взаимодействия между переменными в любой момент времени явно ограничены конечным списком соединений. (2) Соединения являются текучими, так как их сила и / или структура соединения могут меняться со временем ».

В статье д-р Дж. Дойн Фармер продолжает предоставлять « Розеттский камень » для коннекционизма . Он проводит параллели между абстрактными графическими структурами (универсальными) и реальными системами, которые уважают общую графическую форму (например, нейронные сети ). Таблица тезисов из этой статьи воспроизводится ниже с некоторыми небольшими изменениями (выделены курсивом) для определения терминологии популярной в настоящее время модели данных графа свойств, которая обсуждается во второй половине этого поста. Особый интерес для этого поста представляют первые два столбца (общий / граф и нейронная сеть / мозг).

общий Нейронная сеть Система классификаторов Сеть иммунитета Автокаталитическая сеть
узел, вершина нейрон сообщение тип антитела виды полимеров
состояние, свойства вершин уровень активации интенсивность свободное антитело концентрация полимера
соединение, край Аксон / синапс классификатор химическая реакция катализируемая химическая реакция
параметры, свойства ребер вес соединения сила и специфичность сродство реакции каталитическая скорость
правило взаимодействия, обход сумма / SIGMOD линейная резьба колоколообразной массовая акция
алгоритм обучения Hebbian , обратное распространение ведерная бригада клональный отбор подход к аттрактору
динамика графика синаптическая пластичность генетические алгоритмы генетические алгоритмы правила искусственной химии

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

Распространение Активация и мозг

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

 

Это «распространение активации» по всему мозгу приводит к человеческому познанию . Вот конкретный пример, основанный на зрении: свет проникает в глаз, поражает сетчатку , вызывает деполяризацию определенных клеток ганглиев в сетчатке, которые распространяют распространяющуюся активацию через таламус , а затем направляются в зрительную кору в задней части головной мозг. Именно в зрительной коре и вплоть до остальной части коры головного мозга распространяющаяся активация «интерпретируется» (то есть распространяется) через иерархию нейронов, которые обозначают все более инвариантные структуры. Инварианты можно понимать как другое слово для концепции, Например, независимо от того, видят лицевая сторона льва, боковая сторона льва или даже рисунок или звук льва, концепция льва реализуется. Независимо от постоянного потока, казалось бы, случайных сигналов, поступающих через сенсорную систему человека, стабильный, согласованный мир объектов — это, в конечном счете, сознательный опыт человека. Для человека мир — это не двумерное пространство быстро меняющихся цветов. Вместо этого это трехмерное пространство стабильных объектов и их физические и концептуальные отношения друг с другом. Ментальные концепции подавляют / сжимают / обобщают сенсорную новизну.

Где начинаются концепции? Начинаются ли они на верхних уровнях коркового мозга? Ответ — нет.» Концепции начинаются немедленно . Каждый шаг распространяющейся активации запускает более сложные концепции — то есть инварианты более высокого уровня. Чем дальше распространение, тем более инвариантна (абстрактна / общая / охватывающая) концепция. Ощущение активирует нейроны, которые обозначают простые понятия, такие как линии под разными углами. Эти потенциалы действия затем запускают более сложные концепции, такие как цилиндр, которые сливаются с концепциями цвета и концепциями меха, образуя хвост льва и, в конечном счете, сложную концепцию льва. «Лев» — это возбуждение различных путей, которые однозначно сходятся, чтобы выявить понятие / квалиа льва (см. « Проблема связывания»).«). Активирование распространения может быть выражено как процесс ветвления и слияния сенсорного сигнала через различные слои нервной ткани, где каждый слой содержит нейроны, которые обозначают более абстрактные инварианты .

Обучение и Поведение

Концепции вызваны реализацией других концепций. Люди изучают ассоциации между понятиями через опыт. Проще говоря, на уровне нейронов, в обучении на основе иврита , «нейроны, которые срабатывают вместе, соединяются вместе». Смежности потенциалов активации в кластере нейроны приводят их к «пачке» таким образом, что в будущем, если один нейроны пожаров, существует высокая вероятность того, что другие будут стрелять , а также. Учитывая это правило, люди связывают львов с опасностью и опасностью с бегом. Ассоциации между понятиями могут вызывать поведение («это лев, беги!»), Направляя распространение распространяющейся активации на моторную кору., Моторная кора трансформирует концептуальные действия в манипуляции мышцами, которые в конечном итоге приводят к поведению человека в мире. Время от времени, в постоянном интерактивном процессе («лев набирает обороты, бегите быстрее!»), Мы бросаемся к реальности. Мы проводим так много наших сознательных жизней, забальзамированных в паутине абстракций высокого уровня, что мы никогда не осознаем безумия неустанной новизны прямо на наших глазах. Ибо мы « являемся » корой.

Гремлины в мозге

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

ПРИМЕЧАНИЕ . Все представленные примеры относятся к версии Gremlin 1.2-SNAPSHOT +. Со времени появления Gremlin 1.1 существует несколько настроек, на которые ориентированы эти фрагменты кода.

Возможности действий

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

root.out.sideEffect{it.activation++}

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

root.out.sideEffect{it.activation++}.aggregate.filter{it.activation > threshold}

 В взвешенном графике не все ребра созданы равными. В таких ситуациях выстрел вершины A может оказать меньшее влияние на вершину B, чем на вершину C на B. Это тот случай, когда сила связи является функцией веса ребра. Чтобы убедиться, что уровень активации вершины соответствует весу ребра , можно использовать следующий фрагмент кода. Код просто сохраняет вес ребра в x и затем применяет его к активации вершины.

root.outE.sideEffect{x=it.weight}.inV.sideEffect{it.activation+=x}.aggregate.filter{it.activation > threshold}

Чтобы выполнить это вычисление, представьте его как один шаг, называемый разбросом, который принимает пороговый параметр.

	Gremlin.defineStep('spread', [Vertex,Pipe], { def threshold ->
	 _().outE.sideEffect{x=it.weight}.inV.sideEffect{it.activation+=x}.aggregate.filter{it.activation > threshold}
	});

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

root.spread(50).loop(1){true}

 

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

ПРИМЕЧАНИЕ . Активации на каждом шаге не сбрасывают обратно на 0. Активация накапливается в ходе распространения. Простое изменение шага фильтра исправляет эту ситуацию. Однако, ради простоты / читабельности, это было опущено.

filter{go=(it.activation > threshold); it.activation=0; go}

Изучение иврита

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

	root.spread(50).gather{ def vertices ->
	  vertices.each { a ->
	    vertices.each{ b ->
	      if(a != b) {
	        if(!a.out.asList().contains(b))
	          g.addEdge(a,b,"connection",[weight:1]);
	        else
	          a.outE.inV{it==b}.back(2).sideEffect{it.weight++};
	      }
	    }
	  }
	}.scatter.loop(3){true}

 

В приведенном выше коде на каждом этапе распространения «вершины, которые срабатывают вместе, соединяются вместе». Для тех вершин, которые уже имеют ребро, сила / вес их ребра увеличивается. Одним из интересных аспектов Хебба алгоритма является то , что граф обрабатывается, его структура меняется , чтобы отразить в ситуа обучения. Таким образом, запрос и манипулирование связаны между собой.

Наконец, можно сделать фрагмент кода Hebbian в один шаг, как это было ранее сделано для распространения активации. Вместе распространение распространения с обучением на основе иврита может быть выражено в Gremlin следующим образом:

root.spread(50).learn.loop(2){true}

 

Вывод

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

  1. Ингибирующие обходы : существуют возбуждающие и тормозные нейромедиаторы. Функция торможения состоит в том, чтобы уменьшить шум в сигнале, подчеркнуть концептуальные границы и в конечном итоге гарантировать, что распространяющаяся активация идет только по определенным путям.
  2. Забывание : Со временем можно обрезать маловесные ребра или «повредить» определенные области графика, чтобы стимулировать будущий рост к будущим стимулам.
  3. Иерархические архитектуры : инварианты могут быть реализованы путем использования структурных иерархий в графе. Это поддерживает классификацию, а также концепцию обучения и ассоциации.
  4. Нейронный рост : новые вершины могут быть введены в граф для поддержки генерации еще большего числа концепций и сопоставлений со стимулами.
  5. Обработка областей : можно разделить отдельные области графика и соединить их вместе, чтобы организовать структуру графика в функциональные подграфы.

Рекомендации

Хокинс Дж., Блейксли С. « Об интеллекте », Times Books, сентябрь 2004 г.

Родригес М.А., Хэм М.И., Гинтаутас В., Кунсберг Б.С. Проспект о препятствиях , мешающих внедрению современных искусственных нейронных систем. Часть 1 , Конференция «Десятилетие разума IV», Альбукерке, Нью-Мексико, январь 2009 г.

Riesenhuber, M., « Модель HMAX », Лаборатория вычислительной
когнитивной нейронауки в Джорджтаунском университете.

Родригес, М. А., « От сигнала к символу: структура и процесс в искусственном интеллекте », Центр нелинейных исследований, докторский семинар, Лос-Аламосская национальная лаборатория, Лос-Аламос, Нью-Мексико, ноябрь 2008 г.

Лангер, С.К. « Философия в новом ключе: исследование символики разума, обряда и искусства », издательство Гарвардского университета, январь 1957 г.

Хили М.Дж., Кауделл Т.П. « Онтологии и миры в теории категорий: значение для нейронных систем» , «Аксиоматез», 16 (1-2), с. 165-214, Springer, 2006.

Родригес, М. А., « Случайные обходчики на основе грамматики в семантических сетях », Системы, основанные на знаниях, 21 (7), с. 727-739, Elsevier, 2008.

Примечание к изображениям : Все изображения без титров из Википедии являются общественным достоянием.

Источник: http://markorodriguez.com/2011/07/14/graphs-brains-and-gremlin/