К дифференцируемым концепциям когнитивных архитектур
В классической работе «Unified Theories of Cognition» (1990) Ньюэлл ввел понятие «когнитивной архитектуры» и определил её как «символьную систему» (symbol system). КА стали чрезвычайно популярной топикой исследований в сфере ИИ или рядом с оной, потому как КА не обязательно адресует исключительно искусственные архитектуры. Более поздние переопределения понятия, которые мне импонируют звучат так:
Когнитивная архитектура — это гипотеза о неизменных структурах и процессах, которые в совокупности производят разум, будь то естественный или искусственный.
Rosenbloom P. S. et al — The Sigma cognitive architecture and system (2016)
Интуиции в определении когнитивной архитектуры отличаются от иных «архитектур» только полем применения, в остальном это не более чем стандарт отделения постоянной части устройства от переменной, плана от реализации, функции от структуры, простоты от сложности и преобразования от состояния. Это, несомненно, важнейший аттенциональный манёвр и чрезвычайно успешная институализированная (укоренённая в социализированных аттенциональных протоколах) интеллектуальная практика. Для меня лично понимание этой схемы было сродни просветлению, и дзенской палкой в 2002 году сработала книга Коплиена «Multiparadigm design for С++» с его ясным изложением роли commonality и variability в дизайне (и мышлении).
Однако, эти дихотомии, полезные в применении, создают сложность для рефлексии. Дискретность схем/категорий «переменного» и «постоянного» ведёт к нерегулярным структурам рефлексии, к удвоению теоретической оснастки (нужно объяснять и одно, и другое, они несводимы), к оперированию неуправляемыми нормами (простоты и сложности), в конце концов — к некой форме патологичного дуализма, вроде «функционализм против структурализма». Это всё приводит как минимум к увеличению затрат на теоретическое конструирование (нужно решать для двух случаев), к «закостыливанию» теории, к массе ad-hoc решений для компенсации рассогласованности и потерь управления.
Решение, очевидно, в унификации: нужна единственная позиция, для которой две «противоположности» становятся регулярными инстанциями с разной параметризацией. Что и подпадает под общий тренд на дифференцируемость. В случае с КА это можно назвать дифференцируемыми когнитивными архитектурами. При таком подходе «постоянная» часть архитектуры отличается от «переменной» лишь неким параметром стабильности. Двигаясь дальше в унификации и развития дифференцируемости, нужно уложить на общую платформу и все остальные дискретные категории: структуру, реализацию, простоту и пр. Что, как постановка задачи, выглядит жутко эклектично и при решении в лоб через какие-нибудь мутные индукцию или генерализацию, привело бы к шатким эзотеричным конструкциям.
На помощь, как часто в УЭ, приходят два манёвра:
1. метастазирование, создания обеспечивающего эшелона рефлексии и исполнения. Это позволит оставить онтологию когнитивной архитектуры в том удобном виде, в какой она есть, с дискретными дихотомиями, но скоррелирует с этим уровнем рефлексии архитектуры дополнительный метауровень.
2. конструирование наблюдателя — также дополнительный эшелон рефлексии, но уже потребляющий когнитивную архитектуру, как конструкт, а не обеспечивающий её. В эшелон «наблюдателя» выводятся часть параметров, происходит определённый decoupling, что сильно снижает общую сложность и повышает управляемость. Этот манёвр с «наблюдателем» основывается на конструктивистской установке (в простом виде «наблюдаемое неотделимо от наблюдателя») и при прилежном применении элиминирует из дискурса множество неповоротливых для областей высокой абстракции концептов, вроде «информации».
Сама эта обеспечивающая унифицирующая модель, позволяющей дифференцировать дискретные понятия КА, представляется некоторой специализирующей надстройкой над общей моделью аттенционального процессора, который выступает предельным уровнем моделирования в архитектурах УЭ.
Кому этих выкладок мало для головной боли, может попробовать представить, что выстроенная таким образом дифференцированная КА должна использоваться для рефлексии и конструирования самого процессора. Подобно тому, как компилятор С++ используется для создания компилятора С++. За исключением первой версии — бутстрапа. Который конструируется сообщениями в этом канале.