Я не знаю, как она точно называется. Феноменология, эмпирио-критицизм, махизм — вот близкие течения. Ближе будет рациональность по Юдковскому. Формализация данной теории называется AIXI.
Идейно похоже на научный метод, но немножко шире. Придумал не я, лишь немного систематизирую и прохожусь по известным мне возражениям.
В какой-то мере данный подход альтернативен философским течениям материализма и идеализма, а кроме того, он лежит в основе одной из теорий ИИ.
Смысл подхода в следующем.
Эмпиризм
Мы познаём мир через некие «сенсоры». То есть какую-то информацию мы объявляем «наблюдением», логики в нём не ищем, обоснований не требуем — относимся так, как будто нам этот массив данных сформировал некий датчик. Если датчик сбоит — значит, информация будет искажена, зашумлена, смещена. Мы всё равно её считаем своим сенсорным входом. «Датчик сбоит» — это уже возможный вывод, а мы пока никаких выводов не делаем.
Далее, мы про некоторые утверждения говорим «они относятся к реальности» — в случае, если из этого утверждения можно вывести какие-то прогнозы. Пусть даже прогнозы вероятностные — это неважно. Если высказывание хоть как-то меняет наши ожидания по поводу того, что мы увидим на сенсорах — оно касается реальности. Если же нет — значит, высказывание не о реальности. В сомнительных случаях имеет смысл уточнять, что имел в виду автор теории, в терминах прогноза опыта. Например, утверждение «я положил яблоко в холодильник» относится к реальности в том смысле, что я ожидаю или увидеть завтра это яблоко в холодильнике, или увидеть его следы, если кто-то его забрал. Может, реально я и не клал яблоко, и я его не найду. Всё равно, это утверждение про наш мир, просто оно ложное.
А какое утверждение не относится к реальности? Например, теорема Пифагора. Если мы вспомним определения точек и прямых, то окажется, что это абстракции. То есть в реальном мире нет никаких точек и прямых, это выдумка математиков. Но если сопоставить вымышленным точкам и прямым реальные объекты, и находится пространстве, достаточно близком к Евклидовому, то выводы теоремы Пифагора будут применимы к наблюдаемым объектам.
Вероятности
Вероятность мы интерпретируем в контексте теории принятия решений, то есть высказывание P(A)=1/3 — значит, что если мы будем ставить на подобные события (то есть любые с P=1/3) деньги с коэффициентом 2/3 к 1/3, то в среднем выйдем в ноль, если 3/4 к 1/4, то будем выигрывать, а 1/2 к 1/2 — то проигрывать.
Это называется «субъективная интерпретация теории вероятностей», то есть, условно, это не монетка имеет свойство падать орлом с вероятностью 1/2. Это мы плохо умеет предсказывать падающие монетки. А вот робот с высокочастотной камерой и знанием физики ещё в воздухе смог бы сказать, выпадет ли орёл или решка.
Сравнение гипотез
Мы называем утверждения, относящиеся к реальности, гипотезами или моделями. Иногда — теориями, если это модель, у которой очень большая вероятность. Хорошая модель — это такая, которая хорошо угадывает будущие наблюдения, и это главный критерий. Все остальные критерии важны лишь в той мере, в которой позволяют оценить главный без прямого эксперимента.
«Хорошо угадывать» — значит, назначать высокую вероятность тем исходам, которые фактически произойдут. Если первая модель присвоила более высокие, чем вторая, исходы тому, что затем фактически случилось — значит, первая модель лучше.
Как заранее узнать, что одна модель лучше другой? Посмотреть, какая модель лучше предсказывает. Это делается так: рассчитываем вероятности нескольких конкурирующих моделей по формуле Байеса. У каждой модели есть априорная вероятность P(A), есть предсказанная вероятность события P(B|A), есть фактическая вероятность события (если оно произошло, то P(B)=1), мы выводим P(A|B). После такой обработки одного факта мы заменяем P(A) на P(A|B).
Вероятность одной модели не имеет большого смысла — модели всегда надо сравнивать друг с другом. Их P(A) на каждом шаге (или в конце расчёта) надо нормировать, то есть cделать так, чтобы P(A) всех исследуемых моделей в сумме давали 1.
Априорные вероятности
Откуда брать априорные вероятности, то есть стартовые P(A)? У нас должен быть какой-то способ измерить сложность модели и дальше действовать по принципу «чем больше деталей, тем ниже шансы, что мы их все отгадали правильно». Тогда P(A)=(0.5)^сложность. Например, сложностью можно назвать число конкретных правил в модели или длину описания в битах. Если модели слишком разнородные, можно задать им одинаковые априорные вероятности — но этот подход склонен к ошибкам, и устойчив лишь если есть много свидетельств, и они довольно сильные (или ну очень много слабых). Сильные свидетельства — это у которых P(B|A) сильно отличается от 0.5.
При таком подходе есть проблема: можно сделать разные базовые наборы правил. В одном наборе есть операция возведения в степень, а в другом — нет. Тогда правило «y=2^x» будет в первом случае очень простым, во втором довольно сложным и потому маловероятным.
Идеальный способ выбрать априорные вероятности — это перебрать разные способы измерения сложности, и выбрать тот, результаты которого лучше всего соотносятся с идеей «проставить равные априорные вероятности, а затем скорректировать априорные вероятности огромным числом наблюдений». То есть наша задача — подобрать такие приоры, чтобы за минимальное число фактов оказываться сильно уверенными именно в той теории, в которой мы в противном случае тоже оказались бы сильно уверены, просто за намного большее число наблюдений.
Ну и основной метод тестирования этой модели и смежных: запрограммировать и запустить на решение тестовых задач. Если модель нельзя запрограммировать, то нужно закодить хотя бы малый её кусочек.
Здесь приведён программный код модели и пример её применения — к сожалению, это не строго теоретический AIXI, а его адаптация к реальности, чтобы он работал быстрее и точнее.
https://github.com/Kilorad/aixi_booster
Распространённые контраргументы и вопросы:
* Этот метод поверхностный, он не даёт глубины. Он не вскрывает глубинные закономерности.
— Полагаю, если метод «вскрывает глубинные закономерности», то он сразу ложный, так как претендует на невозможное. Простая проверка. У нас есть чёрный ящик. Допустим, это программа. Всё, что мы можем с ней сделать — это подать на вход одно число и получить в ответ другое. Это вся доступная информация.
Мы видим закономерность: когда мы подаём X, на выходе получается Y=2X. Во всех наших тестах. Значит ли это, что внутри программы так и написано, return 2X? Ничего подобного. Там может быть return X+X, return 3X-X, return 2X+1-1 и куча других вариантов.
Пока метод, «вскрывающий глубинные закономерности» не научится отличать программу с X+X от программы с 3X-X и всех остальных вариантов, он не «вскрывает глубинные закономерности».
* Он позволяет увидеть лишь простые/линейные/не-динамические закономерности
— Модель — это всегда некий алгоритм, то есть штука, принимающая на вход одну последовательность и выдающая другую. Любую закономерность, которую мы можем записать, можно записать в виде алгоритма (в противном случае понятие алгоритма не полно, и туда надо записать ещё и такую закономерность, которая «неалгоритмична»). GPT-3 — нейросеть, предсказывающая конец текста по началу — построена именно как поведенческая модель, а уж предсказание текста точно не может быть чем-то простым/линейным/не-динамическим
* Подход не позволяет увидеть причинно-следственные связи
— Данный подход действительно не включает причинность как базовый элемент. Тем не менее, подход отвечает на вопросы «что будет, если я нажму кнопку А», «что будет, если я нажму кнопку Б». Это вполне тянет на эмпирическое определение причинности.
* Данный подход к познанию — не единственный возможный, есть другие.
— Я утверждаю, что они или не лучше, или хуже описанного. В любом случае, можно провести прямой эксперимент: два игрока формализуют свои подходы до уровня программного кода, а затем запускают их на куче «чёрных ящиков». Затем смотрим, какой подход лучше предсказывает поведение чёрного ящика, либо лучше угадывает их программный код, либо лучше ими манипулирует. Две основные тестовые площадки — это kaggle и openAI Gym, но можно придумать ещё что-то своё.
* Этот подход к познанию не даёт 100% гарантий чего-либо.
— Да, именно так, и я не видел подхода, который давал бы, и при этом не был ещё более косячным.
* Данный подход не пригоден к изучению людей, потому что их нельзя изучать только по поведению.
— Данный подход рассматривает речь людей как разновидность поведения. Мы «додумываем», что думают и чувствуют другие люди, но это лишь «скрытая переменная», полезная для предсказания, но непроверяемая. А ещё у людей есть априорная информация об устройстве мозгов других людей — не в смысле «упавшая с неба», а в смысле «вколоченная в мозги эволюцией, которая размножала лишь самых социально приспособленных».
* Как этот подход относится к этике?
— Параллельно. Поведенческие модели — это что-то типа карты реальности. А этика — это «куда мы хотим ехать». Так что это разные вещи.
* Ты не можешь всё проверять сам, тебе придётся опираться на слова других людей.
— Я могу к этому относиться как к сенсорным данным. Ну есть у меня термодатчик, я знаю, что иногда он довольно точен, но иногда, при каких-то условиях барахлит, а иногда показывает вовсе не температуру, а что-то другое. Так и со словами людей.
* Люди так не мыслят.
— Чтобы знать, как мыслят люди, надо построить модель мышления, запустить её и сравнить результаты. Рефлексия не очень надёжна. Это с одной стороны. С другой — описанный метод затратен, там что реальные живые существа и ИИ будут использовать какие-то упрощения, в ущерб качеству. Реальные машины не содержат в себе цикл Карно, и не потому, что он чем-то плох.
* Как вы решаете проблему индукции?
— Применяем абдукцию. Не выводим из частного общее, а из кучи «частных» делаем модель для прогноза другой кучи «частных». Затем проверяем точность модели.
* Не станет ли пользователь этой модели солипсистом?
— Вообще, подход неявно включает в себя познающего субъекта и окружающую реальность. Это не соответствует шаблону солипсизма. Но некоторые проблемы солипсизма возможны — например, такой подход даст совершенно бессмысленный ответ на вопрос «что я буду видеть, если я умру». Но может, проблема не в ответе, а в вопросе
* Такой подход не даёт полноты — он пригоден для изучения лишь узкой области.
— Такой подход, будучи запрограммирован, автоматом даёт нам «теорию всего» — с полным покрытием, но очень большой погрешностью. А потом позволяет её уточнять. Поясню. Допустим, мы сделали робота, у него все датчики — это одна видеокамера. И все актуаторы — это одна рука. Все вопросы о будущем, которые может задать робот, выглядят так: что я увижу через свою видеокамеру, если до этого я видел то-то, и рукой двигал так-то. Этот вопрос — вполне корректный вопрос для машинного обучения, чем дольше будет жить робот, тем точнее он будет в своих прогнозах. То есть моделью мира будет нейросеть, которая обучена на прошлом опыте, и она при любых вводных будет выдавать какие-то плюс-минус осмысленные картинки будущего.
* но наука так не работает! У нас нет Теории Всего, это эмпирический факт.
— Ага=( У нас к каждой научной теории вдогонку идёт не очень формализованная теория по её интерпретации. Есть механика Ньютона? Отлично, а теперь давайте опишем, что такое «масса» в терминах того, какие предметы надо взять в руки, на какие весы положить, и что делать, если весов рядом нет. И окажется, что понятия «массы» в квантмехе и астрофизике инструментально различаются. Нет у нас единого набора инструментов, который бы и для микромира хорошо работал, и для астрономических величин. Приходится эти концепции состыковывать в воображении учёного. Я не считаю, что проблема именно в массе. Я считаю, что проблема в том, что мы не можем просто провести кучу измерений, загнать данные в нейросеть и на выходе получить Теорию Всего — потому что мы не можем провести кучу измерений одним и тем же оборудованием, то есть у нас нет единого массива сенсоров
* Очень прагматичный подход. Ориентирован на эксплуатацию мира, а не изучение.
— В этом подходе познание примерно равно эксперимент примерно равно эксплуатация. Я не вижу смысла в других критериях истинности, кроме как «это полезная модель, чтобы достигать цели» и «это точная модель, чтобы делать прогнозы».
* Этот подход не работает для гуманитарных наук.
— Ну, во-первых, это повод спросить, а правда ли они науки. Во-вторых, некоторые гуманитарные науки реально что-то предсказывают. Например, есть теория прайминга в психологии. Если на товаре будет написано «не менее 10 в одни руки», у человека будет склонность купить именно 10 единиц товара. Теория немного шире, но сосредоточимся на одной конкретной закономерности. Она проверяема экспериментально? Да, можно поделить магазины на две группы, и в одной из них делать соответствующую вывеску про 10 единиц, а в другой — нет.
* Этот подход не работает для исторических наук
— Прошлого в каком-то смысле не существует. Оно есть лишь в виде следов. Мы додумываем прошлое. Иногда исторические теории можно проверить, например, некоторые теории предсказывают, что в некоем месте удастся найти древний город. Если мы колеблемся между несколькими историческими теориями, то гипотетически могут быть факты, которые склонят нас к какой-то из них.
* Основной вопрос философии?
— Если его свести в вопросу «что я увижу в случае таком-то», то на него будет конкретный ответ (или конкретное «не знаю»), иначе выглядит как что-то, не имеющее отношения к реальности. Если свести его к вопросу «мыслят ли люди мозгом» и далее к вопросу «если повредить мозг, то сохранятся ли наблюдаемые признаки мышления, то есть поведение», то ответ тоже очевиден, и его даёт чистая эмпирика
* Есть ли яркий пример того, как эта теория познания полезна?
— Всё машинное обучение на ней работает. Да, в машинном обучении редко применяется концепция сложности модели, и не происходит перебора во всём множестве алгоритмов. Поэтому теория AIXI несколько шире, чем практически применимый машинлёрнинг. Кроме того, существуют разные интерпретации квантмеха. Одни и те же формулы, но разные интерпретации. Так вот, крупная группа учёных вообще отказываются от интерпретации (говорят «заткнись и считай»), то есть действуют в духе описанной поведенческой теории познания.
* Как «поведенческая» теория относится к логическим категориям?
— На входе и выходе модели мы используем либо сырые данные (циферки с датчиков), либо данные, категоризованные какой-либо иной системой. Внутри модели может быть что угодно. Обычно там математика, но может быть любая другая система вывода, если такая найдётся. Нейросети вполне способны создавать свои «категории» из элементарных блоков, так что это вполне посильная задача
* Это теория не строит «объективную» модель мира. В ней всегда есть точка зрения.
— Да. Если повезёт, то данные будут собраны со многих «точек зрения», и теория будет применима независимо от того, откуда мы смотрим на мир. Но модели мира вообще без «точки зрения» у нас нет. Впрочем, в практической деятельности всегда есть конкретные действующие лица и выгодоприобретатели, так что не вижу проблемы.
* В чём отличие от научного метода и научной практики?
— Наука стремится создать единую непротиворечивую картину мира. То есть в научных журналах не публикуют статьи вида «вот это лекарство лечит от болезни, с вероятностью 80%, а с вероятностью 20% — нет. Через полгода и десять мегабаксов мы обновим цифры». P-value хуже, чем 0.05 в науке большая редкость.
Кроме того, наука ориентируется в основном на эксперимент. А «поведенческий анализ» больше опирается на наблюдения. Не потому, что они лучше, а потому, что они дешевле и доступнее. Если есть возможность, лучше ставить эксперименты.
Меньше внимания к объяснению, больше к прогнозу. Неважно, что человек не понял теорию — главное, он может вести по ней расчёты. Появится интерпретируемость? Хорошо, но это не главное.
У наук есть конкретный предмет познания, а у «поведенческого анализа» предмет — это всё, что приходит через сенсоры, то есть «поведенческий анализ» всегда пытается строить «Теорию Всего».
Интерпретация теории вероятности — субъективная (монетка упадёт орлом к вероятностью 50% — это факт не о монетке, а о моём незнании), а в «настоящей» науке — обычно частотная.
При достаточном времени и статистике данный метод примерно сводится к науке в современном понимании.
* Ваш метод буржуазный/либеральный/идеалистический/материалистический/ещё какой-то.
— Этот метод не относится напрямую к обществу. Он может работать и в коллективе, и у одного человека, и у нечеловеческого ИИ. Данному методу неважно, какие способы обобщения использовать — хорошо бы иметь большую «библиотеку» абстракций, но при нужде можно всё разработать с нуля.
* Ваш метод догматичен, вы узко смотрите, вы не видите того-то и того-то.
— Возможно, то, чего мы не видим — не более, чем чей-то глюк. Если мы не видим какую-то реально важную штуку, то будет некая группа задач, где наш метод работает систематически плохо, а какой-то другой — хорошо. Для пользователей данного метода это будет выглядеть так: часть людей использует стратегию, которая необъяснимым образом постоянно приводит их к успеху. На этом весь догматизм кончится и начнутся попытки скопировать удачную стратегию
* Этот подход предполагает, что всё можно оцифровать и измерить, а это не так.
— Оцифровка — довольно искусственная операция. Например, мне нужно сделать систему, которая предсказывает, будет ли у человека болеть какая-либо часть тела. Нам нужно оцифровать боль. Самый простой способ — если есть боль, то записываем 1, иначе 0. Способ посложнее — если есть какие-то градации сильнее/слабее, то можно присвоить им числа. 0 — нет боли, 1 — чуть-чуть болит, 2 — средне болит, 3 — сильно, 4 — ужас-кошмар. Оцифровка — это наш способ разложить сходные наблюдения по кучкам, не более того.
* Ваш подход не учитывает, что мы можем взломать код чёрного ящика или спросить о нём разработчика.
— При взломе мы всё равно будет использовать какие-то средства воздействия и средства наблюдения. Их мы и назовём сенсорами и актуаторами. При общении с разработчиком мы всё равно используем какой-то канал связи — он и будет нашим сенсорным входом. То есть если мы сделаем что-то из вышеперечисленного, то мы изменим границы чёрного ящика: теперь туда входит и наше средство взлома, и предполагаемый разработчик.