В современной информатике, точнее – в области машинного обучения и нейронных сетей – нашла оригинальное применение концепция платоновских идеальных сущностей. Платонические корни распознавания образов и, соответственно, роль платонизма в работе нейронок, а также в Data Science, заслуживают подробного осмысления, что я и попытаюсь обрисовать в этом посте.    Пост навеян мыслями Виктора Сиротина @visirokо том, что программирование и проектирование программных продуктов являются материализацией идей. Отдельно благодарю Виктора за наше насыщенное общение, вышедшее за пределы Хабра, за его внимание к моему блогу, а также за возможность ознакомиться с его мемуарами. Впрочем, показатели трех последних постов Виктора в его блоге говорят сами за себя – надеюсь, он будет радовать Хабр и новыми превосходными работами, и все читатели, которым понравится данный пост, также не забудут подписаться на Виктора. А теперь приступим. Рассматриваемые здесь идеи восходят к учению Платона – древнегреческого философа, жившего в 427-347 годах до н.э. Платон был учеником Сократа, вольнодумные идеи которого отстаивал и активно пропагандировал, учителем Аристотеля (384-322) и основателем знаменитой Академии. Академия была учреждена примерно в 387 году и действовала в саду, посвященном древнегреческому герою Академу. Академия представляла собой прообраз гуманитарного университета (в ней была налажена система преподавания) и дискуссионного клуба, основная идеология которого восходила к Сократу. Академия просуществовала до 529 года н.э., когда византийский император Юстиниан закрыл ее в рамках борьбы с остатками язычества. Естественнонаучные опыты в Академии, по-видимому, не проводились, но развивалась абстрактная мысль и, в частности, геометрия. Впоследствии платоновские идеи развивал Евклид, живший на поколение позже Платона (примерно 325-265 до н.э.) и изложивший в последнем томе своих «Начал» характеристики правильных многогранников, так называемых Платоновых тел.          Платон считал, что каждый объект или фигура являются неточной аналогией так называемого платонического идеала. Какой бы круг вы ни нарисовали, идеальным он не получится. В каких-то частях он будет закрашен гуще, а линия на разных участках окружности может получиться тоньше или толще – зависит от нажима на карандаш. Платон, по-видимому, первым осознал, что в реальности идеальных объектов не существует – значит, заключил он, такие идеалы должны находиться за пределами ощутимой реальности, но каким-то образом служить лекалами для создания наблюдаемых сущностей и фигур. Итак, согласно платонизму, абстрактные сущности объективно существуют в некоем пространстве «форм» и являются фундаментальными единицами реальности. К таким абстракциям относятся числа, геометрические фигуры, предметы и сущности – они вполне реальные, хотя и не поддаются эмпирическому изучению, поскольку выходят за рамки физики. Античные философы стремились связать платоновы идеальные тела с пифагорейской концепцией первоэлементов, но в целом все эти построения так и не вышли на уровень, который позволил бы еще в период античности сформулировать концепцию виртуальной реальности. Поэтому оставалось тайной, где же находится это вместилище идеальных фигур, как они туда попали, каким образом информация об идеальных фигурах проникает в наш мир и как к такому идеалу приблизиться. Тем не менее, поскольку в основе платонической и пифагорейской философии лежали абстрактные числа и их соотношения, в XX веке стало очевидно, что такие идеальные структуры хорошо поддаются компьютерному моделированию. Компьютер в принципе отлично подходит для генерации объектов, не существующих в реальности, и результаты такого моделирования порой неотличимы от реальных изображений. Со всей очевидностью приходим к выводу, что именно продвинутое имитационное моделирование и машинное обучение лучше каких-либо изобретений прошлого подходят на роль инструментария для обнаружения и обработки чистых форм – с дальнейшим выводом их копий из абстрактного пространства идей в реальность через 3D-принтер или станок с ЧПУ. Здесь мы подходим к следующему вопросу – а в какой степени мы понимаем машинное обучение и каковы шансы вывести эту парадигму из черного ящика?   Парадигма машинного обучения, концептуально сформулированная в середине XX века, в начале века XXI повлияла на представления о рационализме примерно так же, как квантовая механика в начале XX века. Машинное обучение, подобно квантовой механике – работает, и безупречно, но в деталях его механизмы остаются непонятными. При этом машинное обучение устроено принципиально иначе, чем традиционное программирование. При программировании постановка задач позволяет уподобить решение задачи движению по ветвящимся, сходящимся и тупиковым железнодорожным веткам (в данном случае особенно точна метафора «семафор»). С другой стороны, машинное обучение устроено совершенно иначе – возьмем, например, распознавание цифр. В обычном алгоритме могло бы быть прописано, что «1» похожа на прямую вертикальную линию, а «8» — из двух смыкающихся окружностей, верхняя из которых, как правило, меньше нижней. Фактически, такой алгоритм описывал бы именно платонические идеалы единицы и восьмерки. Но программа, основанная на таком алгоритме, неверно интерпретировала бы значительное количество цифр, коряво написанных от руки (идеал всегда совершенен, а вот степень несовершенства его копий может сильно отличаться). Напротив, модели машинного обучения только и делают, что учатся на примерах. Чтобы обучить модель, достаточно скормить ей множество всевозможных «восьмерок», в том числе – очень неидеальных, попутно указав – «это — восьмерка». В таком случае алгоритм может обучиться с превосходной точностью, но все равно его вывод будет статистическим и вероятностным. Так, он зафиксирует признак «вертикальности» как у «1», так и у «3», но (если обучен качественно) – присвоит значительно больший вес варианту «это 1», чем «это 3».  Известны проблемы, обусловленные такой чисто статистической природой машинного обучения. Во-первых, это переобучение («когда у вас в руках молоток, все вокруг начинает напоминать гвозди»), во-вторых – усвоение закономерностей, которые случайно попали в датасет и не имеют отношения к постановке задачи. Такие статистические перекосы могут быть случайными, а могут и целенаправленно вноситься в обучающую выборку с целью «отравления данных». Так, алгоритм может отнести все три следующих изображения к одной категории, поскольку объединит их по принципу «на каждой есть выразительный белый квадратик в черной рамке». Тема состязательных атак на машинное обучение выходит за рамки этого поста, но демонстрирует, насколько важно понимать механизмы машинного обучения – и насколько мы их не понимаем.  В принципе, существует две линии рассуждений, призванных примирить эту необъяснимость с нашим стремлением познать реальность. Во-первых, можно признавать эту необъяснимость недостатком, с которым, однако, нужно мириться ради того полезного и информативного выхлопа, который действительно дают модели машинного обучения – в полном соответствии с афоризмом Дэвида Мермина «заткнись и считай!», то есть, с желанием физиков умыть руки перед необъяснимостью квантовой механики. Во-вторых, необъяснимость можно считать не недостатком, а истиной. Модели машинного обучения работают, так как считывают реальность лучше нас с вами. Дело во все более и более тщательной детализации картины мира – пусть в основе нее и лежит чистая статистика, но человеческому интеллекту такая детализация недоступна. Поэтому нейронные сети просто решают задачи, а объяснение пути к решению в такую задачу не входит и не должно входить. Можно сколько угодно жаловаться на «мы не понимаем, как работает машинное обучение» (вернее, иногда понимаем, как в вышеприведенном примере с квадратиком) – но работать при этом оно не перестает.       Если же алгоритмы ML справляются с задачами, обходясь без человеко-постижимых правил, законов, принципов и обобщений (в особенности – обобщений, поскольку машина занимается именно обобщениями), тем самым упрощая или устраняя сложность окружающей реальности – то нам только и остается признать, что «это работает» и «весь мир – черный ящик». Но нас это не устраивает, ведь обобщения на основе машинного обучения совсем не такие, как осознанные человеческие обобщения, исходя из которых мы объясняем частности.  Человеческие обобщения:    понятны    зачастую позволяют дедуктивно прийти к выводу применимы к различным частным задачам          Машинные обобщения, в свою очередь: не всегда понятны имеют статистическую и вероятностную природу, и поэтому индуктивны, а не дедуктивны применимы только к той модели машинного обучения, которая на основе них построена          Еще сложнее ситуация с объяснимостью моделей, которые конструируются при помощи многослойных нейронных сетей, то есть, являются не просто статистическими обобщениями, а результатом многоступенчатой обработки данных, когда вывод одного слоя сверточной нейронной сети является вводом, поступающим на обработку в ее следующий слой – и так далее. При обязательном наличии скрытых слоев (каждый из узлов входного слоя отображается на узел промежуточного скрытого слоя и так далее – до финального слоя, выдающего готовую модель) оператор нейронной сети может лишь убедиться, что она научилась, скажем, отличать «лицо» от «не лица», но как именно ей это удалось – неизвестно. Фактически, скрытые слои нейронной сети оперируют условно «платоническими» идеалами исследуемых сущностей, и сама работа нейронки зависит от того, насколько она заточена под такой «платонизм». Человек может лишь быть уверен, что сеть сформулировала некий «справочный идеал», на основе которого делает классификацию или прогноз, но «увидеть» такой идеал будет не в состоянии. Здесь можем утверждать, что постулируемый выше платонизм нейронных сетей, все-таки, формируется на основе учебного датасета, а данные – реальны. Или для data science также характерен платонизм? В настоящее время Data Science уже не сводится к «модному» ребрендингу статистической науки, а является специфической междисциплинарной предметной областью, в которую входят примерно следующие компетенции: программирование (как правило, на Python или R), подготовка данных (скрапинг, разбор (парсинг), форматирование), статистика, линейная алгебра, многомерный анализ, машинное обучение и визуализация данных. Плюс конкретному специалисту по data science желателен опыт в той предметной области, для анализа данных которой его нанимают. Как правило, путь в data science предполагает хорошую статистическую подготовку, навыки аналитического моделирования и решения задач. Тем не менее, data science как наука могла возникнуть только в XXI веке, благодаря появлению как больших и постоянно пополняемых объемов данных, так и алгоритмов для их анализа. Вся data science – фактически, сбор и полуфабрикация материала для машинного обучения. К тому же, алгоритмы машинного обучения отлично применимы не только к реальным, но и к синтетическим данным, что еще на шаг приближает нас к платонизму. Напрашивается вывод, что data science и машинное обучение – это имитация научного поиска и научного метода соответственно, причем, именно в комбинации друг с другом и в отрыве от ограничений, присущих реальному миру и реальным (ограниченным) выборкам данных они дают такую огромную прогностическую мощность. Например, в одном из комментариев к моему предыдущему посту уважаемый @dizatorrуказал, что системы распознавания образов уже интерпретируют рентгеновские снимки не хуже, чем врач-диагност, и полностью перейти на использование алгоритмов в данном контексте не удается в основном по психологическим причинам. Тем не менее, ни машинное обучение, ни data science пока не обладают никаким аналогом «критического мышления», то есть, не могут превратить некачественный ввод в качественный вывод. Более того, ошибки и «предрассудки» таких алгоритмов чаще накапливаются, чем устраняются, поэтому и открывается такой простор для загрязнения данных, о чем шла речь выше. При этом data science можно признать самым неоплатоническим явлением, на которое опирается наша цивилизация. Data science – это, прежде всего, выявление фундаментальных закономерностей во внешне хаотичном мире. Вычислительная машина для data science – тот «посредник» между несовершенными реальными или синтетическими данными и совершенной математической функцией, который позволяет выйти через признаки на искомый результат (вполне возможно, что и результат при этом будет несовершенным, а вот алгоритм – почти совершенным в платоновском смысле и при этом непостижимым для человека). Естественные науки требуют математизировать мир, а data science – вдобавок, датафицировать его, то есть, разложить на неидеальные фрагменты, поддающиеся классификации. При этом data science сближается с платонизмом еще и в том отношении, что в дата science оценка выборки по статистическим и математическим законам – приоритетнее, чем оценка этой выборки в соответствии с эмпирическим опытом. Data science потенциально объективнее естественных наук, так как роль алгоритмов и искусственного интеллекта в ней первична и продолжает увеличиваться, а роль человека вторична и продолжает уменьшаться. Математическая стройность data science все сильнее повышает прогностический потенциал данных и все сильнее затрудняет их интерпретацию человеком. Создается опасная ситуация, когда закономерности становятся важнее фактов, и машина запросто может перейти к игнорированию редких фактов как статистически пренебрежимых – тогда как человек бы обратил на них внимание. В марте 2022 года была опубликована статья «Platonic Computer—The Universal Machine from Which Abstract Entities Are Generated» («Платонический компьютер – универсальная машина для генерации абстрактных сущностей»), на которой я хотел бы остановиться в завершении этого поста. Автор статьи предполагает, что платонический компьютер мог бы не иметь материальной основы, то есть полностью находиться в некоем «абстрактном сознании». При этом, он был бы подобен физическому компьютеру в том, что оперировал бы двоичными оппозициями вида «0» и «1». В его случае такая оппозиция могла бы заключаться в «проявившемся свойстве» и «непроявившемся свойстве» и на уровне некоторого приближения могла бы быть смоделирована на обычном, физическом компьютере. Но физические вычисления, будучи лишь «тенью» платонических, позволили бы смоделировать лишь некоторые аспекты последних. В примере, приводимом автором статьи, дается аналогия с прогнозом погоды, когда на компьютере выводятся данные о температуре и влажности, но не моделируются порывы ветра или капли дождя. При всей отвлеченности этой философской концепции, она, на мой взгляд, помогает вообразить суть искусственного суперинтеллекта и причины его потенциальной непостижимости – мы никогда не увидим полной картины, которой оперирует искусственный суперинтеллект, подобно тому, как не можем увидеть платоновскую идеальную фигуру во всех ее деталях. Тем не менее, подобный компьютер, очевидно, требовал бы проводить вычисления на полностью абстрактном носителе, без какой-либо физической оболочки. По мнению Дэвида Чалмерса и Роджера Пенроуза это (пока?) невозможно. Мало того, что на данном этапе технологического развития не удается представить себе компьютер, лишенный аппаратного обеспечения – так и принципы работы компьютера не так далеко ушли от работы мозга приматов. Иными словами, компьютер – это материальная машина, занятая прослеживанием тенденций, выявлением закономерностей, моделированием и вычислением результатов. Все это – инструментальное продолжение и усиление функций материального мозга. С другой стороны, возможно, что мы не можем представить себе супер-ИИ, так как не можем отвлечься от его потенциального материального воплощения и полагаем, что его действия, вероятно, могли бы быть очень сложны, но потенциально прослеживаемы и объяснимы. Сделанный выше экскурс в неоплатонизм позволяет обоснованно усомниться, а насколько корректны такие наши допущения.     Переводчик, PM, автор, просветитель-любитель