Машина, способная творить
Я часто упоминаю всякие хитрые технические штуки: DeepFake, GAN, прочие технологии ИИ, нейросетей и экспертных систем, и говорю — современная машина может творить, порой, не хуже человека. Для людей, живущих и работающих на переднем фронте развития технологий (вроде меня самого), в этом нет ничего удивительного. Однако, этот факт крайне сложно ложиться в философскую картину мира людей, далёких от этой грани.
Считается, что способность к творчеству — одна из черт, отличающих человека разумного от неразумных животных. Само по себе творчество, за всё время развития человечества, есть вложение в создание чего-то несоразмерных задаче ресурсов (временных, трудовых, материальных), в надежде на качественный переход — порождение того, чего раньше в мире не было. С одной стороны, творчество — крайне неразумная стратегия жизни, зачем нужно вкладывать больше ресурсов, чем нужно для уже известного решения? С другой, именно оно обеспечивает продвижение науки, техники, культуры и общества в целом вперёд. Так зачем, а, главное, как можно переложить творческие задачи на машину?
Простой ответ на вопрос «зачем?» — чтобы разгрузить человеческий разум для решения задач большего порядка. А вот вопрос «как?» — основная тема этой статьи.
Слово о нейросетях
Каких-то 20 лет назад считалось, что счётная машина нужна только ради того, чтобы, собственно, считать — складывать, умножать, делить, возводить в степень. Что для машины недоступны задачи, требующие не просто знания входных данных и алгоритма, но и понимания решающим сути задачи и связей внутри входных данных. Проще говоря, возможность попросить машину нарисовать «маленькую птичку с длинным хвостом и клювом яркой расцветки» казалась за гранью возможного. Современная же машина такую задачу решает. Каким образом?
Таким же, каким её решает человек — пользуясь накопленным знанием всего человечества, значительная часть из которого общедоступна в интернете, машина учится, что обычно называют птичкой, какой хвост считается коротким, какой-длинным, и какая раскраска — яркой. После чего воспроизводит эти черты в изображении.
Первая искусственная нейронная сеть — попытка имитации структуры мозга человека с помощью машины. Это был прорыв. Несмотря на чудовищные требования к вычислительным ресурсам (они и по сей день чудовищные), этот инструмент эффективно решил целый класс задач, которые до того были крайне сложными, а то и нерешаемыми с помощью машины вовсе. В первую очередь, это задачи, требующие от машины уметь отличать один вид объектов от другого: взрослых кошек от котята, розы разных видов, растительный орнамент от индустриального, и находить объекты по их образу, например, распознавать рукописный и сканированный текст.
Попробую объяснить, как это работает, не вдаваясь в биологические и математические подробности.
Человек определяет объект по его внешне различимым отдельным чертам. «Если нечто выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, и есть утка.» Крупные черты разделяются на малые — кряканье на громкость отдельных звуков и интервалы между ними, внешний вид утки на цвет и форму отдельных частей, и так далее.
Нейросеть это структура, внутри которой после определённой настройки (обычно это так и называется — обучение) формируются пучки нейронов. Каждый пучок реагирует на появление конкретной черты в исходных данных. Например, на появление того самого конкретного цвета, характерного для уток, или характерного клюва, или даже местности, где обычно появляются утки. Современные нейронные сети многослойны — на самом нижнем слое простейшие черты — отдельные короткие звуки или формы коротких линий. На высшем — более комплексные признаки: та самая форма клюва или лапы. Машина сперва находит простейшие черты, потом проверяет, можно ли из них составить более сложные. Связь слоёв друг с другом, и пучков между собой даёт машине возможность сказать - это утка, потому, что у неё характерная для утки форма, и она плавает в характерной среде.
При этом, мы не можем на основе структуры пучков нейронов в нейросети сказать, по каким конкретно признакам она определяет объекты. Не можем даже сформулировать языковое описание для этих признаков. Потому, что нейросети не записываются как алгоритмы, и не конструируются как механизмы. Они обучаются. Нейросеть в процессе обучения сама находит черты, которые соответствуют тому, что от неё хочет учитель (или среда, для самообучающихся сетей). Такой же принцип есть и у людей: у каждого из нас свой способ ориентироваться на местности или определять готовность еды, который сложно объяснить другим.
Обучение нейросети - трудоёмкий процесс, требующий огромных запасов знаний. Так, чтобы научить нейросеть узнавать утку на фотографии, нужны сотни тысяч фотографий уток, и ещё больше — фотографий чего-то похожего на утку, но не утки. Да, в этом вопросе машины пока ещё непреодолимо глупее человека.
Искусственная нейронная сеть — одна из первых машинных структур, работа которой подобна мышлению человека, и потому нейросеть умеет решать задачи, ранее доступные лишь человеку. Но это, всё ещё, очень ограниченный инструмент, в котором все недостатки человеческого мышления тысячекратно сильней. Как и человеку, нейросети для работы нужна информационная среда, доступ к накопленным знаниям о мире. Но только с помощью нынешнего огромного массива общедоступной информации нейросеть вообще может работать.
Процесс творения
Одно дело — уметь понимать образы, и совсем другое — уметь творить свои собственные. Но, успешно освоив технику имитации человека машиной, исследователи не остановились.
Как ребёнок учится рассказывать истории? Он начинает с пересказа того, что уже слышал. Этот же принцип положен в основу следующего поколения имитаторов человеческого разума - автокодировщиков (автоэнкодеров, autoencoder). От автокодировщика требуется принять на вход определённые данные, сохранить их с помощью неких смысловых единиц, черт, после чего — воспроизвести максимально близко к исходнику.
Являясь нейросетью в своей основе, автокодировщик сам находит в огромной куче подаваемой ему информации общие черты и учится запоминать их наиболее эффективно. Чтобы заставить его обучаться, под хранение информации о том, что было показано, выделяется много меньше ресурсов, чем нужно для хранения исходного материала. То есть, как и ученик-человек на самообучении, автокодировщик, с одной стороны, имеет доступ к знаниям, с другой, ограничен и принуждаем к действиям.
Автокодировщики используются, чтобы машина могла не только найти и классифицировать объект, но и рассказать о нём подробнее. Отсюда до создания объекта по описанию остаётся один шаг. И он — наиболее сложный.
Чтобы понять этот шаг, вернёмся к началу. Творчество, это стратегия, предполагающая избыточное, неэффективное в общем случае вложение ресурсов. Это значит, что для индивидуума, для одного конкретного человека это крайне невыгодная стратегия. Она становится выгодной только в случае, если результат творческого поиска нужен обществу. Или, как минимум, ещё одному человеку.
Структура, позволяющая машине творить, называется генеративно-состязательной сетью (Generative adversarial network, GAN). Несмотря на название, GAN - не одна нейросеть, а, минимум, две. Одна нейросеть, назовём её Творец (официально — генератор, контур G) порождает нечто. Вторая, пусть будет Критик (официально - дискриминатор, контур D) — говорит Творцу, создал ли он что-то пригожее. И Творец, и Критик по структуре — автокодировщики, похожие друг на друга.
И Творец, и Критик учатся выделять в материале одни и те же смысловые единицы. После этого, Творец пытается смешать из этих смысловых единиц произвольное нечто таким образом, чтобы Критик не смог найти в этом нечто принципиальных отличий от виденного ранее, а Критик, в свою очередь, учится всё более точно различать заложенные смысловые единицы, чтобы Творцу было сложнее заставить его себе доверять.
И вот мы достигли того момента, когда описание действий машины по смыслу неотличимо от действий людей в нашем обществе.
В итоге, Творец обучается настолько, что способен создавать вещи, которых в реальности никогда не было, но которые невозможно отличить от реальности. То есть, Творец способен заставить нас ему поверить, как до этого он заставлял Критика. Но и Критик здесь оказывается при делах, продолжая искать ошибки не только у Творца, но и в любых других материалах.
Конечно, и эта модель пока ещё очень далека от возможностей человеческого разума. Всё, что может тандем из Творца и Критика — переформулировать уже имеющиеся смысловые единицы в новое произведение. Хотя, современная культура занята, в основном, тем же, и ничто не мешает заменить всех этих «так видящих» творцов на GAN.
Каждая веха в развитии мыслящих машин была связана с попыткой воплотить в машине некую человеческую способность, представления о работе которой у нас уже есть. Развитие творческих способностей машины остановилось на том, что мы, люди, пока ещё не понимаем, каким образом мы можем не переформулировать имеющиеся смыслы, но порождать новые. Как только мы поймём способ работы этого механизма (или, хотя бы, предложим вероятное решение, которое сработает), рубеж будет пройден, и машина, неизбежно, получит такую же возможность.
Можем ли мы понять машину?
Как мы все знаем, процессор компьютера этого всего лишь аппарат, обрабатывающий последовательности нулей и единиц с помощью простейших математических действий, в то время как человек управляется много более сложными химическими и физическими процессами.
Но ведь не важно, на какой физической или химической основе мы работаем. В своё время существовали проекты химических процессоров, но кремниевая схема оказалась наиболее простой в изготовлении. Дело в уровне сложности и связности структур более высокого уровня, чем молекулы и электроны.
В момент, когда мы начали обучать нейросети, а не записывать алгоритмы, мы потеряли возможность понимать, как машина «думает» — структура её вычислений стала слишком сложной, подобной нашему разуму в буквальном смысле. Можем ли мы полностью понять способ мышления другого человека?
С каждым этапом усложнения, от простых нейросетей к автокодировщикам, от автокодировщиков к GAN, в их создании и обучении появляется всё больше человеческого, а не машинного. Преграды в развитии, как в случае с GAN, возникают от непонимания человеческого способа существования, а не внутренней организации машины. Пусть пока машине далеко до полноценного разума, но уже сейчас видно - машины никогда не будут чем-то отдельным от человека. Мы создаём их как часть общества, и общество, в виде всех его знаний — неотъемлемая часть такой машины. Мыслящая машина интегрируется в общественный организм на тех же условиях и по тем же принципам, что и сам человек.
А если так, вся идея о «восстании машин» ничем не отличается от идеи восстания одной части общественного организма против другой его части на почве неравенства в доступе к достижениям этого общества. Те, кто боятся восстания машин, точно так же боятся восстания рабочего класса и создания бесклассового общества.
Нет, мы никогда уже не сможем понять мыслящую машину полностью, как не можем полностью понять другого человека. Однако, мы можем понимать и другого человека, и мыслящую машину как часть целого, как часть общества, со своей ролью в нём.
А что — люди?
Мы создаём мыслящие машины как имитацию, подобие мыслящих людей. В такой работе мы неизбежно вскрываем принципы, на которых работает наш собственный разум, и наше собственное общество.
Создание мыслящей машины есть та самая научная практика, которая должна идти в диалектической связке с философской теорией. Это — уникальная возможность не теоретизировать о сущности мышления, а наглядно посмотреть на создание способности мыслить. А если мы можем воссоздать явление, значит, наше понимание этого явления истинно, как завещали нам философы-материалисты.
Невозможно понять разум и общество, в котором он существует, без попыток создания такого разума и общества своими руками. GAN — довольно примитивная модель разума, но она уже способна моделировать такие функции, которые лет десять назад казались доступными лишь человеку. На примере этой системы можно сделать множество выводов о том, как работает творчество в обществе, как соотносятся творцы и их критики, и как они обучаются. Но это оставлю вам на дом.
История развития разумных машин учит нас — не стоит объявлять разумность священным граалем человека разумного, и не стоит рассматривать разум и творчество в отрыве от общества. Подвергает сомнению ключевые принципы множества философских течений. Нас учили, братья и сёстры, что если теория противоречит практике — права, скорее всего, практика. А вы готовы сомневаться?
