Типы (аспекты) моделей, алгоритмов, Теорий, И объяснений
В ОдО2021 есть фраза «модели причинности -- это главное в объяснениях». Мне показалось это упрощением, если под моделями причинности мы понимаем structural causal models как из задал Judea Pearl в The Book of Why. Например, на мой взгляд, назвать теорию эволюции «причинной моделью» было бы большой натяжкой, несмотря на то, что она является хорошим объяснением.
Поэтому я задумался о том, какие аспекты/типы/качества моделей вообще бывают. Результат с примерами см. тут. Получившаяся классификация «бродит где-то рядом» с интеллект-стеком, можно проследить некоторые соответствия между типами моделей/теорий/алгоритмов/объяснений и трансдисциплинами:
- Compartmentalisation/boundary: понятизация
- Connectionistic/ontological: онтология
- Analytical/equation-based: объяснения
- Algorithmic/rule-based (generation): алгоритмика, логика, формальное мышление по спектру семантики
- Principles/rules-based (verification only): исследования, некоторые изводы этики
- Stochastic/randomised: предпринимательство, творчество (в составе исследований и эстетики)
- Statistical/vote-based/parallel: алгоритмика, интуитивное/нечеткое мышление по спектру семантики
- Multicomputational: алгоритмика (квантовые алгоритмы)
По этой классификации, причинные модели отчасти connectionistic/ontological, отчасти analytical/equation-based.
Вы бы разделили модели на типы по-другому? Есть ли какие-то типы моделей, которые я забыл?
#сиОдО
- Запостил leventov
- Дата 18.01.2022
- 2 Comments
Ну вот «объяснение» -- это то, что ведёт к какому-то предсказанию (по Дойчу). В том числе предсказанию запрета (если это принцип). Сама идея поглядеть, чем «объяснения» по Дойчу отличаются от «объяснений» по Перлу -- она очень хороша. Моя мысль была в том, что как Дойч поправил Поппера в том, что не любая идея будет итогом исследования, а именно объяснение, так Перл поправляет Дойча, указывая на то, что там было формализовано как «объяснение» в итоге «одомашнивания причинности». Конечно, это всё требует разбираться, что там с контрфактическими высказываниями и интервенциями в этих моделях, а сама их форма -- да любая! То есть «ходил по базару, видел разные модели» ничего не даёт, если не понимать, как эти разные модели потом использовать. Разные использования дают разные классификации. Общий принцип тут такой: если не знаешь, как использовать, то и не классифицируй, пользуйся полнотекстовым поиском, не подводи под тип! И дальше: сколько разных целей, столько и разных классификаций будет. Цель же не заявлена!
Мелкие замечания не по существу: все эти «генераторы и верификаторы» напоминают постановку задачи про P vs. NP, у словая «функция» есть пять разных значений (и тут я не очень понимаю, на какое ссылаемся), а алгоритмика квантовых алгоритмов мне не очень понятна (квантовые вычисления же -- это универсальный компьютер, эквивалентность машине тьюринга, так что по скорости разница будет, но по видам моделей -- то же самое, нет? Нужно пояснять, что там имеется ввиду. В любом случае, в этом месте просится ход на ещё один вид моделей: «физические модели», типа аэродинамической модели самолёта масштабом 1:100 для продувки в аэродинамической трубе).
Но пока нет ответа на вопрос «Для чего делить на классы», обсуждать ничего нельзя.
Дисклеймер: на момент написания заметки, я был знаком с The Master Algorithm на уровне описания в ОдО (то есть, примерно никак), но на данный момент я посмотрел часовое видео, где он презентует свои пять типов алгоритмов. Наверное, если бы я посмотрел видео или прочитал книгу раньше, не написал бы заметку.
> а сама их форма -- да любая! То есть «ходил по базару, видел разные модели» ничего не даёт, если не понимать, как эти разные модели потом использовать. Разные использования дают разные классификации. Общий принцип тут такой: если не знаешь, как использовать, то и не классифицируй, пользуйся полнотекстовым поиском, не подводи под тип! И дальше: сколько разных целей, столько и разных классификаций будет. Цель же не заявлена!
В дополнение к фразе из книги за которую я зацепился, есть еще соображение из рабочего проекта, где текущее решение -- на «классических» алгоритмах, и есть мнение, что «ML тут не подходит». Но вот под этим «ML», скорее всего, имеется ввиду чистый Deep Learning, как сейчас модно, а на другие типы алгоритмов/моделей -- может быть смотрели, может быть, нет -- надо проверять.
Я согласен, что от данной классификации толку нет, например, потому что очень много всего внутри statistical/vote-based, да и вообще, те же интересные эволюционные алгоритмы по этой схеме не классифицируются однозначно, потому что имеют много разнотипных элементов. Спасибо за объяснение.
В разделе ОдО про исследования еще, похоже, подразумевается, что исследования -- это не только про нахождение «объяснений», но и собственно алгоритмов/решений задач (там, где про решение противоречий в СМД и ТРИЗ). Или это уже относится к алгоритмике? Тут в ОдО говорится практически только то, что решения так или иначе берутся «из шума"/"творчеством»: либо эволюционной подстройкой существующих прототипов решений в неком эволюционном процессе, либо прогоном этого шума через автоэнкодер. Тут, мне кажется, классификация алгоритмов обучения (а не любых моделей/алгоритмов) Педро Домингоса очень подходит. Оттуда видно, что решения (или хотя бы догадки) берутся не только из шума: 1) перебором/индукцией, 2) чистой интуицией (условие задачи на вход нейросети -- решение на выход, что бы оно ни значило), 3) из шума -- это Домингосовские эволюционные алгоритмы, 4) Байесовские сети -- не знаю как притянуть, но наверное как-то можно, и, наконец, 5) по аналогии.
Наглядный пример обучения, о котором я думаю -- это спортивное программирование. Спортсмен-программист «выучивает» за 10 минут решение -- текст программы, имея условия на вход, несколько примеров правильного входа--выхода, и проверяльщика решений -- черный ящик. Сами алгоритмы там обычно императивные, интересен процесс поиска решения. Также, хотя это и «тренируемый навык», в какой-то немалой степени спортивное программирование -- это интеллектуальное занятие, потому что оно далеко от чистой интуиции/S1.
В процессе нахожения (выучения) решений в спортивном программировании, кажется, присутствуют все четыре способа нахождения решений: перебор/индукция (из библиотеки заранее выученных шаблонов/приемов), интуиция, решение по аналогии, и даже эволюционные приемы: исправить инициализацию переменной с нуля на единицу, или поправить аналогично наугад в тексте за минуту до конца приема решений, в надежде на то, что программа вдруг пройдет проверку -- это классика спортивного программирования, и это иногда срабатывает!