Я высоко (на седьмом этаже!) сижу, далеко (через интернет) гляжу, и обозреваю полянку современных шевелений с мышлением. Меня интересует мышление-в-большом: не одиночные акты озарений, или отдельные попытки что-то логически прорассуждать. Меня интересует коллективное мышление в промышленных масштабах -- чтобы суметь сделать ракету, которая долетает до Марса (это уже сумели сделать много команд из самых разных стран), или суметь сделать компьютер с чипом, в котором 21млрд. транзисторов (NVIDIA Volta как раз такой чип).
Такое мышление должно быть и формальным (чтобы быть безошибочным, не содержать формальных логических ошибок) и неформальным (ибо формальные онтологии несовместимы между собой формально, но это вовсе не значит, что люди не справляются с разнообразием формально несовместимых онтологий -- просто люди не столько формальны, чтобы логическая несовместимость их останавливала).
Для полноценного мышления людям и компьютерам нужно задействовать полный спектр формальности мышления -- и ещё и менять уровень формальности мышления по ходу дела. Подробней я об этом рассказываю в книжке "Визуальное мышление",
https://ridero.ru/books/vizualnoe_myshlenie/, просто опускайте при чтении те части, где обсуждается именно визуальность и читайте всё то, что про мышление. И там огромное количество ссылок на литературу.
Ещё одно условие: нам необязательно, чтобы мышление было именно человечьим. В части мышления мы делаем самолёт, а не махолёт. Корабль с винтом, а не с плавниками. Так что наши догадки о мышлении должны быть смоделированы в компьютере, но они необязательно повторяют человечье мышление. Просто компьютер должен демонстрировать мышление, желательно, чтобы не хуже человеква -- и это будет означать, что механизмы мышления уже достаточно понятны, чтобы повторить их в инженерной конструкции. А когда механизм мышления станет совсем уж понятным (постепенно, не за один день), то человечество получить некоторое изобилие мышления, дешёвое компьютерное мышление.
Давайте поглядим, какие у нас есть направления, развивающие спектр мышления во всей его полноте: это означает, что нас интересуют связки между формальными представлениями и логиками на них и неформальными представлениями и логиками на них.
Для этого опустимся от мышления на уровень ниже и рассмотрим представления мысли, над которыми можно вести вычисления -- более формальные и менее формальные как эти представления, так и вычисления над ними. Я бы тут выделил несколько направлений:
-- логика и вероятность. Началось с E.T.Jaynes, показавшего, что логический формальный вывод это частный случай байесовского вывода (
http://ailev.livejournal.com/1311261.html). Это линия вероятностных доказательств, её двигает, например, Pedro Domingos (тот самый, который писал про Master Algorithm) -- ибо нужны эффективные алгоритмы нахождения таких доказательств,
https://dl.acm.org/citation.cfm?id=2936726. Сюда же попадает причинный вывод (causal inference,
https://ailev.livejournal.com/1435703.html), т.е. такие работы, какие ведёт Judea Pearl с учениками и их конкуренты. По сути, тут царит probabilistic programing,
http://probabilistic-programming.org/.
-- логика и коннекционизм. Это представление логики в коннекционистских средах. Есть толстенький обзор Neural-Symbolic Computation
https://arxiv.org/abs/1711.03902. У меня время от времени были посты на эту тему, но я обычно ссылался в своих постах на neural-symbolic binding (этих постов было довольно много, гуглите с указанием site:ailev.livejournal.com), а недавно образовалась ассоциация Neral-Symbolic Integration, NeSy,
http://www.neural-symbolic.org/-- дифференцируемая логика: смягчение дискретного характера логики, чтобы работал поиск решения методом стохастического градиентного спуска: проход из формализма по линии differentiable programming. Например, дифференцируемые архитектуры -- continuous relaxation of the architecture representation, allowing efficient search of the architecture using gradient descent из
https://arxiv.org/abs/1806.09055. Но это не вероятностное программирование! Это идеи дифференцируемого программирования! Собственно, это то самое, во что превращается сегодня deep learning, но это не столько нейросетевые именно коннективистские представления, сколько дифференцируемые символические (в том числе графовые) представления.
Я понимаю, что речь идёт о системном уровне каких-то базисных формально-неформальных вычислений, которые и мышлением назвать язык не будет поворачиваться. Но выше по интеллект-стеку должен быть уровень когнитивной архитектуры, где могут комбинироваться самые разные варианты этих вычислений (я писал об этом в "Болваны для искусственного интеллекта", в чуть другой терминологии --
https://ailev.livejournal.com/1356016.html). Я пока не касаюсь когнитивной архитектуры. Это потом, и этих когнитивных архитектур, построенных на базе имеющихся вариантов вычислений на спектре формальности мыслительных представлений (аккуратно обойдём слово "мышление" в этом абзаце) будет много. Но разделение интересов, separation of concerns -- обсуждаем по одному интересу за раз, и стараемся держаться на каком-то одном системном уровне.
Что я пропустил? Что ещё тут нужно мониторить?
UPDATE: обсуждение в фейсбуке --
https://www.facebook.com/ailevenchuk/posts/10213467691020739 и
https://www.facebook.com/groups/nevronet/permalink/1118037578362562/