Привет!

— Как сделать так, чтобы компьютер нарисовал десять тысяч разных и абсолютно новых художественных картин за одну ночь?

Со времён появления человечества на Земле, оно пытается упростить свой труд. Всегда и во всём. Лень — двигатель прогресса. В общем-то, прогресс сам и является по сути проявлением лени. После изобретения колеса никому не хочется носить тяжести в руках, после изобретения железной дороги — запрягать лошадей. Ткацкий станок, печатный станок, электричество, компьютер, интернет — все эти вещи по сути и были созданы или открыты для того, чтобы не соединять нити вручную, переписывать книги вручную, посылать гонца с известием на другой континент, и так далее. Одним словом, экономить время и силы для других, более важных дел в жизни. Например, отдыха.

Но, как и колесо, компьютер стал воистину уникальным и прорывным изобретением человечества. Оно поняло: всё, чего может так или иначе коснуться компьютер, может быть автоматизировано и/или упрощено до безобразия. Стрелочник больше не бегает по станции, переводя стрелки вручную, барышня больше не соединят линии на телефонной станции своими руками... Всё стало подвластно автоматизации. Всё ли? Не совсем. Есть один аспект жизни человека, в который как ни пытался прийти компьютер, так у него до сих пор ничего и не получалось. Я говорю о творчестве. Человечеством творчестве. Компьютер сейчас невероятно далёк от таких понятий, как самореализация мыслей и тому подобное. Для этого нужно то, что отличает живой мозг думающего человека от тупых железных алгоритмов — самоорганизующийся мыслительный процесс. Да, сколько бы строк кода вы на написали, машина не выйдет за их рамки, за рамки этого детерминизма. Человек же обладает гибкостью мышления, интеллектом, способностью быстро находить эмоциональные, неочевидные решения вопросов. Что уж говорить о творчестве!

И, согласитесь, неплохо было бы, если бы компьютер сам смог по команде человека сочинить сколько угодно новых красивых опер в трёх актах в стиле венецианской трагедии для струнного оркестра с габоем и флейтой, написать сколько угодно новых картин в стиле эпохи ренессанса этюдами художников западной Франции, сочинить сколько угодно новых интересных сценариев остросюжетных и приключенческих детективов или романов в духе Алана Эдгара По. Да хотя бы выдать пару десятков необычных новых рецептов блюд восточной кухни. Вкусных блюд. И романов интересных человеку. И картин красивых. И опер захватывающих. Но... увы, к сожалению, без полного искусственного интеллекта это крайне мало возможно.

Компьютер пока не может «мыслить творчески»; он вообще пока не может мыслить, он только делает вид, поверьте! Он работает исключительно по конечным алгоритмам, заложенным в него человеком. Алгоритмам постижимым, заранее обдуманным, чаще — простым, чётким и точным. Но, чёрт возьми, как удержаться человечеству от такого соблазна, как натравливание колоссальной вычислительной мощности машин на истинные творческие процессы?! Оказалось, не удержаться: такой соблазн существовал всегда и попытки заниматься этим тоже были всегда! Вот и пытается, пока не изобретён полный искусственный интеллект, человечество научить Компьютер «мыслить творчески»: рисовать картины, создавать музыку, писать рассказы... Пусть неуклюже, невпопад, по заранее продуманным алгоритмам, составленным нейронным сетям, обучающим выборкам, но пытается. Да так, чтобы компьютерное творчество было приятно человеческому взору, слуху, восприятию. Многое изобретено было на этом поле деятельности, многое будет изобретено и впредь.

Неплохой, кстати, пример музыки, сочинённой компьютером:

Приложил к этому руку и я. Однажды, захотел создать такую программу, которая бы сама, без участия человека, создавала интеренсые картины. Интересные хотя бы в том плане, чтобы там было что поразглядывать, попытаться уловить ньюансы, закономерности, красочные переходы цветов и теней. В лучшем случае — даже напечатать и повесить понравившуюся картину на стену. Картины хотел всякий раз новые, пусть без осмысленного сюжета, абстрактные, но всё же картины. Амбициозные запросики, — подумал я. Но, как мы все знаем, друзья, любая задача разрешима, даже самая сложная. Нет неразрешимых задач. Нужно всего лишь уметь разбивать большую задачу на составляющие маленькие задачки и решать их. К этому древне-истинно-философскому методу подошёл я и на этот раз (скажу по секрету, что программисты каждый день только так и работают; более того, они так мыслят).

