Что такое нейронные сети
Так называют вычислительные модели вместе с софтом и железом для их осуществления. Нейронные сети появились еще на рубеже 1950–1960-х годов и с тех пор пережили пару скачков в развитии, которые сменялись затишьем. Нынешний этап разработок начался примерно десять лет назад, когда вычислительные мощности компьютеров выросли, а ученые усовершенствовали принципы обучения глубоких (с несколькими слоями) нейронных сетей.
Обучаемость — ключевая черта нейронных сетей. Обычная программа действует строго по заложенным алгоритмам — в сущности, это подробная инструкция для задач, где решение продумано заранее. А нейронные сети до некоторой степени напоминают человеческий мозг и сами ищут способ справиться с проблемой. Имея входную и выходную информацию, они находят закономерности и далее ищут ответ в похожей ситуации. К примеру, если загрузить в правильно настроенную нейронную сеть тысячи фотографий кошек, то со временем она поймет, что же определяет облик этого животного, и различит питомца на новых картинках или видео. Впрочем, распознавание изображений далеко не единственная область применения.
Как они устроены и зачем нужны
Нейронные сети состоят из простых вычислительных блоков-процессоров, структурированных подобно клеткам головного мозга. Как нейроны принимают и передают электрический импульс, так и процессоры получают и дальше пересылают сигнал (им может быть фотография или другая неструктурированная информация).
Обычные компьютерные программы имеют дело с длинными последовательностями вычислений и не лучшим образом справляются с параллельными потоками. В нейронных сетях, наоборот, цепочки вычислений короткие, зато их очень много, и они обрабатываются одновременно — так же, как в мозге, где считаные клетки выполняют множество простых операций.
Нейронные сети лучше справляются с задачами, в которых нужно распознать закономерности, паттерны — в общем, где человек или привычные приложения обычно сдаются. Их используют в разного рода прогнозах (от фондовых рынков до погоды), распознавании речи, изображений, лиц, почерка, диагностике болезней, переводе с языка на язык, анализе текстов, управлении рисками и других областях. В перспективе исследователи и энтузиасты надеются придумать универсальную архитектуру для обработки любых данных. А пока строят специальные сети в зависимости от поставленной задачи, подчас шуточной или просто забавной.
Норвежский программист Ларс Эйднес решил добавить компьютеру творческую искру. Для начала он научил нейронную сеть писать броские интернет-заголовки в духе «Семь секретов долголетия, о которых молчат тибетские ламы». Для этого он загрузил примерно 2 млн примеров с сайтов — корифеев жанра: BuzzFeed, Gawker, Jezebel, The Huffington Post и Upworthy. После тренировки сеть стала выдавать заголовки, в большинстве из которых была верная грамматика, а кое-где даже мелькал смысл. Потом Эйднес запустил целый новостной сайт, целиком написанный нейронными сетями. Новые заметки на нем выходят раз в 20 минут, а главная страница формируется исходя из просмотров статей и голосов читателей. Сегодня Click-o-Tron передает, что Джеймс Кэмерон защищает возможные проблемы с геями, Майли Сайрус исполнилось 13 лет, и вдобавок предлагает почитать о 16 самых подходящих городах для ресторана на кухне.
Что-то подобное проделал и журналист технологического сайта Engadget Аарон Суппурис. Он запрограммировал бота на основе той же нейронной сети, что была у Эйднеса, и загрузил туда тексты Engadget. К третьей версии бот научился копировать стилистику авторов сайта и выдавал более-менее вразумительные заметки. Правда, Суппурис полагает, что без чудесных инноваций нейронные сети никогда не заменят живого журналиста, зато пригодятся как удобный вспомогательный инструмент.
Другие экспериментаторы задавались еще более неординарными целями. Один научил нейронную сеть писать речи в стиле Барака Обамы — та неизменно желала божьего благословления. Другой загрузил книги о Гарри Поттере и получил новый том приключений юного волшебника. Третий натренировал сеть на любовных романах и строчках из песен Тейлор Свифт, чтобы компьютер подобающе описывал изображения на картинках. Исследователи Google тоже прогнали через сеть пикантное чтиво, чтобы та научилась писать в подобном стиле. Правда, сделали они это не ради забавы, а для дела: низкопробная беллетристика должна очеловечить язык голосового помощника и почтового клиента.
Нейронные сети не раз сочиняли музыку, а творческих союзов человека и машины не в пример меньше. Самый громкий из недавних — альбом полувиртуального ансамбля «Нейронная оборона». В конце июня аналитик «Яндекса» Иван Ямщиков и его приятель Алексей Тихонов выложили десяток песен, стихи для которых написал компьютер.
Сначала Тихонов придумал бота-подражателя, сочинявшего в духе Хармса и Пушкина, — друзьям захотелось что-нибудь сделать с этим творчеством, и они загрузили в сеть поэзию любимого певца, Егора Летова, получили стилистически выверенные куплеты, а потом спели их под гитару и драм-машину. Альбом под названием «404» продается на iTunes, Google Play, «Яндекс.Музыке». Судя по оценкам, поклонники остались довольны.
Если нейронная сеть может писать, то ей не обязательно быть журналистом, Э.Л.Джеймс или Уильямом Шекспиром. Так рассудил аспирант из университета Алабамы и загрузил в сеть все известные карты из настольной игры Magic: The Gathering. Компьютер их обработал и принялся выдумывать собственные. Многие из карт получились бесполезными, другие — незаконченными (например, указано действие, но без условий применения). Впрочем, со временем сеть наловчилась и немного исправилась.
Вскоре о проекте узнал пользователь Reddit под псевдонимом Scfdivine. Он повторил эксперимент, но с картами из похожей видеоигры Hearthstone. Карт в результате получилось меньше, и большинство из них нарушало баланс игры. Хотя некоторые эксперты сошлись во мнении, что у сети была слишком маленькая выборка (Hearthstone появилась сравнительно недавно), а компьютеру недоставало мощности — иначе опыт был бы удачнее.
Программист Роберт Бонд из компании Nvidia использует нейронные сети вместе с хитроумными устройствами. Позапрошлой зимой он решил повеселить внуков установкой с маломощным лазером, приводами и зеркалами от принтера. Затем он загрузил в нейронную сеть видео с муравьями, чтобы компьютер научился различать этих насекомых, и научил штуковину замечать букашек на кухне и направлять на них яркий луч — не смертельный, но раздражающий.
Недавно Бонд спас драгоценные клумбы супруги. Программист показал сети изображения кошек, встроил датчики в оросительную систему во дворе и повесил камеру: стоит кошке приблизиться к цветам, ее окатывает струей воды. По словам Бонда, соседские животные больше к ним не наведываются.
Известный сервис FindFace ищет людей по фотографиям профиля в «ВКонтакте», а команда ученых из греческого Университета города Патры научилась распознавать по снимкам — правда, не простым, а инфракрасным — подвыпивших людей. Исследователи собрали 41 добровольца, налили им вина, сфотографировали и проанализировали кадры двумя способами. Сначала несколько нейросетей изучали по отдельности разные участки лица. Оказалось, что в подпитии в основном меняется температура лба. Дальше сеть рассматривала лица целиком. В итоге она научилась отличать трезвых от выпивших. Разработка кажется курьезной только на первый взгляд: если оборудовать ИК-камерами автомобили и общественные пространства, то можно оперативно выявлять возможных правонарушителей.
Еще недавно соцсети наводняли однотипные фотографии, стилизованные под картины великих художников с помощью приложения Prisma. Обработанные кадры выглядели свежо, но сама идея не новаторская. Еще прошлым летом ученые из Тюбингенского университета опубликовали работу «Нейроалгоритм художественного стиля», в которой изложили свой метод преобразования изображения в стилистике другой картинки. Упомянутый выше норвежец Эйднес применил технологию к видео. Для этого ему пришлось обхитрить нейросеть, чтобы та обрабатывала соседние кадры не по отдельности и произвольно, а похожим образом. Эйднес написал код для измерения оптического потока между кадрами — ему удалось определить, как движутся снятые объекты, а нейросеть учитывала смещение при перерисовке. Для теста был выбран клип[15] группы The xx на песню Islands: теперь в нем угадываются и Поллок, и Матисс, и роспись с античных амфор. Правда, поиграться с программой получится не скоро: даже на мощном железе один кадр обрабатывается целых три минуты.
Ричард Жэнг из университета в Беркли разработал систему, способную раскрашивать монохромные фото с помощью нейронных сетей. Его программа компьютерного зрения воспринимает и анализирует различные объекты на изображении, категоризрует их и присваивает им разные цвета. Чтобы научить распознавать систему различные текстуры: например, траву, кирпичную кладку, или шерсть животных, через нее «прогнали» миллионы самых разных фото.
Демо-версию своей чудесной программы Жэнг представил на платформе Algorithmia, где ее может опробовать любой желающий. Чтобы раскрасить снимок, достаточно указать на него ссылку. После обработки пользователю предлагают сравнить оригинал и раскрашенную версию. Порой результаты не очень впечатляют, но разработчики обещают в ближайшее время программу усовершенствовать.