Архитектура (ядро)

Подведем некоторые итоги нашей философии, из которой непосредственно следует предлагаемая архитектура.

  • Интеллект есть НЕ какой-то отдельный процесс от жизни, вырванный из природы и вставленный в человека или машину — это продолжение процесса эволюции, ее органичное целое. Эволюция движется диалектически. И то, что удалось ей сделать в верхней точке своего движения — это создать непосредственно такое же движение, каким является она сама. Некоторым образом, интеллект фрактально подобен своей матери, породившей его, он движется также, как и эволюция.
  • Эволюция началась со случайного отделения части от целого. Последующее случайное же повторение такого возникновения привели к возникновению стабильных систем, реагирующих на изменения во внешней среде. Когда системы стали настолько сложны, что получили возможность выстраивать свое поведения на изменения поведения, у них появилась память. И весь этот процесс вместе взятый с дополнением возможности управления памятью мы называем теперь интеллект.
  • Интеллект есть ошибка отделения части от целого, развитого до уровня управления ей. Фактически, это ошибка, управляемая собой. Ключевым моментом является использование в нашей модели Графа распространения ошибки (ГРО) :
  • Интеллект должен развиваться в той среде, в которой будет использоваться. И чтобы мы в конце концов смогли понять его, а он нас, он должен воспитываться человеком, жить с человеком и себе подобными существами.
  • Как бы ни выглядел на сегодняшний день ИИ, он будет на нижнем уровне представлять собой процессорные операции над данными в памяти устройств. Какую бы объектную модель, какие бы хитрые структуры мы не использовали — это все дань нашему не пониманию. Это энерго- и ресурсозатратно. Поэтому надо попытаться опуститься как можно ниже в нашей существующей архитектуре компьютеров и использовать напрямую ее возможности.

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

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

 

Ядро архитектуры представляет собой набор файлов, диалектически связанных в соответствии с ГРО. Каждый файл разбит на клетки (ячейки) — наименьшие структурные единицы архитектуры. Потоками состояний ячеек и передачи данными между ними и между файлами занимается виртуальная машина (ВМ).

Файлы

Файлы ядра располагаются на жестком диске и отображаются в ОЗУ при использовании виртуальной машиной с помощью механизма отображения файлов в память (memory map). Это позволит работать с файлами напрямую, предоставляя операционной системе возможность контролировать страницы памяти, подгружать и сбрасывать нужные данные оптимальным способом.

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

Ячейки

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

P: Первый байт ячейки обозначает ее тип (нейрон, граничная клетка, визикула и т.п.). Когда ВМ считывает первый байт, она выбирает нужный алгоритм, в соответствии с которым необходимо обрабатывать содержимое этой ячейки.

Для примера, рассмотрим ячейку — вставочный нейрон.

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

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

ABCD байты описывают структуры связей этой клетки со своими соседями или дальними ячейками.

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

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

Виртуальная машина (ВМ)

ВМ представляет собой многопоточную программу-интерпретатор, которая постоянно анализирует состояние всех ячеек и интерпретирует это в команды процессоров. 

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

Особенности архитектуры

Такая архитектура обладает целым рядом преимуществ, по сравнению с существующими:

  1.  Возможность использования самых разнообразных алгоритмов, придуманных нами для нужд ИИ:
    • Нейронные сети. Можно придумать типы клеток, способные реализовывать алгоритмы искусственных нейронных сетей или даже такой тип, который инкапсулирует в себя целую сеть (т.е. в одной клетке-ячейке некая стандартная обученная сеть с tensor-flow, к примеру)
    • Клеточные автоматы. Можно представить файл, хранящий ячейки не просто одномерным массивом, а двух или сколько угодно мерным массивом ячеек. И описать некоторые типы ячеек и правила для них, которые ведут себя подобно клеточным автоматам, меняя либо свой тип, либо вещества либо связи и вообще что угодно по правилам КА.
    • Генетические и эволюционные алгоритмы. К примеру, если клетка не может приспособиться, перепробовав все варианты изменений, или при появлении неких иных условий, связанных со средой (например, вокруг у клеток очень много энергии или питательных веществ), — то клетка может мутировать. Можно придумать скрещивание клеток и изменение ДНК у дочерних клеток. Можно придумать появление и превращение стволовых клеток и т.д. и т.п.
    • Метапрограммирование. Фактически, меняя код клетки, мы меняем саму программу. Можно сказать, что мы получаем некую программу, пишущую саму себя под давлением внешней среды.
  2.  Работа памяти.
    • Не нужны ни реляционные ни графовые БД. Память обеспечивается просто фактом состояния ячеек — их веществами, структурами связей и взаимным расположением ячеек.
    • Не нужно заботиться о сохранении и считывании данных в неких структурах. Файлы и есть весь наш организм. Работа ведется сразу в файле, исключая промежуточные звенья.
    • Освобождается много места ОЗУ, занимаемая в стандартных архитектурах объектами или таблицами, описаниями и т.п. Ячейка-клетка является самоописательной структурой.
  3. Обучение.
    •  Обучение и жизнь системы — это неразрывный процесс. Клетки приспосабливаются к получению и передаче веществ наилучшим образом. Из этих маленьких целей у каждой клетки порождается большая цель всего организма.
  4. Соответствие теории интеллекта.
    •  Приспосабливаемость клеток внутри каждого файла вынуждает к постепенному успокоению — своеобразному научению клеток на новую информацию. При этом структура, копирующая ГРО не позволяет клеткам «успокоится» окончательно. Это приводит к тому, что система решет задачи наилучшим возможным образом при неограниченных временных ресурсах.