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

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

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

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

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

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

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

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

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

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

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

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

One thought on “Квадрологика и ускоритель ИИ”

  1. Для моделирования этой задачи необходимо написать 4 отдельные экспертные системы для «четырех состояний» (неизвестно – UN, среднее – AV, положительно – PO, отрицательно – NE).

    Написание «экспертных систем» их обучение и наполнение хорошо описаны в течение тридцати лет.
    «Зкспертные системы» хорошо себя зарекомендовали в медицине.

    Каждая экспертная система должна решать задачи по Вашей логике.
    Все 4 системы можно объединить пятой для решения Ваших задач.

    ЦИТАТА
    Эта логика будет основываться на четырёх состояниях, причём дело не в числе состояний их число минимально, главное возможность работать с неизвестными и средними значениями:

    • неизвестно – UN,
    • среднее – AV,
    • положительно – PO,
    • отрицательно – NE.

    Каждая экспертная система должна решать задачи по Вашей лолгике т.е.

    ЦИТАТА
    В добавок, к этим четырём значениям, возможно использование коэффициентов используемых в расширенных алгоритмах, по аналогии с нечётко логикой и реализуемых «обычными» числами:
    • коэффициент достоверности знания – CRK,
    • степень приближенности значения – DAV,
    • коэффициент осторожности

    Соответственно первый – определяет насколько значение, не являющееся UN, может быть достоверным, к примеру, объект сам наблюдал или даже мог измерить какое-то значение и ему ни свойственно не верить себе, или наоборот информация поступила из ненадёжного источника.
    Второй коэффициент делает условия более мягкими, может быть как положительным, так и отрицательным. К примеру, значение AV, но тяготеет к NE, или значение более чем PO.

    В двоичном виде это представляется так:
    • неизвестно – UN – 00
    • среднее – AV – 11
    • положительно – PO – 10
    • отрицательно – NE – 01

    Логическое умножение (конъюнкция):
    • PO&NE=AV
    • AV&NE=AV
    • AV&PO=AV
    • AV&AV=AV
    • PO&PO=PO
    • NE&NE=NE
    • UN&UN=UN
    Очень важным элементом квадрологики является возможность гибкой работы с данными, имеющими неопределённое (неизвестное) значение, с использованием коэффициента осторожности.
    При наличии неизвестного состояния, на одном из входов, решения принимаются исходя из коэффициента осторожности, при его низком уровне.
    • PO&UN=PO
    • AV&UN=AV
    • NE&UN=NE
    Высокое значение осторожности (плюс бесконечность), при наличии значения UN хоть в одном операнде (их может быть больше 2) всегда даёт ответ UN. При большем чем 2 числе операндов, ответ будет зависеть от соотношения количества операндов с неизвестными значениями, к известным и значения коэффициента осторожности. Если этот коэффициент не задан, то его значение по умолчанию среднее.

    Логическая равнозначность (эквивалентность):
    Соотношения для логического сложения (дизъюнкции):
    • PO+NE=AV
    • AV+NE=NE
    • AV+PO=PO
    • AV+AV=AV
    • PO+PO=PO
    • NE+NE=NE
    • UN+UN=UN
    • AV+UN=AV
    • PO+UN=PO
    • NE+UN=NE
    Эквивалентность:
    • PO>NE=NE
    • AV>NE=NE
    • AV>PO=NE
    • AV>AV=PO
    • PO>PO=PO
    • NE>NE=PO
    При очень осторожном поведении:
    • UN>UN=AV
    • AV>UN=NE
    • PO>UN=NE
    • NE>UN=NE
    При средней осторожности:
    • UN>UN=AV
    • AV>UN=AV
    • PO>UN=NE
    • NE>UN=NE
    При низкой осторожности:
    • UN>UN=PO
    • AV>UN=PO
    • PO>UN=AV
    • NE>UN=AV

    Эквивалентность можно также использовать для более чем двух операндов, но тогда она будет иметь несколько другое значение (учитывая плоскую структуру FPGA, максимальное число операндов будет 8 ) и один операнд будет ведущим, а остальные сравниваться с ним. Результат будет также зависеть от уровня осторожности. Для программной реализации проще задать эти соотношения таблицей.
    Отрицание изменяет PO на NE и наоборот, значение AV и UN при отрицании не меняются, практически же первый и второй биты просто меняются местами.

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

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