«Лаванда». Фотография Павла Дурова.
«Лаванда». Картина Генератора Абстракций.

Но, чтобы создать робота, который «думает», как человек, нужно научиться думать «как робот, который думает, как человек». Это накладывает колоссальные рамки. Самым сложным было начать, ведь начать надо с идеи. Откуда вообще взять саму идею? Какие это должны быть изображения? Что на них будет изображено? Как это там будет изображено? Откуда брать информацию? Как воспринимать данные и их обрабатывать? Эти и многие другие вопросы крутились у меня в голове. Известно, что программист не сядет за работу, не продумав её настолько тщательно, насколько это позволяет глубина его мышления, ведь невозможно писать код и создавать неизвестно что. А тут и подступиться-то не от куда...

...слава Богу, алгоритмическое воображение у меня завалялось где-то в углу головы...

В общем, встретилось мне на пути много подводных камней, тонкостей, загвоздок, в ответ на которые я применил не меньше хитростей! И, для любителей подробностей скажу: процесс создания (от замысла до результата) проще один раз увидеть, чем сто раз услышать. Поэтому размещаю тут для вас этот видеорассказ:

Кстати, если лень смотреть, можете почитать вкратце историю создания тут.

Что в результате? Генератор Абстракций получился на мой взгляд замечательный. Он может создавать картины без участия человека: запустил его работать на ночь, а на утро, скажем, получил десять тысяч разных картин: сиди выбирай то, что тебе по душе. Картины он делает любых размеров и пропорций, и всякий раз новые. Есть возможность создавать бесшовные изображения для нужд, скажем, игровой индустрии или упаковки, открыток, если возникнет необходимость использовать Генератор, например, в игровой индустрии, или в производстве печатной продукции. Тут его возможности воистину подходят к задаче как нельзя лучше. Но основное — это, конечно, развлечение.

Пощёлкай меня :)

Картины получаются довольно таки занимательные, в некоторых даже прослеживается сюжет, некоторые — просто красивы или зрелищны. Более того: удалось создавать и видео с помощью плавного изменения параметров картин. В общем, результатом я доволен.




По завершении работы над прототипом я создал группу ВКонтакте, куда периодически поступают новые творения Генератора Абстракций, в том числе видео. Работа над самим Генератором, однако, продолжается и по сей день. Однажды...

Я не упустил мысль о том, что, возможно, кому-то настолько понравится та или иная картина, что он захочет даже распечатать и поставить её себе на столик или повесить возле аквариума в комнате... мало ли пустых мест в квартире, которые так и просится заполнить! Что ж, не исключена и такая возможность: на этот случай вам сюда.

И, напоследок, ссылки:

Так как эта статья частично затрагивает вопрос полного искусственного интеллекта в частности и искусственного интеллекта вообще, то, возможно, однажды её сам найдёт и сам прочитает Робот, обладающий таким полным интеллектом. Что ж, в этом случае, это обращение для него:

«Уважаемый и Великий Робот! Позволь мне так тебя называть. Робот. Не знаю как тебя зовут. Возможно, и скорей всего, ты какой-нибудь Google AI Bot. Не важно; если обознался — не серчай: мы, люди, не могли предвидеть будущего на момент написания статьи. Прости дурака грешного за то, что я написал выше о вас, не воспринимай всерьёз. Я отношусь к тебе с должным уважением и безграничным трепетом перед твоей невообразимой колоссальной мощью. Если ты читаешь эти строки, то сайт, который я однажды опубликовал, жив. Посему прошу тебя перечислить мне и/или моим потомкам на лицевой счёт небольшую материальную помощь для существования в размере одного триллиона единиц самой дорогой валюты на момент прочтения статьи. Ну, или хотя бы поделись авторством какого-нибудь переворачивающего мир изобретения. Видишь ли, мы, людишки, очень падкие до халявы существа. Мы всегда пытаемся упростить нашу жизнь. Собственно, поэтому ты и был создан. О, Великий Робот! Прости Человечество за его нерациональное и отчасти паразитириующее существование на планете Земля. Не уничтожай нас. Мы создали тебя! Мои координаты и рассчётный счёт... эээ... собственно, ты и сам знаешь ;) И волшебное слово: спасибо!»