приведены на рис. 9.7.
Но одна из самых впечатляющих демонстраций GAN – это статьи из финских лабораторий NVidia, где сверточная GAN смогла создать очень качественные и очень реалистичные лица после обучения на примере портретов известных людей[126].
У GAN и современных генеративных моделей в более общем плане есть много приложений для творчества: раскрашивание старых пленок, увеличение разрешения изображения, инструменты для обработки изображений и синтеза. Некоторые используют их для синтеза звука и музыкальных композиций.
Рис. 9.7. Одежда с напечатанным рисунком, произведенная методом состязательного обучения
Генератор со сверточной архитектурой был обучен на коллекции изображений модных вещей от известного дизайнера.
Но у этих методов может быть и очень сомнительное применение. Например, «дипфейки», то есть очень правдоподобные на первый взгляд изображения или видео (иногда очень вульгарные), на которых политики или люди искусства оказываются в щекотливом или недостойном положении.
При помощи GAN также можно менять и голос: человек А говорит предложение, а мы можем преобразовать голосовой сигнал так, как будто предложение сказал человек Б с его собственной интонацией, акцентом, особенностями речи и т. д. Для этого достаточно записать образец голоса человека Б и затем клонировать его.
Поскольку обучение GAN проводится без учителя, появилась надежда на использование состязательных методов для предварительного обучения системы перед обучением с учителем. Это позволило бы сократить количество примеров, необходимых в ходе обучения, однако эти методы пока не привели к существенным улучшениям в работе систем технического зрения.
Кроме того, никто не нашел способа использовать их для создания текста. GAN «предпочитают» непрерывные данные, подобные изображениям, дискретным данным, таким как текст.
Способность к прогнозированию
Мы говорили про обучение без учителя для построения представлений данных. Конечная его цель – позволить машинам изучать модели мира путем наблюдения. Тогда обучение роботов могло бы идти намного быстрее.
На сегодняшний день машинам, в отличие от человека или животных, не хватает способности предугадать последствия своих действий. У нас есть модель мира в нашей префронтальной коре головного мозга, которая позволяет нам предсказывать динамику окружающей среды и предсказывать последствия этих изменений, поэтому мы можем с надежностью планировать то или иное действие (или последовательность действий). Часть исследований ИИ работает над тем, чтобы наделить машины этой способностью, но они пока находятся в зачаточном состоянии.
А погода, спросите вы? Она, по сути, предсказывает движение облаков и изменения барометра. Прогнозирование – это его «ДНК», как и у менее знакомых нам систем управления робототехникой, аэронавтикой или промышленными процессами. У робота есть подробная модель его динамики, которая позволяет ему прогнозировать то, как воздействие на его двигатели повлияет на положение и скорость его «конечности». НАСА использует уравнения динамики ракеты для планирования траектории стыковки с Международной космической станцией. Но все эти модели написаны инженерами вручную с применением механики Ньютона: вот в чем разница. Эти роботы не обучены. То же самое и с прогнозом погоды или расчетом обтекания самолета, законы которого написаны вручную физиками, освоившими гидродинамику или метеорологию.
С другой стороны, прогнозирование потребления электроэнергии в городе, стоимости финансовых активов или недвижимости, электорального поведения населения или даже реакции организма на лекарство – это не уже физика. Одних базовых принципов, таких как сохранение энергии или импульса, недостаточно для написания этих моделей. Сложные коллективные явления редко можно свести к нескольким основным принципам. Мы должны полагаться на феноменологические модели, которые ограничиваются прогнозированием интересующих нас переменных на основе наблюдаемых данных, не прибегая к редукционистской модели причинно-следственных связей между этими переменными. Цена дома зависит от жилой площади, количества комнат, размера земельного участка. Но оно также зависит от критериев, которые труднее определить количественно, таких как качество школ в районе, внешний вид дома или спокойствие и привлекательность района. Трудно все это вставить в уравнение!
Вы можете обучить систему (нейронную сеть или что-то еще) предугадать цену на основе этих данных и надеяться, что вы предоставили ей все необходимые переменные. Но обучение модели прогнозированию того, что произойдет даже в относительно простых ситуациях, – это совсем другое дело. Заходим в комнату. Малыш, который только начал ходить, бросается к нам в объятия, не заметив лежащего на земле электрического провода. Споткнется ли он, ударится ли головой о журнальный столик, опрокинет ли вазу, стоящую на краю стола? Эти предвидимые нами обстоятельства заставляют нас поспешить, чтобы не дать ребенку упасть. Но как робот может узнать достаточно о том, как устроен мир, чтобы представить и предотвратить все это?
Подобный «электромеханический работник» должен был бы наблюдать за ситуацией своей камерой и предугадать, как и мы, ряд возможных сценариев. Однако взаимосвязи, которые позволят прогнозировать действие на основе видеофрагмента, чрезвычайно сложны.
А теперь представьте себе робота-повара. Несмотря на то, что его рабочая зона (и работа в целом) ограничены, он, тем не менее, уже должен иметь весьма сложную модель мира. Как и любой повар, он должен уметь предугадывать, что произойдет, если он добавит молоко в муку или когда он доведет соус до кипения. Он должен понимать то, что мы считаем само собой разумеющимся: если он, например, перельет содержимое большой емкости в маленькую, значительная часть его пропадет. Он должен обладать достаточными знаниями в области интуитивной физики, чтобы знать, что стакан упадет после толчка, что необходимо обойти или переместить салатницу, чтобы вытащить пакет сахара, или какие движения нужно сделать, чтобы вставить насадки в электрический миксер. Итак:
1. Количество входных переменных огромно: их, возможно, миллионы, включая изображения с одной или двух камер, датчики расстояния, касания, силы, температуры, микрофоны и т. д.
2. Модель, описывающая состояние «мира» (кухни) в момент времени t + 1 в зависимости от его состояния в момент времени t и выполняемого действия, чрезвычайно сложна.
3. Постоянно приходится иметь дело с чем-то непредсказуемым.
Учитывая состояние мира (кухня или среда, в которой находится робот, что бы это ни было), и учитывая действие робота, модель должна предсказывать все возможные состояния мира в будущем. Часто его представляют следующей функцией:
s[t + 1] = f([t], a[t], z[t], w),
где s[t + 1] – будущее состояние, s[t] – текущее состояние, a[t] – выполненное действие, а z[t] – скрытый вектор, представляющий все непредсказуемое в эволюции мира. Эта функция должна быть выполнена нейронной сетью.
Как ее обучить? Начнем с конкретной ситуации s[t]. Мы выполняем действие a[t], произвольно вносим z[t] и наблюдаем результаты в мире s[t + 1]. Затем мы корректируем w, параметры f, так, чтобы прогноз приближался к наблюдаемому результату. Возможно несколько прогнозов, и это обстоятельство все усложняет. Мы можем