Как стать автором
Обновить

Ассоциативная самозамкнутая сеть. Что нужно для создания сильного ИИ

Время на прочтение6 мин
Количество просмотров3.7K

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

Цель работы — создание Сильного ИИ.

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

Создание сильного ИИ, способного оперировать большими объемами знаний и выполнять задачи логически, в первую очередь требует создания соответствующей структуры данных, на базе которой все будет строиться. Основной проблемой существующих интеллектуальных систем является свойственное поведение и/или работа со статистикой и мат. анализом, но не логика.

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

Условия, которые нужно выполнить для достижения цели:

  1. Основной код ИИ должен быть компактен и выполнять лишь связующую функцию, дабы минимизировать свойственное поведение.

  2. Отделить процессы мышления и принятия решений, а также базу знаний от кода базы данных. Это позволит изменять и добавлять элементы (способы мышления и знания) непосредственно во время работы.

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

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

Небольшие аналогии для понимания темы

Мой автомобиль имеет белый цвет. Это простое знание. Без него были ли вы умнее или глупее? Навряд ли это как-то изменило ваш показатель интеллекта. Экваториальный радиус земли примерно равен 6.4 тыс.км. Многие люди скажут, что это знание увеличит вашу эрудированность, но интеллект ли?

А вот ещё одно небольшое знание — ничего фактически не значащая печать увеличивает важность письма в глазах других сотрудников. Например таким образом имперсонатор Фред Демара увеличивал вероятность получить должность, отправляя письма в заведомо неправильные отделы, где на письма ставили соответствующую печать и пересылали в подходящие отделы фирм.

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

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

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

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

Результатом всего вышесказанного является следующая структура для хранения данных:

Рис. 1 Ассоциативная самозамкнутая сеть
Рис. 1 Ассоциативная самозамкнутая сеть

Работа со сложными объектами или умозаключениями как с единым целым позволит одновременно как увеличить производительность, так и делать масштабные логические конструкты простыми для восприятия и интерпретации.

Как в нейросетях или в человеческом мозге нейроны связаны друг с другом, так же и здесь каждый объект связан со списком объектов. При этом характеристикой связи является аналогичный объект. Все объекты относятся к одному типу и обрабатываются одними и теми же алгоритмами, основную роль играет их месторасположение в структуре. Объект <ObjA> является характеристикой связи с объектом <ObjB>. И для вопросов оптимизации был добавлен компонент <p> — внутри какого объекта расположена данная пара.

В соответствии со структурой хранения данных каждый объект можно рассматривать как список, где каждый элемент имеет комментарий (характеристику связи). Работа ИИ производится за счет вызова всех объектов из списка с характеристикой связи <TODOOBJ>. Каждый вызванный объект будет аналогичным образом вызывать собственный список <TODOOBJ>.

В дальнейшем вызов объектов, которые вызовут другие объекты будет называться Возбуждением. Вызовом будет называться возбуждение объекта, который будет исполнять прописанный в объекте код, вместо или параллельно с непосредственным вызовом объектов из собственного списка. Вызываемые объекты будут называться примитивами.

И непосредственно код ИИ:

#define TODOLIST  currentDuoPList->duoP->p->duoPList->duoP->objB->duoPList->nextDuoPList->duoP->objB
#define SYSTEMOBJ currentDuoPList->duoP->p->duoPList->duoP->objB

class ObjTO
{
public:
	struct DuoP {
		ObjTO* objA;
		ObjTO* objB;
		ObjTO* p;
	};
	struct DuoPList {
		DuoPList* prevDuoPList;
		DuoPList* nextDuoPList;
		DuoP* duoP;
	};
	DuoPList* duoPList;
	void callIt(DuoP* caller, ObjTO* dataIn) {
		ObjTO* data = dataIn;
		ObjTO::DuoPList* currentDuoPList = this->duoPList->prevDuoPList; //First list is a system list

		while ((currentDuoPList->duoP->objA != (TODOLIST)) && (currentDuoPList->duoP->objA != SYSTEMOBJ))	{
			currentDuoPList = currentDuoPList->prevDuoPList;
		}
		currentDuoPList = (currentDuoPList->duoP->objB)->duoPList->prevDuoPList;
		do {
			currentDuoPList->duoP->objB->callIt(currentDuoPList->duoP, data);
			currentDuoPList = currentDuoPList->prevDuoPList;
		} while (currentDuoPList->duoP->objA != SYSTEMOBJ);
	}
};

Цикл перебирает элементы в обратном порядке, т. к. это будет полезно для оптимизации ИИ в случае использования массивов взамен двусвязного списка.

Итог

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

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

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

З.Ы. Через пару-тройку дней опубликую дополнение на несколько страниц, описывающее под каким ракурсом на данный ИИ смотреть и как вообще с ним работать.

УПД. Дополнение, которое отвечает на часть вопросов тут.

Теги:
Хабы:
Всего голосов 7: ↑4 и ↓3+1
Комментарии14

Публикации

Истории

Работа

Программист C++
133 вакансии
QT разработчик
8 вакансий

Ближайшие события