Квадрологика и ускоритель ИИ

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

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

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

Единственно разумный путь, использовать обычные двоичные КМОП инверторы и ключи (уже имеющиеся в FPGA), но организуя их для реализации правил Квадрологики. Естественно, что от обычных процессоров, ОЗУ и устройств долговременной памяти, а также от работы с обычными числами и символами отказываться, ни кто не собирается. Данный «ускоритель» может быть дополнением, к существующей архитектуре, используемой в универсальных компьютерах. В перспективе возможно проектирование самостоятельных гибридных устройств.

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

Помимо ускорения работы, за счёт того, что исключаются ветвления (необходимые при бинарных да/нет) при обработке 4-ёх значных чисел, очень важен механизм работы с неизвестным (безразличным) в каком-то из параметров, характеризующем сущность, в отличие от обычных систем, генерирующих ошибку при недостаточности данных. При этом возможное состояние осторожности, при принятии решения СИМ, одно главных особенностей, подобно таковой у живых существ, влияющих на их активность. Борьба между страхом и любопытством, основа адаптации в меняющейся среде.

Квадрологика хорошо оптимизирует работу с деревьями условий, в узлах, вместо обычных да/нет, оптимально использовать положительно/средне/отрицательно (больше/равно/меньше) или неизвестно (безразлично). Соответственно при ветвлениях и циклах, аналоги операторов типичных языков if, case, for, while (do) должны уметь работать в таком режиме. К примеру, сравниваем a и b:
(if с a?=b (f1 …) (f2 …) (f3 …) (f4 …))
В результате используем квадрологику. Если a больше b, то выполняется первая функция, при равенстве вторая, если меньше то третья, а если один из операндов неизвестен, то выполняется четвертое выражение, при значении осторожности с равном PO. В случае осторожности, со значением равным NE или AV, может быть выполнено одно из первых трёх выражений.

На аппаратном уровне будет возможна генерация случайных чисел. Также вычислительная система должна включать такие значения как плюс и минус бесконечность, возможность работы как с бесконечно большими, так и бесконечно малыми значениями. Не должно быть исключений и критических ошибок, для каждого возможного условия должно быть решение, пусть оно будет даже UN (неизвестно). Это в свою очередь, для простых алгоритмов приведёт к генерации случайного значения, при принятии решения, а в исключительном случае (когда СИМ КИР будет особо осторожен) задействует расширенные алгоритмы для уточнения значений.

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

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *