Мозг -- это нейроморфный вычислитель/computer, обеспечивающий вычисления для личности как при её развитии, так и при участии в какой-то деятельности (хотя в принципе для людей это трудноразличимо и часто совпадает: что там развитие-обучение-накопление опыта, а что простое использование своего достигнутого уровня развития. У людей exploration и exploitation не так легко разделимы, как в теории). Функциональность конструктивных объектов, т.е. их роль в фукнционировании надсистемы вменяется проектными ролями. Функциональные объекты предлагаются наукой и инженерией в той мере, в которой они объясняют происходящее в реальности. Если считать, что мозг функционально не вычислитель, а "непонятно чем занимающаяся часть человека, шайтан-машина неизвестно что делающая", то это игнорировать SoTA в нейрофизиологии.
Поэтому с понятиями вокруг его функционирования/рабочего_поведения/operation разбираемся в рамках вычислительного мышления/computational_thinking/computer_thinking. Именно вычислительное мышление даёт нам понятия для описания вычислений, в том числе описания мышления. Вычисления мозга на верхнем уровне, когда они обслуживают развитие и деятельность человека и его коллективов, в том числе с учётом принадлежащих этим людям и коллективам компьютеров -- это и есть мышление.
Обратим внимание, что это не computer/software engineering, то есть мы не втаскиваем вопросы конструктивного наполнения функциональных ролей в вычислителе (аппаратном, или определяемом программно), то есть не обсуждаем архитектуру мозга как физического вычислителя (задача инженерии), то есть не занимаемся вопросами нейрофизиологии. И не обсуждаем, что там в мышлении выполняется живым мозгом, что их коммуницирующим коллективом, что мозгом с телом, что мозгами с компьютерами, инженерной задачи не стоит. Но вот разобраться с вычислениями, чтобы потом обсуждать поддержку функциональности этого вычислителя конструктивными его частями -- вот этим мы и займёмся в текущем посте. Учитываем, что вычислители и их вычисления крайне многоуровневы:
-- физика вычислителей (логика на транзисторных гейта, квантовые цепи на разных технологиях и т.д.)
-- физические вычислители (сами по себе многоуровневые)
-- вычислители локалистских представлений (классическая информатика, "алгоритмы Кнута" и соображения Алана Кея)
-- универсальные вычислители (интеллект/NI и AI и их приложения).
В этом посте делается попытка предложить терминологию для описания универсальных вычислителей. Основные понятия, которые тут вводятся уже обсуждались в постах
https://ailev.livejournal.com/1547260.html,
https://ailev.livejournal.com/1548016.html, на семинаре ШСМ по понятийному минимуму мышления
https://www.youtube.com/watch?v=4eOPE9zQY2I, и ещё немного на семинаре по модели Graziano для сознания и внимания
https://www.youtube.com/watch?v=lyOQhPlSxgI. Без рассмотрения этих материалов этот текст понимается плохо, будете спотыкаться в использовании самых разных слов (например, "интеллект" понимается по Chollet,
https://ailev.livejournal.com/1498481.html -- и не нужно поэтому задавать вопросы про то, есть ли интеллект у компьютера, на эти и подобные вопросы отвечается в других текстах. Равно как в других текстах обсуждается понятие вычислителя, понятие алгоритма и т.д.. Они означают не то, что написано было в вашей любимой книжке и дано в вашем любимом словаре, а то что написано в моей любимой книжке и моём любимом словаре -- не менее авторитетном, чем ваши, и их я не сам придумал).
Вычислительное мышление нам нужно как раз, чтобы дать набор понятий, удобных для обсуждения самых разных вариантов универсальных вычислений, реализованных конструктивно человеческим мозгом, компьютерами с разной физикой (электронными, квантовыми, оптическими), а также сетями из людей и компьютеров (например, вычислений какой-нибудь компании, которые она делает в ходе её деятельности -- в том числе вычислений, которые делает компания и своими исследовательскими лабораториями и производственными подразделениями, и даже службой маркетинга).
Сначала мы должны сформировать какой-то понятийный минимум (набор понятий, а хоть и безымянных), а затем выбрать термины для этих понятий. Текущий момент: определяем понятия, уточнять терминологию будем потом -- хотя хоть какие-то слова нужны уже сейчас. Главное сейчас -- это определиться с типами, использующимися в разговоре об универсальных вычислениях (чтобы не было дребезга в понимании у людей с работающей машинкой типов в голове) и дать таксономию вычислений, связанную с типами. Тогда просто по упоминанию того или другого типа вычислений можно будет определить, о каком контексте идёт речь, какие там объекты в окружении вычисления и что происходит. Коммуникацию между вычислениями пока исключаем, но потом добавим.
Ещё раз: слова потом будем менять простой подстановкой (примерно так же, как в курсе системного мышления "стейкхолдера" заменили "проектной ролью", а "определение системы" заменили "описанием системы"). Сейчас важны понятия, отображаемые этими словами -- а слова потом найдутся, причём для одного и того же понятия слова могут оказаться разными в разных сообществах.
Универсальные вычисления естественных и искусственных интеллектов и их приложений будем называть мышлением. Естественный интеллект -- это обеспечивающая универсальные вычисления часть вычислителя-мозг. Дальше можно обсуждать в рамках extended cognition, насколько в состав вычислений естественного интеллекта можно включать вычисления, выполняемые компьютерами. Скажем, если я погуглил в ходе написания этого поста -- это естественный интеллект работал, или уже полуискусственный интеллект, поскольку вычисления в датацентрах Гугля тут тоже поучаствовали? Опять же, что естественного в человеческом интеллекте? Без inductive biases, привносимых трансдисциплинами/методологическими дисциплинами, а эти трансдисциплины абсолютно искусственны сами по себе, никакого традиционно понимаемого "естественного интеллекта" нет, есть Маугли из джунглей, который даже разговаривать не умеет. Поэтому дальше не будем различать в мышлении "естественную" и "искусственную" составляющую, неявно отсылающую к конструктиву универсального вычислителя: на вакуумных ли лампах он, транзисторный на самых разных полупроводниках, квантовый на разных технологиях, или биологический, то есть "мозг в теле", а то и "мозг с телом" embodied intelligence традиции или даже "мозг с телом и куском окружающей среды" в extended mind традиции. Это всё оказывается про инженерию, неважно в вычислительном мышлении.
Мышление (все вычисления универсального уровня, у СМД-методологов это "мыследеятельность") специализируется по его функции до:
1. Познание/learning, вычисление интеллектом набора понятий ("формирование понятий"), организация внимания на объектах для последующих прикладных вычислений. Это тот самый learning из AI, который делает интеллект как вычислитель для learning. У СМД-методологов это "чистое мышление" + "коммуникация". Можно называть это "интеллектуальным мышлением" (мышлением интеллекта), но вообще-то слово "мышление" лучше резервировать только для всех вычислений универсального уровня.
Тут нужно отметить, что мы обозначаем словом "познание" и познавательную деятельность/практику людей в мире (эпистемология, гносеология тут используют слово cognition), и работу вычислителей-интеллектов (а люди из AI используют слово learning для этого). Не обращаем на это внимания, ибо вычислители физичны, что позволяет им заниматься в принципе и практикой. Входят ли датчики и актуаторы в состав вычислителя, или находятся в его окружении (практика это выход в физический мир) -- это вопрос отдельный, в embodied cognition и extended mind они вполне себе входят в состав вычислителя. Так что "деятельность/практика" и "вычисления" оказываются разве что не синонимами, "практика = мышление/вычисления и коммуникация по дисциплине и влияние на указанные дисциплинами объекты в мире + технология как инструменты для влияния на мир и вычислитель". Убирать онтологическую путаницу будем потом, когда появятся какие-то проблемы с таким использованием понятий "деятельности" и "вычислений" (у СМД-методологов недаром было введено понятие "мыследеятельности").
1.1. Познание может быть исследованием/self-supervised learning, речь идёт о выявлении в мире объектов внимания (новых понятий), когда они никому не известны, и их нельзя получить каким-нибудь хитрым импортом от других вычислителей, т.е. в ходе коммуникации с другими интеллектами. Интеллект тем самым -- вычислитель в том числе для исследований, инструмент познания/cognition/learning-как-в-deep-learning. У СМД-методологов вычисления исследования соответствуют "чистому мышлению" (но в виду физичности вычислителя всегда остаётся вопрос о соответствии результата вычисления как виртуальной модели мира состоянию самого мира -- computer science тут как раз наука о доказательствах, подробней см. у David Deutsch, чуть-чуть я говорил об этом тут:
https://ailev.livejournal.com/1540866.html).
1.2. Познание может происходить в виде обучения/обучения_с_учителем/supervised_learning, когда речь идёт об импорте одним интеллектом результатов работ других интеллектов.У СМД-методологов этому соответствует коммуникация, и эту коммуникацию (у нас это обучение) нельзя убрать из мышления (наше общее "мышление" методологи называют "мыследеятельность"), ибо в случае понятийной работы выполняется замечание David Deutsch, что обучение интеллекта как универсального вычислителя происходит не путём его "программирования", а путём выдвижения гипотез и уточнения объяснений по мере получения в коммуникации (а хоть и через книги, а хоть и в упражнениях на тренажёрах, необязательно с живым учителем) информации о понятиях и их связях от других интеллектов. То есть в познании обучение имеет акцент вычислений интеллекта в ходе коммуникации с уже что-то познавшим интеллектом и с окружающей средой, а исследование -- когда никакого познавшего интеллекта нет, поэтому общаемся только с окружающей средой. В познании, реализуемом интеллектом, конечно существуют самые разные варианты сочетания исследования и обучения: алгоритмы интеллекта в разных ситуациях могут быть очень разными (взять хотя бы life long learning, pretrain-finetune для языковых моделей и т.д.).
2. Вывод/inference как прикладное мышление/вычисление с уже имеющимися понятиями как объектами внимания в вычислении (но я бы избегал это называть "прикладным мышлением": слово "прикладное" потеряется в речи, и опять всё запутается в винегрет, познание и вывод перестанут различаться -- они и так сильно переплетены в жизни, ровно поэтому важно их хоть как-то различить). Пока словом пусть будет "вывод" ("познавшие какую-то предметную область люди затем делают прикладные выводы" - очень странно сказано, но зато точно. У СМД-методологов вывод -- это"мыследействие".
Если познанием занимается интеллект, то выводом занимается порождаемое им приложение/application, или даже (для всех выводов, которые делает универсальный вычислитель в ходе мышления) -- приложения. Тут проблема в том, что в сложных когнитивных архитектурах ("болваны для искусственного интеллекта",
https://ailev.livejournal.com/1356016.html) вывод/inference и познание/learn существенно переплетены в разных алгоритмах. Например, часто используют сетку-учитель и сетку-студента, которые учатся по-разному и ещё и учат друг друга, или в в разных вариантах GAN это сетка-генератор и сетка-дискриминатор, в эволюционных алгоритмах и алгоритмах обучения с подкреплением (в нашей терминологии это не только "познание с подкреплением", учитывая появление алгоритмов не только обучения, но и алгоритмов познания для self-supervised reinforcement learning и
https://en.wikipedia.org/wiki/Intrinsic_motivation_(artificial_intelligence). Или вот три нейронных сетки в модели внимания и сознания Graziano. Тут же можно обсуждать различия исполнителей и выполнителей (в смысле из "Программирования для математиков" Кушниренко и Лебедева, первые два раздела первой главы --
https://yadi.sk/i/virGAvARqqtMhQ, хотя для случая неимперативного программирования и тем более вычислений в распределённых представлениях нельзя применить тамошние идеи "в лоб", но если речь идёт о полнотьюринговых вычислениях, а все они таковы, что обсуждается у того же Дэвида Дойча, то различение "исполнитель-выполнитель" может оказаться очень полезным. Аналогичные различения пытался ввести Алан Кей как chain of meanings). Но это всё нужно будет рассматривать уже потом, для более подробного изложения.
А ещё проблема вывода в случае уже известных понятий трансдисциплин (рассуждения в рамках системного мышления, это ж "вывод внутри познания", "вывод внутри работы интеллекта", признание того, что в составе интеллекта тоже работают приложения) сразу будет плохо пониматься. Но это обычное дело в информатике: разобраться, что там "внутри", а что "снаружи" каких-то вычислений трудно (для разработчика прикладной программы операционная система вроде как "снаружи программы", но разработчики операционной системы считают, что программа как раз внутри их системы. Framework и library вроде как обозначают одно и тоже, но прикладной код вызывает library, но вызывается сам из framework. Так и тут в общем случае универсальных алгоритмах: при проблемах в выводе в приложения вызывается интеллект, а при проблемах в познании в интеллект вызываются приложения.
Интеллект и вывод работают в некотором цикле развития (ибо вычисления обычно идут в рамках эволюционной эпистемологии). Проблематизация идёт путём обнаружения невозможности вывода на текущей версии дисциплин, на понятийной базе которых идёт вывод. И тогда подключается интеллект, чтобы преодолеть эту невозможность вывода из-за обнаруженных противоречий. Это подробней обсуждается в других текстах (само слово "проблематизация", в том числе в связи с поминающимся тут СМД-подходом в
https://ailev.livejournal.com/1425331.html, а также материалы по бесконечному развитию в "Образовании для образованных 2020", в том числе open-endedness
https://ailev.livejournal.com/1463013.html и книжки Дойча про бесконечное познание). У нас тут всё-таки вычислительное мышление, а не эпистемология.
DISCLAIMER -- что в тексте не помянуто, то не значит, что это мы не учитываем. Скорее всего, учитываем. Но мы не можем в коротком тексте написать "теорию всего", упомянуть все детали. Что не помянуто, то просто не помянуто, есть и другие тексты (впрочем, я об этом уже написал в начале этого текста и даже дал ссылки на другие работы, это для тех людей, кто с первого раза на подобные замечания не реагирует. Самодостаточными являются обычно только тексты художественных рассказов, для их понимания не нужно заглядывать в другие тексты).
* * *
Предложенные понятия и термины для них более-менее совпадают с традиционным "бытовым" словоупотреблением, поэтому ошибок будет меньше в силу хоть какой-то их представленности в культуре. Но это, конечно, очень радикальное предложение, оно требует проверки его использования при рассуждениях/выводе с использованием понятий других трансдисциплин. Например, "познание" цепляет эпистемологию/научное мышление, "вывод" цепляет логику, а ещё отечественные гносеологи обязательно проявятся со своими претензиями на термины. Но это нормально: лучше иметь более универсальный и более маленький набор понятий, который позволяет делать объяснения/модели мира, чем много самых разных несовместимых друг с другом и никак не соотносящихся понятий. Универсальность и компактность рулят, в том числе в трансдисциплинах.
UPDATE: обсуждение в
https://www.facebook.com/tseren.tserenov/posts/3386482644783001?comment_id=3387214404709825, в блоге чата
https://t.me/ailev_blog_discussion/5757, в фейсбуке
https://www.facebook.com/ailevenchuk/posts/10220077198454294