Что умеют нейросети? 35 проектов, созданных искусственных интеллектом | Технологии | Блог
В 2017 году Илон Маск заявил, что искусственный интеллект — угроза для всего человечества. А уже спустя два года он с гордостью сообщил, что разрабатывает систему Neuralink — имплантирование компьютерных чипов прямо в мозг людям. Кажется, сторонники конспирологических теорий в качестве жертвы выбрали не того человека. В чем-то Маск все-таки был прав: искусственный интеллект уже сейчас может делать очень много — снимать видео, писать картины и тексты и даже создавать новых людей.
Нео-Рембрандт и кибер-сюрреализм
Нейросети, обрабатывающие изображения, стали уже нормой. Фоторедакторы, добавляющие макияж и прически на сэлфи; креативная обработка снимков а-ля классическая живопись или абстракция в духе Ван Гога — всем этим уже не удивить. Последний тренд — нейросеть Selfie 2 Waifu, которая превращает ваше лицо в аниме-персонажа. Работает кривовато, но забавно.
А вот искусственный интеллект, создающий картины с нуля — это уже посерьезнее. Правда, станковым художникам вздрагивать пока рано — чтобы нейросеть выдала что-то более-менее логичное и приятное глазу, ее нужно обучить тысячами примеров. Например, китайская художница Сугвен Чунг сначала научила искусственный интеллект на примере своих собственных рисунков, а потом начала устраивать арт-перфомансы, где машина рисует картины вместе с ней. На своем выступлении на конференции TEDx она сказала, что ИИ в искусстве — это «слияние технологии и философии».
И таких примеров масса. Например, Дэвид Янг учит ИИ рисовать цветы (тоже по своим собственным работам), Даниэль Амброси — абстрактную природу, Софи Креспо — несуществующие биологические микроорганизмы.
Самым громким событием в мире «искусственного искусства» стал портрет Эдмонда де Белами, созданный нейросетью в 2018 году. Картина оказалась настолько интересной, что была продана на аукционе Christie’s за 432 500 долларов. Французская арт-группа Obvious тренировала свою нейросеть по данным WikiArt. Прежде чем создать коллекцию полотен «La Famille de Belamy», ИИ обработал более 15 000 классических картин в период с 14 по 19 век.
Искусственный интеллект под руководством Марио Клингеманн создал серию картин, обогнавших по проработке и красоте средневековую семейку Беллами. Коллекция «Воспоминания прохожих» не стала такой же золотой птичкой на аукционах, но была оценена Sotheby’s в 40 000 евро. Выглядит творение машины и Клингеманна очень впечатляюще.
Кстати, программу для создания того самого Эдварда Белами написал Робби Баррат — 20-летний парень, уже преподающий в Стэнфорде. И этот опыт не стал для него последним. Позднее Баррат загрузил нейросеть десятком тысяч обнаженных тел. В итоге ИИ начал выдавать то, что сам Баррат назвал как «сюрреалистические капли плоти с конечностями». Сальвадор Дали для создания своих картин покуривал опиум, а теперь для сюрреализма достаточно уметь хорошо программировать.
Одним из самых невероятных событий в мире кибер-искусства стала выставка картин, на которой присутствовал сам их автор — робот. ИИ в виде гуманоиодного — и весьма миловидного — робота по имениAI-Da явился на свою собственную экспозицию в Оксфорде.
Основное отличие «Аиды» от всего, что было раньше — она рисует в реальном пространстве прямо на бумаге. С помощью встроенной камеры она анализирует предметы, считывает координаты реального пространства и создает алгоритмы виртуальной модели, которую затем переносит на настоящий холст. «Аида» умеет рисовать красками, карандашами и даже лепить из глины.
«Выставка ставит под сомнение наши отношения с технологиями и миром природы. Искусственный интеллект и новые технологии могут быть одновременно прогрессивной и разрушительной силой для нашего общества. Кроме того, Ai-Da сама по себе предмет искусства. Ее существование поднимает вопросы, связанные с биотехнологией и трансгуманизмом», — прокомментировали это событие оксфордские галеристы.
«Возьми, умри. А потом живи как бегун» — тексты от нейросетей
ИИ все увереннее входит в современную журналистику. Уже сейчас информационное агентство Bloomberg News создает примерно треть своего контента с помощью нейросети Cyborg, которая быстро обрабатывает отчеты и составляет новости. А вот статья The Guardian, также написанная искусственным интеллектом. В The Washington Post «работает» робот-журналист Heliograf, в агентстве Associated Press статьями о финансовых отчетах тоже занимается ИИ.
Мировая журналистика видит в искусственном интеллекте огромный потенциал для автоматизации механических процессов. При этом крупнейшие издания не считают, что ИИ вытеснит людей из профессии, так как журналистика — профессия творческая, ориентированная на любопытство, дедукцию и поиск фактов.
В это же время нейросети потихоньку учатся не только обрабатывать данные для сухих новостных статей, но и писать художественные книги и сочинять стихи. Долго считалось, что поэзия — это вообще нереально для нейросетей. Пока в 2013 году у «Яндекса» в соавторстве с Google не появился «Автопоэт», который сочиняет стихи из поисковых запросов. Получается у него, конечно, полная бессмыслица, но иногда от нее веет таким холодком безысходности, что, как ни крути, а проникаешься.
В 2016 году Google решили научить нейросеть писать стихи по книжкам — ИИ обработал около 11 тысяч книг и начал выдавать декадентскую поэзию, которая вполне себе может поспорить с некоторыми творениями людей:
«Он надолго замолчал. Он смолк на мгновение. На секунду стало тихо. Было темно и холодно. Возникла пауза. Теперь мой черед».
Годом позже за дело взялись Facebook AI Research — дочернее подразделение одноименной компании по разработке ПО для искусственного интеллекта. Они поставили нейросети задачу не только считывать стихотворные размеры и рифмовать слова, но и вкладывать в это все хоть какой-то смысл. Нейросеть учили уже не по поисковым запросам и прозе, а по настоящим стихам. По итогам обучения исследователи организовали опрос, предлагая людям выборку из стихов, написанных реальными людьми и искусственными интеллектом. В половине случаев респонденты ошиблись, не отличив кибер-поэзию от реальной. Вот, например, что-то в духе Оскара Уайльда в стихах:
«The frozen waters that are dead are now black as the rain to freeze a boundless sky, and frozen ode of our terrors with the grisly lady shall be free to cry».
Илон Маск тоже не тормозит — его компания OpenAI уже не первый год совершенствует программу по генерации текстов, и буквально весной 2020 года вышло уже третье обновление текстовых алгоритмов GPT-3. Эта нейросеть «знает» более 570 гигабайт текста и 175 миллиардов примеров, чтобы выдавать не просто пару осмысленных предложений, но писать целые статьи и эссе. Разработчики говорят, что их детище настолько крутое, что они не хотят выпускать нейросеть в свет, опасаясь вредоносного применения. В массовом доступе есть только упрощенный вариант предыдущей версии генератора GPT-2, который даже можно скачать вот здесь.
Российские разработчики тоже включаются в дело. В ответ на многомиллиардные разработки Илона Маска московский разработчик Михаил Гранкин создал «Порфирьевича» — текстовую нейросеть, которая создает немного текста на основе пары фраз или предложений. По сути «Порфирьевич» — это тот же GPT-2, которого Гранкин адаптировал на русский язык.
При этом получается у «Порфирьевича» не только весьма убедительно, но и частенько с чувством юмора. Еще бы, он ведь учился на творчестве Достоевского, Булгакова, Гоголя и немного Пелевина.
Михаил Гранкин пошел чуть дальше и решил поучаствовать в гонке за звание лучшей кибер-поэзии. Так появился телеграм-бот «Нейропоэт», которому нужно дать пару строчек, а дальше он сам сгенерирует стихотворное продолжение.
Кроме текстов, нейросети начали писать сценарии. В 2019 году ИИ создал концептуальный ролик для Nike, обучившись на рекламных слоганах компании за последние 8 лет. Получилось очень в духе бренда, стильно и симпатично. Правда, если поймать стиль у нейросети точно получилось, то с содержанием все не так неоднозначно. Вроде бы ИИ пропагандирует крутую идею про преодоление: «Жизнь несправедлива. Если бы у тебя была всего одна рука, то не просто смотри на марафон. Сначала — марафон», но потом почему-то советует вот это: «Будь не просто миром. Возьми, умри. А потом живи как бегун».
А вот у искусственного интеллекта IBM Watson получилось куда круче. Эта нейросеть написала сценарий для рекламы седана Lexus E. И она училась не по рекламным кампаниям бренда, а вообще по всем самым крутым роликам про автомобили, получившим Каннскую награду за 15 лет. Британский кинорежиссер Кевин Макдональд в соавторстве с креативным агентством The&Partnership London сняли ролик по сценарию нейросети и получилось… да круто получилось!
От Шостаковича до Егора Летова
В 2016 году разработчики «Яндекса» Иван Ямщиков и Алексей Тихонов выпустили музыкальный альбом. В его создании принимал участие Егор Летов и нейросеть. Получилась «Нейронная оборона» — искусственные тексты в духе Гражданской Обороны. На самом деле этот первый резонансный опыт нельзя полностью записать на счет ИИ. Ямщиков и Тихонов сами сочиняли музыку, сами пели, да и выборку строчек из песенных текстов для алгоритма нейросети тоже собирали сами.
Вслед за «Нейронной обороной» эти же разработчики научили нейросеть сочинять в духе Курта Кобейна, а затем написали целую пьесу «Цифровой восход», которую впоследствии исполнил оркестр Юрия Башмета. Но даже здесь, несмотря на то, что нейросеть училась у Баха и Шостаковича, пришлось поработать человеку. Композитор Кузьма Бодров вручную обрабатывал кучу аудиодорожек, созданных ИИ, дописывал и развивал выбранные фрагменты и собирал их в одну композицию.
В 2017 году состоялся еще один музыкальный эксперимент от классики. На сей раз Ямщиков и Тихонов взяли за основу стиль Александра Скрябина, а аранжировкой и сборкой получившихся аудиодорожек занималась композитор Мария Чернова.
Конечно, «Яндекс» — не единственный, кто учит нейросети сочинять музыку. В том же 2017 году вышел альбом Hello World, написанный ИИ и доведенный до ума группой композиторов и музыкантов. Вышло несколько футуристично, но очень даже интересно.
А вот песня от проекта Flow Machines, которая очень напоминает творчество The Beatles.
OpenAI тоже работает над тем, чтобы научить свои нейросети музыке. Так появился проект Jukebox, который создает и тексты, и музыку, и уже нагенерировал больше семи тысяч композиций. Пока журналисты и композиторы признают Jukebox самым интересным музыкальным алгоритмом из всех существующих. Jukebox действительно очень неплохо имитирует жанры и повторяет стиль известных исполнителей и групп, у которых учится. Ключевое отличие Jukebox от всего, что было раньше — она выдает готовый продукт автоматически. То есть и играет, и поет нейросеть сама без участия человека. Послушать творчество OpenAI можно здесь.
Все же, в музыке нейросети еще не настолько самостоятельны, как в живописи и текстах. Пока в большинстве случаев ИИ выдает набор звуков, не связанных ни ритмом, ни композицией, из которых композиторы уже вручную отбирают интересные сочетания и созвучия.
Новые люди и…котики!
Не то чтобы нейросети научились создавать реальных людей, которые ходили бы рядом с нами. Но вот генерировать фотографии несуществующих людей — вполне и весьма качественно. В прошлом году Филипп Ванг на базе алгоритма StyleGAN от Nvidia запустил сайт, который может бесконечно создавать человеческие портреты.
Алгоритм работает в комбинации двух нейросетей: одна генерирует изображение, а вторая проверяет его на реалистичность. Адаптация происходит настолько ошеломляюще реалистичной, что отличить фейк от настоящего лица нереально.
На этом Nvidia не остановились, запустив аналогичные сервисы по созданию лошадей, молекул, картин и, конечно, котиков! Кстати, создать своего собственного несуществующего котика можно и с помощью сервиса Affinelayer. В одном окошке вы рисуете кота, в другом нейросеть генерирует что-то по вашему рисунку. Получается далеко не так реалистично, как у предыдущего алгоритма, но так и первоисточник в виде ручного рисунка — так себе.
Многие разработчики, стоящие за созданием алгоритмов нейросетей, по-прежнему не считают, что искусственный интеллект — во всяком случае пока что — сможет всецело заменить какие-то профессии. Работа нейросетей все равно основана на считывании уже существующих данных и примеров, созданных живыми людьми. Чтобы сгенерировать пару строчек более-менее осмысленного текста, нейросеть обрабатывает сотни тысяч уже написанных книг, а чтобы нарисовать котика, похожего на настоящего — миллионы фотографий настоящих котов. Человеческое воображение и творчество по-прежнему остаются источником данных для машинных алгоритмов. Так что если вы художник, писатель, поэт или музыкант, то беспокоиться пока рано. Но кто его знает, что случится в будущие годы…
FaceApp отдыхает. 7 бесплатных и полезных нейросетей, которые упростят вашу жизнь
GauGAN не даст рисовать, как профан
GauGAN — это нейросеть компании Nvidia. Она умеет дорисовывать за человеком картины. Причём уровень додумывания у программы невероятный. Достаточно нарисовать буквально несколько простейших фигур и пару-тройку линий, а дальше GauGAN сделает всё сама. А именно — превратит человеческий примитив в шедевральный пейзаж типа заставки для Windows XP.
Открой портал в аниме
Стилизовать портрет под карандашный скетч или рисовать на лице морщины — это, конечно, интересно. Но как насчёт того, чтобы за несколько секунд превратить себя в персонажа какого-нибудь аниме? Нейросеть Selfie2Anime частично эту задачу решает. Аниме или мангу ИИ про человека не сочинит, а вот превратить фотографию в анимешный рисунок — вполне. Как ни странно, сервис родом не из Японии, а из Петра, что в Западной Австралии.
Нейросеть для развлечения — хорошо, а нейросеть для дела — ещё лучше. Одной из таких является Inpainting, авторами которой, к слову, тоже являются разработчики из Nvidia. Главная ценность данного сервиса — ретуширование ненужных объектов на снимках. Лишними могут оказаться как морщины на лице, так и, например, случайный человек, который своим присутствием испортил классный пейзаж. Приятно и то, что для работы с Inpainting не надо проходить специальные курсы. На всё про всё в работе с сервисом уходит не более пары минут.
Игра, в которой доминирует нейросеть
И нет, Quick, Draw! учит рисовать не таким читерским способом, как GauGAN. Алгоритм просит схематично изобразить стол, стул, хлеб или что-нибудь ещё, а человек, исходя из задания, рисует скетч. Причём на время — Quick, Draw! даёт на рисунок 20 секунд. Забава очень простая, но затягивающая. И в каком-то смысле полезная. Авторами сервиса являются разработчики из Google. Цель проекта — натренировать ИИ распознавать объекты на изображениях.
Стань королём Photoshop за одну минуту
Подозреваем, что многие люди приходили к Photoshop из-за такой тривиальной задачи, как отделение объекта на фотографии от фона. Программа от Adobe, разумеется, на это способна. А вот человек найти нужные рычажки и кнопки может далеко не всегда. Так вот, хвала математике, появилась нейросеть, которая способна выполнить описанную выше задачу всего за минуту. Называется она remove.bg.
В конце концов, просто забудь про Photoshop
Потому что, если поискать, можно, кажется, найти нейросеть, которая заменит любую популярную функцию знаменитого редактора изображений. Мы уже рассказали, как ретушировать ненужное и отделять объекты от фона, а теперь покажем, как быстро и качественно менять лица людей на снимках. Понадобится только одно — нейросеть Reflect. Самое ценное в сервисе то, что он меняет лица, сохраняя при этом мимику и тон кожи оригинального изображения.
Добавь моментам из прошлого красок
Возникла мысль о том, что в России не делают полезных нейросетей? Гоните её прочь и держите как минимум один прикольный отечественный алгоритм — Colorize от компании G-Core Labs. Данная программа тоже редактирует фотографии. А именно — добавляет цвета чёрно-белым снимкам. Да-да, с её помощью можно сделать именно то, о чём вы подумали: раскрасить старые фотографии из семейного альбома.
Стоит, правда, знать, что бесплатно улучшить фотографии можно только первые 50 раз. Далее придётся оформить платный доступ.
19 отличных бесплатных нейросетей | Компьютерра
К 2019 году искусственные нейронные сети стали чем-то большим, чем просто забавная технология, о которой слышали только гики. Да, среди обычных людей мало кто понимает что из себя представляют нейросети и как они работают, но проверить действие подобных систем на практике может каждый – и для этого не нужно становиться сотрудником Google или Facebook. Сегодня в Интернете существуют десятки бесплатных проектов, иллюстрирующих те или иные возможности современных ИНС, о самых интересных из них мы и поговорим.
Из 2D в 3D
На этом сервисе вы сможете вдохнуть новую жизнь в свои старые фотографии, сделав их объемными. Весь процесс занимает меньше минуты, необходимо загрузить изображение и через несколько секунд получить 3D-модель, которую можно покрутить и рассмотреть во всех деталях. Впрочем, есть два нюанса — во-первых, фотография, должна быть портретной (для лучшего понимания требований на главной странице сайта представлены наиболее удачные образцы снимков, которые ранее загружали другие пользователи; во-вторых, детализация получаемой модельки зачастую оставляет желать лучшего, особенно, если фотография в низком разрешении. Однако авторы разрешают не только ознакомиться с результатом в окне браузера, но и скачать получившийся файл в формате obj к себе на компьютер, чтобы затем самостоятельно его доработать.
Как найти: http://cvl-demos.cs.nott.ac.uk/vrn/
Нейминг брендов
Придумали крутую идею для стартапа, но не можете определиться с именем для будущей компании? Достаточно вбить несколько ключевых слов, задать длину названия в символах и готово! В общем, больше не нужно искать на фрилансе людей, которые будут решать такой личный вопрос, как наименование дела всей вашей жизни.
Как найти: https://namelix.com/
Выбор досуга
Пересмотрели все интересные вам фильмы, прочли все достойные книги и не знаете чем занять вечер? Система рекомендаций от специалиста по искусственному интеллекту Марека Грибни расскажет как увлекательно и с пользой провести свободное время. Для корректной работы сервиса вас сперва попросят указать ваши любимые произведения в кинематографе, литературе, музыке или живописи.
Как найти: http://www.gnod.com/
Рай для искусствоведа
Google специально для поклонников современного (и не только) искусства запустила проект Google Arts & Culture, в котором можно подобрать произведения по вашему вкусу как от малоизвестных, так и от малоизвестных авторов. Большая часть контента здесь на английском, но если вы не дружите с языками, можно воспользоваться встроенным переводчиком.
Как найти: https://artsandculture.google.com/project
Озвучивание картинок
Японская студия Qosmo разработала очень необычную нейросеть Imaginary Soundscape, которая воспроизводит звук, соответствующий тому или иному изображению. В качестве источника информации вы можете указать ссылку на любую картинку в Интернете, загрузить свой файл либо выбрать случайную локацию на Google Maps.
Как найти: http://imaginarysoundscape2.qosmo.jp/
Не умеешь рисовать – тогда тебе к нам!
Если вы пробовали использовать рукописный ввод на своем смартфоне, эта нейросеть покажется вам до боли знакомой: она превращает любые каракули в аккуратные 2D-рисунки.
Как найти: https://www.autodraw.com/
Генерация людей
Thispersondoesnotexist – это один самых известных AI-проектов. Нейросеть, созданная сотрудником Uber Филиппом Ваном, выдает случайное изображение несуществующего человека при каждом обновлении страницы.
Как найти: https://thispersondoesnotexist.com/
Генерация… котов
Тот же автор разработал аналогичный сайт, генерирующий изображения несуществующих котов.
Как найти: https://thiscatdoesnotexist.com/
Быстрое удаление фона
Часто ли вам приходится тратить драгоценное время на удаление бэкграунда с фотографий? Даже если регулярно такой необходимости не возникает, следует на всякий случай знать о возможности быстрого удаления фона с помощью удобного онлайн-инструмента.
Как найти: https://www.remove.bg/
Написать стихотворение
Компания ‘Яндекс’, известная своей любовью к запуску необычных русскоязычных сервисов, имеет в своем портфолио сайт, где искусственный интеллект составляет рандомные стихотворения из заголовков новостей и поисковых запросов.
Как найти: https://yandex.ru/autopoet/onegin/27
Окрашивание черно-белых фотографий
Colorize – это также российская нейросеть, возвращающая цвета старым черно-белым снимкам. В бесплатной версии доступно 50 фотографий, если вам нужно больше, можете приобрести платный аккаунт с лимитом в десять тысяч изображений.
Как найти: https://colorize.cc/dashboard
Апскейлинг фото
Лет 10-15 назад камеры мобильных устройств не отличались высоким разрешением, и слабый сенсор в телефоне никак не мог справиться с детализированной картиной окружающего мира. Теперь же, если вы захотите повысить разрешение своих старых фотографий, это можно сделать на сервисах вроде Bigjpg и Let’s Enhance, которые позволяют увеличить размер изображения без потери в качестве.
Как найти: https://bigjpg.com/
https://letsenhance.io/
Чтение текста голосом знаменитостей
Благодаря высоким технологиям, сегодня у вас есть возможность озвучить любую фразу голосом самых известных в мире людей. Все просто: пишите текст и выбираете человека (среди последних — Дональд Трамп, Тейлор Свифт, Марк Цукерберг, Канье Уэст, Морган Фриман, Сэмюель Л Джексон и другие).
Как найти: https://voice.headliner.app/
Описание фотографий
Казалось бы, искусственный интеллект должен быть способен без труда описать любую, даже самую сложную картинку. Но это вовсе не так, обучить ИИ распознавать отдельные образы действительно относительно просто, а вот заставить компьютер понимать общую картину происходящего на изображении, очень сложная задача. У Microsoft получилось с ней справиться, и ее CaptionBot без труда скажет, что вы ему показываете.
Как найти: https://www.captionbot.ai/
Музыкальная шкатулка
Напоследок расскажем о целой пачке нейросетей от Google, первая из них – Infinite Drum Machine. Открыв страницу приложения, вы увидите своеобразную карту, на которой находятся самые разнообразные звуки. С помощью круглых манипуляторов можно изменять сочетание элементов, если получившийся набор покажется вам бессмысленным, нажмите кнопку Play в нижней части экрана и звуковая картина сложится сама собой.
Как найти https://aiexperiments.withgoogle.com/drum-machine
Птичий хор
Если предыдущий сервис может оказаться полезным для, например, диджеев или обычных музыкантов, то польза от управления голосами десятков тысяч певчих птиц довольно сомнительна. Кстати, коллекция звуков для Bird Sounds собиралась орнитологами со всего мира на протяжении нескольких десятилетий.
Как найти: https://aiexperiments.withgoogle.com/thing-translator
Виртуальный пианист
В A. I. Duet пользователю предлагается сыграть какую-нибудь мелодию на пианино, а искусственный интеллект попробует самостоятельно закончить композицию, подобрав наиболее логичное и гармоничное продолжение.
Как найти: https://experiments.withgoogle.com/ai-duet
Распознавание рисунков
Еще во время первых экспериментов с нейросетями в середине прошлого века основной задачей машинного обучения было распознавание визуальных образов. Спустя десятки лет эта технология выбралась из лабораторий и доступна всем желающим: на сайте quickdraw.withgoogle.com/ вам предложат быстро рисовать простые наброски определенных предметов, при этом ИИ будет все время комментировать происходящее на экране синтезированной речью.
Как найти: quickdraw.withgoogle.com/
Объяснение логики машинного обучения
Проект Visualizing High-Dimensional Space (“Визуализация многомерного пространства”) создавался для того, чтобы объяснить простым людям и начинающим разработчикам, как работают нейросети. Когда ИИ, оперируя большими базами данных, получает информацию (например, вашу фотографию, введенную фразу или только что нарисованное изображение), он сравнивает входящие данные с теми, что у него уже есть. VHDS наглядно демонстрирует корреляцию одного лишь выбранного вами слова с миллионами аналогичных понятий.
Как найти: https://experiments.withgoogle.com/visualizing-high-dimensional-space
как работают, где используются и какие возникают проблемы / Блог компании Leader-ID / Хабр
Если вы в общих чертах представляете себе, как работает компьютерное зрение, но жаждете деталей, то эта статья для вас.
Распознавание объектов нейросетью на системах Nvidia
Под катом — о том, как работают нейросети, какого рода алгоритмы используются в системах компьютерного зрения и насколько улучшилось качество распознавания за последние годы. А также о сферах применения: от медицины и геологии до транспорта, строительства и безопасности.
В общем все то, что вы хотели знать, но боялись спросить, или не доходили руки погуглить.
Статья написана по мотивам выступления Евгения Бурнаева, кандидата физико-математических наук, доцента центра Сколтеха по научным и инженерным вычислительным технологиям для задач с большими массивами данных, в московской городской Точке кипения и нашей последующей беседы с ним.
Чтобы сократить уровень посредничества, просто передаем ему слово.
Привет! Я занимаюсь deep learning’ом — глубоким обучением нейросетей для компьютерного зрения и предиктивной аналитики. Наша научная группа включает 30 исследователей. Мы активно публикуемся в передовых журналах и много сотрудничаем с индустрией — Huawei, Airbus, Bosch, Louis Vuitton, Sahara Force India Formula 1 team.
При упоминании словосочетания «искусственный интеллект» все начинают вспоминать страшилки вроде Терминатора.
На самом деле искусственный интеллект — набор технологий на основе математики, аппаратного и программного обеспечения, который позволяет автоматизировать решение рутинных задач.
Ассоциация математического подхода с нейросетями возникла еще в 40-х годах прошлого века, когда Питтс и Мак-Каллок предложили простейшую математическую модель нейрона. Одновременно появился простой алгоритм обучения. В результате люди нафантазировали чуть ли не человекоподобных роботов. В реальности ни одну из этих фантазий так и не внедрили — не существовало технических возможностей. Так наступила, как это теперь называют, «первая зима искусственного интеллекта»: финансирование сократили, а интерес к вопросу снизился.
Следующий всплеск интереса произошел лишь в 90-х, когда появились вычислительные мощности и новые хорошие математические алгоритмы, которые позволяли решать задачи распознавания и прогнозирования. А в 2014 году технологии распознавания получили буквально третье рождение благодаря тому, что мы научились решать подобные задачи на порядок лучше, чем раньше. Но ассоциация с нейронами сохранилась по сей день.
Технологии шагнули довольно далеко. Но пока еще у систем распознавания есть много проблем. Требуется дорабатывать алгоритмы, чтобы повысить эффективность их работы. Здесь есть где развернуться не только инженеру, но и ученому.
Но начнем с того, как это работает.
Компьютерное зрение
Компьютерное зрение — это прикладная область, составная часть искусственного интеллекта.
В теории от компьютерного зрения мы ожидаем возможности имитировать способности человека по распознаванию объектов на фото — способности понимать, где текст, где лицо, а где здание.
Учитывая комбинацию распознаваемых элементов на фото, человек может сказать очень многое. Он видит, что небо голубое, флаги не трепещут на ветру, а значит, ветра нет и погода солнечная. Хотелось бы, чтобы системы компьютерного зрения это повторили.
Тест Тьюринга для систем компьютерного зрения — ответить на любой вопрос об изображении, ответ на который может дать человек.
Пример обнаружения объектов на фото…и идентификации
Первые алгоритмы компьютерного зрения появились давно. Типичный пример — один из самых простых детекторов лиц Виолы — Джонса, который отмечает положение людей в кадре.
Работа алгоритма обнаружения лиц в фотокамерах
Этот алгоритм в некотором смысле необучаем (на обучаемости остановимся чуть позже). Ну а в данный момент мы наблюдаем бум алгоритмов, которые основаны на более сложных принципах.
Как устроены системы компьютерного зрения
Цифровое изображение — это матрица, где каждый пиксель — это некоторый элемент, содержащий число. В случае черно-белого изображения это число от 0 до 255, отражающее интенсивность серого.
Пиксели растрового изображения и их яркость в однобайтной кодировке
Для цветного изображения это обычно комбинация трех цветов. Еще в позапрошлом веке первые цветные фотографии одновременно снимали на три камеры в разном цвете, а потом полученные кадры совмещали. И до сих пор цветные изображения часто раскладывают на те же три цвета — красный, зеленый и синий.
Построение цветного изображения на заре фотографииПостроение цветного изображения из пикселей красного, синего и зеленого цветов
Поговорим о том, как работать с изображениями, чтобы они лучше воспринимались машиной.
Задача категоризации
Компьютерное зрение позволяет решать задачи распознавания. Фактически это базовая задача категоризации, когда мы устанавливаем для фотографии метки из заранее определенного множества категорий.
Как выглядит базовая задача категоризации изображения
Эта задача бывает двух типов: бинарная (например, изображен ли на этой картинке человек) и более сложная (к каким типам относится планктон на картинке). Бывает, что одновременно с классификацией объекта мы должны отметить, где он находится.
Виды задачи классификации
Имитируем распознавание
Предположим, у нас есть картинка. Инженер подошел бы к распознаванию следующим образом: он начал бы проверять, что есть на этом изображении. Например, какие есть объекты, имеющие овальную форму. Для этого он выбрал бы какие-то признаки, которые на объектах овальной формы принимали бы большие значения.
Это искусственный пример, но здесь важно понять принцип. Когда мы посчитаем эти признаки, они поступят на вход классификатора. Если среди них есть те, что принимают большие значения, мы говорим, что на изображении есть определенные объекты и они находятся в такой-то части.
Условная схема решения задачи классификации
Типичный пример классификатора — то, что называется деревом решений. Самые простые деревья мы строим в обычной жизни:
Пример простейшего дерева решений
Деревья решений такого типа можно строить и в более сложных случаях. Например, при выдаче кредита, но у них будет очень много узлов, где происходят ветвления.
На практике обычно комбинируют множество деревьев решений, то есть получают ответы с каждого, а потом проводят что-то типа голосования.
При распознавании фотографии (поиске ответа на вопрос, есть ли на фото люди) мы можем применить ровно такой же подход — считаем признаки и отправляем их в дерево решений, чтобы получить финальный ответ.
Примеры признаков, которые можно использовать для категоризации фото
Признаки и их расчет
Какого типа признаки здесь можно было бы использовать?
На практике изображение делят на части и на каждой проводят локальный анализ. Например, оценивают направления, в которых градиенты изображения меняются сильнее всего, или считают среднее значение для пикселей, которые есть в этом изображении, или вычисляют контуры объектов на изображении.
Все это можно делать в том числе с применением известных фильтров — матриц коэффициентов, которые мы «прикладываем» к изображению, двигаясь по нему слева направо (сверху вниз), умножая коэффициенты в матрице, определяющей фильтр, на значения пикселей в соответствующем сегменте изображения и складывая результаты умножений. Если фильтр устроен определенным образом, на выходе можно получить новое изображение, в котором, например, выделены края:
Другой пример — фильтр, увеличивающий высокие частоты (резкость):
А если я возьму такую матрицу чисел, изображение, наоборот, будет размытым:
Классический подход состоит в том, что фильтры строятся вручную исходя из различных математических и инженерных соображений. Основываясь на своем опыте, для каждой задачи человек комбинирует группы фильтров, примерно представляя, что лучше всего подходит в этом случае. Но оказалось, что эти фильтры можно «научить».
Что это значит? Представьте, что в фильтрах стоят не готовые числа, а некие заранее неопределенные коэффициенты. Вы применяете эти фильтры к изображению, а потом объединяете этап построения результатов фильтрации и классификацию в единое целое. По сути, вы настраиваете коэффициенты фильтров для конкретной задачи по большой выборке данных так, чтобы качество решения задачи (например, распознавание) было максимальным.
Решение задачи классификации при помощи нейросети
Для настройки коэффициентов требуются: большая выборка данных, много слоев и специальное вычислительное оборудование. Поговорим о каждом из компонентов.
Большая выборка
Прорыв в этой области произошел в 2010 году, когда появился датасет ImageNet, который содержал 10 млн картинок. Чтобы его получить, проделали огромную работу: каждой из картинок вручную присвоили класс объекта, который там изображен.
На сегодняшний день это уже не единственная база размеченных картинок.
Примеры баз размеченных изображений
Наличие огромных баз данных, на которых можно обучать коэффициенты фильтров, дало старт развитию систем распознавания.
Многослойность
Предположим, у нас есть изображение. Есть первый слой с каким-то количеством фильтров. Применяя эти фильтры последовательно к изображению, мы получаем новую картинку. После этого применяем к изображению специальное нелинейное преобразование (в нейросетях оно называется Transfer Function — передаточная функция), затем — другие фильтры, а следом — новое нелинейное преобразование. И так далее. Каждый такой этап называется слоем.
Пример последовательного применения фильтров к изображению
В итоге получаем такую нелинейную фильтрацию, которая выделяет характерные признаки изображения. В конце этого процесса у нас будет набор коэффициентов. Для одних типов объектов они будут больше, для других — меньше. И эти признаки-коэффициенты подают на вход стандартного классификатора.
После создания первой системы, обученной на очень большой базе данных, оказалось, что точность распознавания возросла в несколько раз, в какой-то момент сравнилась с точностью человека и даже превысила ее. Нейросеть такого типа содержит 60 млн параметров — это те самые настраиваемые параметры фильтров.
Ниже на гистограмме показано, как со временем эволюционировала точность от 2010-го до 2015 года, а также отмечено количество слоев нейросети, которое необходимо, чтобы достичь такой точности.
Изменение точности и сложности нейросетей с 2010-го по 2015 год (справа — налево)
Ошибка классификации 3–3,5%, и это лучше, чем у человека. Человек распознает с ошибкой 4–5%.
Говоря о точности, всегда стоит указывать, о какой задаче идет речь. Чем сильнее мы сужаем спектр применений, тем большей точности можем достигнуть.
Качество систем распознавания зависит не только от того, как построена нейросеть, но и от того, как она обучена. Если создатель модели выполнил свою работу некачественно, точность распознавания будет существенно ниже. Правда, это легко проверить. К примеру, можно использовать кросс-валидацию, когда часть обучающей выборки отделяют для проверки работы модели. Этот подход имитирует ситуацию с получением новых данных.
Аппаратное обеспечение
Чтобы подобрать огромное количество коэффициентов, нужно специальное оборудование, которое позволит распараллелить подобные задачи, поскольку обычный CPU решает их последовательно.
Несколько лет назад Nvidia заказала у создателей MythBusters забавный пиарный ролик для демонстрации параллельных вычислений
Речь идет о графических процессорах (GPU), которые изначально создавали для ресурсоемких игр. Их адаптировали под быстрое выполнение матричных вычислений. А нейросети, по сути, у нас и построены на матричных вычислениях, то есть умножениях одной таблицы чисел на другую.
Какие задачи мы можем решить?
Имитируя человека, мы можем на фотографии указать, где находится предмет, и отделить его от окружающих объектов.
Можем ответить на вопрос, какая у человека позиция относительно других тел, и даже спрогнозировать по двумерной фотографии положение частей тела человека в 3D.
Можем отыскать лицо человека.
Обнаружение лица, идентификация, оценка позы, распознавание эмоций
Имея априорные знания о движении, можем по позе человека на фотографии предположить, в каком направлении он бежит, или спрогнозировать, куда он будет двигаться далее.
Некоторые из задач, которые я перечислю, можно решать и другими способами. Не надо думать, что нейросети покрывают все. Просто на данный момент это один из наиболее популярных и достаточно эффективных методов решения задач такого типа. Возможно, лет через пять появятся другие, более эффективные в конкретных приложениях архитектуры, которые будут отличаться от «классических нейросетей».
А кроме того, есть большое количество инженерных задач, где старые методы, основанные на тех же дескрипторах, могут показывать лучшие результаты, чем нейросети, требующие большой обучающей выборки.
Поиск по картинкам
Все мы пользуемся стандартной функцией поиска объектов на фото в поисковиках вроде Яндекса и Google. На вход мы подаем фотографию. С помощью фильтров нейросеть считывает признаки, характеризующие семантический смысл фотографии (я говорил о них ранее). Далее они сравниваются с признаками фотографий, которые уже есть в интернете (те заранее были подсчитаны и сохранены в виде векторов чисел). Изображения со сходными признаками оказываются семантически близки.
Примеры поисковой выдачи по заданным фото
Распознавание лиц
По такому же принципу устроено детектирование и идентификация лиц. Это приложение важно для обеспечения безопасности тех же банков.
Ниже — реальный пример из презентации одной из компаний. Как вы думаете, правда ли, что в каждом из пунктов на двух соседних фото один и тот же человек? Людям сложно это определить, поэтому возникают ошибки и процветает мошенничество.
Определите, в каком из шести случаев изображен один и тот же человек
Правильно обученные системы компьютерного зрения не ошибутся даже в сложных ситуациях и в условиях плохого освещения. Точность распознавания у них достигает 99%.
Правильный ответ
В западных странах подобные технологии уже активно используют для контроля доступа и рабочего времени.
Социальный протест
Использование нейросетей, связанное с распознаванием лиц, вызывает у обывателей опасения. Вот один из таких заголовков:
Заголовок одного из изданий: «Судя по сканирующим мозг каскам, Китай не заинтересован в тайне частной жизни рабочих»
В заметке речь шла о том, что в Китае якобы установили в шлемы рабочих сенсор, фиксирующий, насколько человек погружен в работу и какие он испытывает эмоции. Забегая вперед, скажу, что в текущих условиях это невозможно. Но такие статьи появляются, их связывают с искусственным интеллектом, и это вызывает опасения.
Более реалистичное применение — камеры в учебном классе, которые оценивают, насколько студенты вовлечены в процесс. Так можно косвенно определить эффективность процесса обучения.
Система оценки вовлеченности обучающихся
Говоря об опасениях, нельзя не вспомнить знаменитую серию публикаций о наличии в Китае системы соцрейтинга, которая мониторит людей и оценивает, насколько они подчиняются правилам.
Фантазии на тему китайского соцрейтинга
Насчет китайского опыта существуют разные мнения. Лично я в Китае не жил и не могу описать ситуацию. Но на Западе внедрение подобных систем вызывает социальный протест. Например, некоторое время назад рабочие Amazon жаловались на жесткие рамки учета рабочего времени, прописанные в новой системе мониторинга.
На волне этих протестов некоторые компании и даже правоохранительные органы в городах Америки сворачивают или ограничивают функциональность систем, связанных с трекингом людей и распознаванием лиц. Так что в целом законы о приватности и защите персональных данных работают, то есть опасения относительно нейросетей реально снимать при помощи законодательства.
Модификация фотографий
С помощью подобных нейросетевых моделей можно манипулировать изображениями — к примеру, стилизовать фото.
Нейросеть добавляет налет абстракционизма
Нейросетевые модели могут анимировать фотографию или картину, используя видео эмоций другого человека. Лицо с фотографии будет изменять выражение вслед за человеком на видео.
Повторение мимики и жестов при помощи нейросети
А эту анимацию делали коллеги из дружественной нам группы Сколтеха.
Анимирование картины при помощи нейросети
Подобные методы используют при создании фильмов и рекламы.
Физическая безопасность и обучение
Компьютерное зрение активно применяют для обеспечения безопасности, например, чтобы наблюдать за пустой квартирой или контролировать условия труда: ходят ли рабочие в безопасных зонах, носят ли каски.
Система отмечает, что на объекте находятся люди без каски или перчаток
Контроль соблюдения скоростного режима на дорогах также может осуществляться с помощью нейросетевых моделей.
Для распознавания госномеров нейросеть не нужна. Но определить тип и модель транспортного средства без нее уже сложно
Компьютерное зрение активно применяют в качестве элемента более сложных задач, например, в системах дополненной реальности. Хороший пример — обучение технического персонала навыкам работы в сложных условиях, когда нужна максимально четкая реакция (тренировки «автоматических» навыков). Физических установок, реалистично имитирующих окружение для отработки подобных действий, мало или у них нет необходимой функциональности. И отработка навыков в дополненной реальности позволяет решить эту задачу.
Строительство и городское планирование
На гигантских объектах трудно понять, действительно ли строительство идет по плану, поскольку даже нескольким людям сразу тяжело все обойти и оценить объем работ за неделю или месяц. Вместо ручной сверки можно снять видео с дрона, взять данные с лидара (лазерного дальномера, оценивающего расстояние от сканера до точек на поверхности объекта) и по ним уже автоматически оценить, что и где построили.
Контроль строительства с помощью нейросети
Компьютерное зрение используют для обработки данных дистанционного зондирования (аэрофотосъемки или съемки со спутника). Типичный пример — когда на вход подают огромные снимки, полученные со спутника в разные моменты времени, допустим в конце лета и осенью, чтобы оценить, какие произошли изменения.
Пример обработки данных дистанционного зондирования, в результате которой выделены новые объекты (в данном случае — постройки)
Так можно выявить незаконные свалки и понять, насколько быстро они растут, или зафиксировать последствия стихийных бедствий: ураганов, пожаров, землетрясений. Сравнив снимки до и после, можно приблизительно оценить количество пострадавших домов и подсчитать потери страховой компании.
Аналогичные задачи есть в сфере городского планирования, а также в оценке населенности и объемов строительства. На картах не всегд
Нейросети: что это такое и как работает | Будущее
Новости
Дэвид Линч напишет и поставит новый проект для Netflix
Сериалы
«Мандалорец», 2 сезон, 5 серия: настоящее имя Малыша Йоды
Комиксы
Комикс: самый-самый последний джедай
Кино
«Новые мутанты»: в чём проблемы многострадального фильма
Книги
Недавняя фантастика в жанре альтернативной истории
Игры
Обзор «Человек-паук: Майлз Моралес». Настоящий некстген!
Миры
Крипипаста: легенды и ужасы интернета
Наука
Охота на сокровища астероидов: золотая лихорадка будущего
Книги
Обзоры книг
Фантастические рассказы
Фантасты
Мастер-класс
Что почитать
Новинки
Недавняя фантастика в жанре альтернативной истории
Чарльз Стросс «Аччелерандо»: мир победившей сингулярности
Читаем героическое фэнтези Э. Дж. Смита «Красный принц»
Фриц Лейбер «Корабль отплывает в полночь»: фантастика одного из отцов героического фэнтези
Классика
10 лучших рассказов Рэя Брэдбери: очень субъективный топ
Урсула Ле Гуин: какой она была
Кино
Обзоры кино
Классика кино
Видео МирФ
Фантастические короткометражки
Новое
«Новые мутанты»: в чём проблемы многострадального фильма
Мультфильм «Люпен III: Первый» — Гитлер, самураи и авантюристы
Кто, если не Депп? 7 актёров на роль Грин-де-Вальда
Какие фильмы посмотреть онлайн в ноябре 2020? Санта, Чебурашка и Дарт Вейдер
Классика
Что будет дальше со студией Ghibli?
Фильмы про космос: фантастика, одобренная учёными
Сериалы
Обзоры сериалов
Классика сериалов
Аниме
Новое
«Мандалорец», 2 сезон, 5 серия: настоящее имя Малыша Йоды
«Леди Баг и Супер-Кот» смотрят даже взрослые. Почему?
Сериал «Потерянная комната»: забытый предтеча SCP Foundation
«Мандалорец», 2 сезон, 4 серия. Пробуждение сюжета — и новые теории
Классика
Сериалы, которые закончились правильно (уж точно лучше, чем «Игра престолов»)
Фэнтези-сериалы, на которые мы надеемся: «Хроники Амбера», «Чёрный отряд» и другие
Игры
Видеоигры
Настольные игры
Ролевые игры
Обзор «Человек-паук: Майлз Моралес». Настоящий некстген!
King’s Bounty 2 не стратегия, а RPG с пошаговыми боями. И это хорошо
Настольная игра «Маятник»: революция в экономических стратегиях или нет?
Настольные игры: новинки ноября 2020
Вселенная Assassin’s Creed
God of War (2018): игра против мифологии
Наука
Будущее
Космос
Прошлое
Как выжить в Апокалипсис
Как построить космический лифт
Охота на сокровища астероидов: золотая лихорадка будущего
Падения метеоритов на Землю: великие катастрофы и перспективы
Фаланга, манипула, хирд. Как держали строй древние воины
Кто открыл Америку? Викинги, китайцы и ирландский святой
Миры
Звёздные войны
Игра престолов
Marvel
DC
Ведьмак
Властелин колец
Гарри Поттер
Disney
Star Trek («Звёздный путь»)
Warcraft
Мифы и легенды
Итак, у вас есть сверхсилы. Как покорить мир?
Как воевать, если вы эльф? Тактика фэнтези-народов
Земноморье Урсулы Ле Гуин: мир магии и живых людей
Четвёртая стена и как её ломают
Серые пришельцы. Как появились самые известные инопланетяне
Чудовища Шумера и Аккада: Тиамат, Пазузу, Лилит
Глубокий интеллект. Как зародились нейросети и почему они изменят всё — «Хакер»
Содержание статьи
Новости о нейронных сетях появляются каждый день. То сети научились определять пол и возраст людей по фотографии, то обыграли человека в очередную настольную игру, то начали генерировать научные тексты, код приложений и писать картины в духе Сальвадора Дали. А завтра Скайнет отберет у тебя работу, автомобиль, жизненное пространство, а тебя самого… нет, не утилизирует, а удобно разместит на диване и заставит ничего не делать, наслаждаясь безусловным доходом. Или все-таки нет?
Рождение мифа
Исследователи и компании, которые работают с большими объемами данных, применяют нейросети еще с восьмидесятых годов, а вот рядовые земляне обращают внимание на прогресс в этой области только после показательных побед машин над людьми. Deep Blue обыграл Каспарова! Watson обошел людей в Jeopardy! А теперь гугловский AlphaGo победил Ли Седоля — одного из лучших игроков в го на сегодняшний день.
Последний случай особенно интересен. Выигрышную стратегию в го просто невозможно запрограммировать традиционными методами. Количество вероятных комбинаций уже после первого хода здесь равно 129 960 (в шахматах, для сравнения, — четыреста), а за весь матч их набирается больше, чем атомов во Вселенной. Алгоритм просчета ходов не в состоянии продумать все возможные комбинации и проигрывает профессиональным игрокам, которые полагаются на интуицию, выработанную годами тренировок.
Ли Седоль vs. AplhaGo
У AlphaGo есть если не интуиция, то кое-что очень на нее похожее. Система долгое время обучалась на сотнях тысяч сыгранных людьми партий и играла сама с собой. Она научилась «чувствовать» перспективные ходы и уже на их основе прогнозирует игру на несколько ходов вперед. То есть программа переняла ту человеческую черту, которую люди используют ежесекундно, а вот переложить в алгоритм затрудняются.
С легкой руки журналистов AlphaGo превратилась из банальной нейронной сети, описанной еще шестьдесят лет назад, в Искусственный Интеллект, которому недалеко и до обретения самосознания. На самом деле это, конечно же, не так. AlphaGo — это более-менее стандартный пример многослойной нейронной сети, которая способна эффективно решать одну конкретную задачу. Присущая ей «интуиция» — это известное свойство системы, обученной на множестве примеров. Однако считать нейронные сети чересчур разрекламированной игрушкой тоже не стоит.
Перцептрон и триста пород собак
Впервые идею искусственной нейронной сети предложил нейрофизиолог Фрэнк Розенблатт в 1957 году и реализовал ее в нейрокомпьютере «Марк-1» в 1960-м. Математическая модель такой сети получила имя «перцептрон», а само устройство представляло собой небольшой компьютер, снабженный табло из нескольких сотен фотоэлементов. Показывая компьютеру изображения, а затем корректируя весовые коэффициенты связей искусственных нейронов, можно было научить нейронную сеть распознавать геометрические фигуры и некоторые буквы алфавита.
По нынешним временам «Марк-1» — это игрушка. К тому же она страдала от множества проблем: к примеру, изображения не распознавались при деформации или повороте. Сейчас понятно, что при тогдашнем уровне вычислительной мощности многие вещи просто нельзя было реализовать. Перцептроны интересны скорее с исторической точки зрения — реальных задач они не решали. В 1969 году Марвин Минский и Сеймур Паперт описали эти опыты в книге «Перцептроны», после чего исследования в области нейросетей были свернуты в пользу, как тогда казалось, более перспективных символьных вычислений.
Фрэнк Розенблатт и перцептрон
Новый всплеск интереса к нейронным сетям произошел лишь в 1986 году, когда появился способ машинного обучения по методу обратного распространения ошибки. Он позволил существенно повысить скорость и качество обучения нейросетей. Однако вычислительные ресурсы все еще были ограничены, да и действительно больших объемов данных для обучения нейросетей не было. Поэтому они существовали в основном как исследовательские проекты и применялись для решения очень ограниченного круга задач. Таких, которые не требуют слишком много мегагерцев или мегабайтов, — к примеру, распознавание текста.
В 2012 году произошло событие, которое коренным образом изменило отношение к нейросетям. Сеть SuperVision, разработанная в Торонтском университете, с большим отрывом выиграла конкурс распознавания объектов на изображениях ImageNet LSVRP (Large-Scale Visual Recognition Challenge). Число ее ошибок составило 16,4%, тогда как программа, занявшая второе место, ошибалась в 26% случаев. Для сравнения: человек делает ошибки в 5% случаев. Но удивительнее всего было то, что для предварительного обучения сети использовался не кластер, а обычный компьютер с двумя видеокартами NVIDIA. Тренировка заняла около недели.
Это был первый случай, когда нейросеть превзошла классические алгоритмы машинного зрения в очень сложном и специфичном тесте. База изображений включала в себя не только простые объекты вроде автомобилей, автобусов, столов и стульев, но еще и триста пород собак, из которых два десятка — разновидности терьеров.
Звучит курьезно? Пожалуй. Но вот что важно: тебе никогда не узнать столько пород собак, а машина их уверенно распознает. И речь не о каком-то огромном компьютере IBM, а о системе вроде тех, что собирают себе любители игр с крутой графикой.
Назад в будущее
SuperVision не случайно стала символом новой эры нейронных сетей. Классификация изображений — нечто гораздо более сложное и высокоуровневое, чем просто разбор буковок на бумаге. Сказать, что отличает букву А от всех остальных букв алфавита, сможет даже ребенок, но попробуй с ходу рассказать об отличительных признаках, допустим, облака. В чем конкретно его разница по сравнению с остальными объектами, которые ты видишь? В голову приходят слова «белый», «небо», «кучевые» и так далее. Это множество параметров, о каждом из которых тоже нужно иметь представление. Что такое «белый»? А «небо»?
Сейчас эту задачу решают при помощи метода Deep Learning (глубинное обучение), суть которого в том, чтобы объединить в сеть большое количество слоев нейронов (в SuperVision их было пять, в современных сетях доходит до сотен). Получается что-то вроде иерархии абстракций. А потом сети скармливаются примеры, по которым она «видит», как выглядит облако в различных ситуациях, и может понять, как его идентифицировать. В случае ошибки система перенастраивает сама себя.
Метод опробованный и действенный, но, чтобы он работал, должно соблюдаться два требования. Во-первых, примеров должно быть действительно много. Не сотни и даже не тысячи, а десятки и сотни тысяч, и чем больше, тем лучше будут результаты. Во-вторых, сеть должна быть действительно большой и состоять из сотен тысяч или даже миллионов нейронов, объединенных во множество слоев. В процессе обучения такого ИИ примеры прогоняются через всю сеть с постоянной коррекцией ошибок. Требования к вычислительным мощностям получаются соответствующие.
Раньше подобные задачи пытались решить с помощью кластеров из тысяч машин. К примеру, в Google делали нейросеть, которая работала на 16 тысячах процессорных ядер. Что, конечно же, делало ее использование совершенно нерентабельным.
В 2014 году в Google предприняли новую попытку и на этот раз использовали глубинное обучение. Результатом стала сеть GoogLeNet из 22 слоев, которая, по словам авторов, так же как и SuperVision, может быть обучена на нескольких высококлассных GPU за неделю. На конкурсе ImageNet гугловская сеть показала себя великолепно: число ошибок снизилось до 6,7%. Почти как у человека!
Если ты думаешь, что это впечатляет, то ты не знаешь последних новостей. Сегодняшние нейросети распознают объекты не только не хуже, но даже лучше человека, а также умеют рассказывать, что изображено на фотографии. Еще в конце 2014 года исследователи из Google и Стэнфордского университета показали нейросеть, способную генерировать осмысленные подписи к фотографиям. Даже несмотря на большой процент ошибок, это впечатляло.
Первые результаты работы нейросети
Позже Андрей Карпатый из Стэнфордского университета опубликовал исходный код нейросети neuraltalk2, которая уже намного лучше угадывала сюжет изображения. Причем настолько лучше, что с ее помощью удалось записать видеоролик, в котором описания появлялись на экране практически моментально:
Как ты думаешь, где сегодня применяются данные технологии? Правильно, в поисковых движках. Здесь они заменили примитивный и часто некорректный алгоритм оценки содержания изображения на основе окружающего его текста (если в статье про котов есть изображение, то, наверное, на нем кот). В Google нейросети уже используют не только для классификации изображений из интернета, но и в недавно открытом сервисе Google Photos.
Если ты используешь смартфон с Android, то ты наверняка пользователь Google Photos. На первый взгляд это ничем не примечательная галерея с автоматической загрузкой фотографий в облако. Но если ты откроешь раздел поиска, то увидишь, что гугловский алгоритм собрал для тебя фотографии по ключевым словам. Ты можешь сделать запрос и посмотреть, как глубокая нейросеть распознала объекты на твоих фотках.
Поиск изображений в Google Photo
Facebook тоже не отстает, но его нейросеть более узкоспециализированная. Она предназначена для распознавания лиц, причем довольно изощренным способом — с помощью создания 3D-модели лица из фотографии. О том, зачем это нужно, я думаю, говорить не стоит.
А вот зачем нужна сеть, которая угадывает возраст и настроение человека, — это уже вопрос поинтереснее. Речь, конечно, идет о нашумевших сервисах Microsoft How-Old.net и Emotion Recognotion. Конечно, в них тоже использованы нейросети.
Восемь шагов работы DeepFace
Отличились и наши соотечественники. Нашумевший сервис FindFace, особо любимый публикой с «Двача», которая с ее помощью разоблачает порноактрис, базируется на разработках российской же компании NTechLAB. В 2015 году эта программа заняла первое место в международном конкурсе The MegaFace Benchmark. То есть выиграла у аналогов Facebook и Google.
Думаю, ты слышал и о DeepArt, сервисе, который позволяет взять стиль одного изображения и применить его к другому. Берешь в качестве первого изображения картину известного художника, а в качестве второго — собственную фотку, вот и готов автопортрет в стиле Ван Гога, но с обоими ушами. Алгоритм настолько хорош, что далекий от искусства человек не всегда сможет отличить подделку от оригинала. Можешь проверить себя и пройти тест «Ван Гог или робот», созданный «Медузой» в кооперации с «Яндексом».
А что, если пойти дальше и в качестве второго изображения взять не фотографию, а мазню двухлетнего ребенка? Сможет ли нейросеть сделать из нее произведение искусства? В каком-то смысле — да. Выложенная в открытый доступ обученная нейросеть neural-doodle делает именно это. Открываешь Paint, двадцать секунд малюешь и скармливаешь оба изображения скрипту doodle.py. Остается подождать, пока машина сделает шедевр из твоей мазни.
Освоил Paint — стал Ренуаром
Ну и конечно же, если что-то работает с картинками, то фокус можно повторить и с видеороликами. Сотрудники Фрайбургского университета взяли ту самую нейронную сеть VGG из предыдущих экспериментов, дополнили ее алгоритмом для отбраковки чрезмерных отличий между соседними кадрами и получили мультфильмы, нарисованные Ван Гогом и Мунком:
Производительность системы: один кадр с разрешением 1024 × 463 за три минуты при обработке одновременно на основном и графическом процессорах.
Ты и сам можешь опробовать описанные алгоритмы в действии, и для этого совсем не обязательно разворачивать нейросеть у себя на компе. Кроме DeepArt, есть и другие онлайновые сервисы, которые к тому же работают намного быстрее. Например, Instapainting и российский Ostagram. Развлекайся!
Не только картинки
Неужели нейросети годятся только для поиска и обработки изображений? Конечно, нет. Второй наглядный пример использования нейросетей — это распознавание речи. В 2011 году в Google перевели сервис Google Voice Search (сейчас он входит в Google Now) на нейросети и получили снижение ошибок распознавания на 25%. В 2014 году то же самое в Apple сделали с Siri, а спустя полгода в Microsoft запустили функцию мгновенного перевода речи в Skype. И она тоже базируется на нейросети.
Еще одно перспективное направление — это семантическое распознавание и синтез текста, то есть вычленение из поданного на вход текста смысла и возврат вразумительного ответа. Такая функция уже используется в Google Inbox для генерации автоответов. В Google постоянно работают над улучшением нейросети, в том числе скармливая системе тексты любовных романов.
Уже упомянутый Андрей Карпатый в прошлом году опубликовал свои исследования на схожую тему. Ему удалось получить бессмысленный, но на первый взгляд правдоподобно выглядящий научный текст.
Псевдонаучный текст, сгенерированный нейросетью
Примерно в то же время свое исследование опубликовали сотрудники Google. Они попытались научить нейросеть выполнять обязанности оператора службы поддержки, и, судя по приведенным примерам диалогов с пользователем, это у них неплохо получилось. Сеть действительно помогла пользователю решить проблему. Но следует, конечно же, сделать скидку на то, что проблема была очень простая и часто встречающаяся.
Фрагмент диалога роботизированной службы поддержки с пользователем
Нейросетям по плечу и некоторые компьютерные игры. Ребята из подразделения Google DeepMind, прославившиеся своей сетью DeepArt и той самой сетью AlphaGo, еще в начале прошлого года создали ИИ, который самостоятельно научился играть в 49 классических игр с Atari и победил лучших игроков в 22 из них. При этом сеть не была встроена внутрь игры и ориентировалась только по изображению — как и обычный игрок.
В большинстве игр нейросеть значительно превзошла человека
Примитивных игровых ботов раньше писали и без глубинных нейросетей. К примеру, Super Mario проходится при помощи обычного алгоритма поиска пути (он еще называется A*). Важно то, что нейросеть сама учится распознавать объекты на экране и приспосабливается под правила любой игры — будь то платформер или, к примеру, Asteroids:
Еще интереснее наблюдать, как глубинные нейросети приспосабливают для более интеллектуальных игр. Последний эксперимент Google — попытка научить нейросеть разбирать текст на картах Magic the Gathering и Hearthstone. Эти тексты сообщают игроку, как сработает та или иная карта после того, как он сыграет ее. Поэтому, чтобы научиться играть, нейросеть первым делом пытается перевести эти правила в программный код.
Карты из Hearthstone в интерпретации нейросети Google
То есть, по сути, ИИ воссоздает исходный код игры. Вдумайся в это: мы почти дожили до того, что программа пишет программу! Впрочем, пока что с оговорками: нейросеть настраивают под конкретную игру; текст на картах написан почти формализованным языком, что облегчает задачу, да и код в итоге часто выходит нерабочий.
Опыт, полученный при разработке ИИ для игр, может пригодиться и в других областях. Наиболее очевидная из них — самоуправляемые автомобили и беспилотные летательные аппараты. В NVIDIA недавно опубликовали результаты исследования: экспериментаторы пытались создать систему управления автомобилем, которая полагается исключительно на данные с установленной перед лобовым стеклом камеры. На основе этой информации нейросеть принимала решение о нажатии педалей или повороте руля. И снова результат оказался обнадеживающим. После недолгого обучения с водителем сеть научилась ездить по загруженным дорогам без разметки. И это без дополнительных датчиков вроде лидара и без специальных алгоритмов. Нейросеть увидела, как водить машину, нейросеть поняла.
Еще одно важное применение нейросетей — аналитика. Существует множество стартапов, которые используют нейросети исключительно для предсказаний всевозможных событий: изменения погоды, колебаний акций или продаж, таргетирования рекламы и многого другого. Во всех сферах, где так или иначе задействована аналитика, ИИ медленно, но уверенно вытесняет человека.
Выводы
И все-таки: завоюет ли искусственный интеллект мир? Несмотря на впечатляющие результаты работы исследователей, нейросети в своем сегодняшнем виде — это очень узкоспециализированные системы, которые имеют мало общего как с принципами работы мозга, так и с ИИ, каким его показывают в фильмах и научно-фантастических романах.
Да, нейросети способны отличать терьеров по фотографии, угадывать твой возраст и настроение, обыгрывают человека в настольные и компьютерные игры и даже пишут картины, если эти произведения можно так называть. Но все это всего лишь системы для обработки массивов данных. Нейросети не умны, не разумны, не обладают разносторонними способностями. Это инструмент, который применяют в ситуациях, когда есть массив данных, но нет действенного алгоритма его обработки: «вот изображение, я хочу знать, есть ли на нем кошка; я понятия не имею, как ее найти, но у меня есть много других изображений с кошками для сравнения».
Поэтому не будем в очередной раз повторять разговоры о компьютерном сверхразуме, который поработит мир, — достаточно того, что о нем говорят Илон Маск, Рэй Курцвейл, Стивен Хокинг и Билл Гейтс. Давай лучше послушаем Бетховена, над которым поиздевался очередной «крутой искусственный интеллект».
В этой браузерной игре ваши противники — нейронные сети
Terminator Training
Новая игра-стрелялка противопоставит вам революцию роботов — сражаясь с нейронными сетями, которые обучаются и становятся все более опасными с каждым уровнем.
Игра с лаконичным названием «Целься и стреляй» не слишком революционна с точки зрения игрового процесса. По сути, вы можете перемещаться и стрелять по управляемым ИИ врагам, которые пытаются стрелять в вас. Но способ развития игры новаторский: два самых успешных врага на каждом уровне «скрещиваются», чтобы создать новое поколение более умных злодеев в следующем раунде — используя в своих интересах способ нейронных сетей анализировать шаблоны для обучения и улучшения.
We’re Doomed
Игра, созданная инженером-программистом Виктором Рибейро, начинается с простого — базовым нейронным сетям редко удается нацелить оружие на игрока. Но когда они учатся наносить ущерб, они быстро становятся опасными.
Оба раза я пробовал игру, я шел по инерции до тех пор, пока нейронные сети не узнали, что разгрузка их оружия повсюду и заполнение экрана пулями — довольно хорошая стратегия. В этот момент я почти сразу начал умирать. В моем первом прохождении это произошло на четвертом уровне.Но я тоже учился, и во второй раз меня ранили меньше, поэтому нейросеть не узнала, что стрельба в меня приведет к успеху до шестого уровня.
It’s Learning
Рибейро ранее создал новую версию классической игры Space Invaders, в которой игра использует генетический алгоритм, чтобы научиться увеличивать частоту любого типа врага, которому удалось достичь нижней части экрана.
В целом, игры — забавные иллюстрации того, как ИИ учится находить наиболее эффективное решение проблемы — в данном случае пугающе убивая игрока.
Примечание редактора: в этой статье неправильно указано, что предыдущий проект того же разработчика также полагался на нейронные сети. Он был обновлен.
Подробнее об играх с нейронной сетью: Нейронная сеть придумывает эту текстовую приключенческую игру во время вашей игры
Что такое нейронная сеть?
Нейронная сеть — это тип машинного обучения, который моделирует себя по образцу человеческого мозга, создавая искусственную нейронную сеть, которая с помощью алгоритма позволяет компьютеру обучаться путем включения новых данных.
Хотя в наши дни существует множество алгоритмов искусственного интеллекта, нейронные сети способны выполнять то, что называется глубоким обучением. В то время как основной единицей мозга является нейрон, важным строительным блоком искусственной нейронной сети является перцептрон, который выполняет простую обработку сигналов, а затем они соединяются в большую ячеистую сеть.
Компьютер с нейронной сетью обучается выполнять задачу, анализируя обучающие примеры, которые были предварительно помечены заранее.Распространенным примером задачи для нейронной сети, использующей глубокое обучение, является задача распознавания объектов, где нейронная сеть представлена большим количеством объектов определенного типа, таких как кошка или дорожный знак, и компьютер, анализируя повторяющиеся шаблоны в представленных изображениях, учится классифицировать новые изображения.
Как нейронные сети обучаются
В отличие от других алгоритмов, нейронные сети с их глубоким обучением не могут быть запрограммированы непосредственно для решения задачи. Скорее, от них, как и от развивающегося мозга ребенка, требуется усвоение информации.Стратегии обучения основаны на трех методах:
Контролируемое обучение: Эта стратегия обучения является самой простой, поскольку есть помеченный набор данных, который проходит компьютер, и алгоритм модифицируется до тех пор, пока он не сможет обработать набор данных для получения желаемый результат.
Обучение без учителя: Эта стратегия используется в случаях, когда нет помеченного набора данных, на котором можно было бы учиться. Нейронная сеть анализирует набор данных, а затем функция стоимости сообщает нейронной сети, насколько далеко она была от цели.Затем нейронная сеть настраивается для повышения точности алгоритма.
Усиленное обучение: В этом алгоритме нейронная сеть усиливается за положительные результаты и наказывается за отрицательный результат, заставляя нейронную сеть со временем учиться.
История нейронных сетей
Хотя нейронные сети, безусловно, представляют собой мощную современную компьютерную технологию, идея восходит к 1943 году, когда двое исследователей из Чикагского университета: нейрофизиолог Уоррен Маккалоу и математик Уолтер Питтс.
Их статья «Логическое исчисление идей, присущих нервной деятельности» была впервые опубликована в журнале Brain Theory , который популяризировал теорию, согласно которой активация нейрона является основной единицей мозговой активности. Однако эта статья была больше связана с развитием когнитивных теорий того времени, и два исследователя переехали в Массачусетский технологический институт в 1952 году, чтобы открыть первый отдел когнитивных наук.
Нейронные сети в 1950-х годах были плодородной областью для исследований компьютерных нейронных сетей, включая Perceptron , который выполнял распознавание визуальных образов на основе сложного глаза мухи.В 1959 году два исследователя из Стэнфордского университета разработали MADALINE (Multiple ADAptive LINear Elements) с нейронной сетью, выходящей за рамки теоретической и решающей реальную проблему. MADALINE был специально применен для уменьшения количества эха в телефонной линии, для повышения качества голоса и оказался настолько успешным, что до сих пор используется в коммерческих целях.
Несмотря на первоначальный энтузиазм в области искусственных нейронных сетей, заслуживающая внимания книга Массачусетского технологического института 1969 года « Персептроны: введение в вычислительную геометрию » смягчила это.Авторы выразили скептицизм по поводу искусственных нейронных сетей и того, что это, вероятно, тупик в поисках настоящего искусственного интеллекта. Это значительно притупило эту область исследований на протяжении 1970-х годов, как в плане общего интереса, так и в плане финансирования. Несмотря на это, некоторые усилия были продолжены, и в 1975 году была разработана первая многослойная сеть, открывшая путь для дальнейшего развития нейронных сетей — достижение, которое некоторые считали невозможным менее десяти лет назад.
Интерес к нейронным сетям в 1982 году значительно возобновился, когда Джон Хопфилд, профессор Принстонского университета, изобрел ассоциативную нейронную сеть; Инновация заключалась в том, что данные могли перемещаться в двух направлениях, поскольку раньше они были только однонаправленными, а также известны своим изобретателем как сеть Хопфилда. В будущем искусственные нейронные сети пользуются большой популярностью и ростом.
Использование нейронных сетей в реальном мире
Распознавание рукописного ввода — это пример реальной проблемы, которую можно решить с помощью искусственной нейронной сети.Проблема в том, что люди могут распознать почерк с простой интуицией, но проблема для компьютеров заключается в том, что почерк каждого человека уникален, имеет разные стили и даже разный интервал между буквами, что затрудняет последовательное распознавание.
Например, первая буква, заглавная A, может быть описана как три прямые линии, где две встречаются на вершине наверху, а третья проходит через две другие на полпути вниз, и имеет смысл для людей, но является задача выразить это в компьютерном алгоритме.
Используя подход искусственной нейронной сети, в компьютер загружаются обучающие примеры известных рукописных символов, которые были ранее помечены как буква или цифра, которым они соответствуют, и с помощью алгоритма компьютер затем учится распознавать каждый символ и как набор данных символов увеличивается, так же как и точность. Распознавание рукописного ввода имеет различные приложения, от автоматического считывания адресов в письмах в почтовой службе, уменьшая количество случаев мошенничества с чеками в банках, до ввода символов для перьевых вычислений.
Другой тип задач для искусственной нейронной сети — это прогнозирование финансовых рынков. Это также называется «алгоритмической торговлей» и применяется ко всем типам финансовых рынков, от фондовых рынков, товаров, процентных ставок и различных валют. В случае фондового рынка трейдеры используют алгоритмы нейронной сети, чтобы находить недооцененные акции, улучшать существующие модели акций и использовать аспекты глубокого обучения для оптимизации своего алгоритма по мере изменения рынка.Сейчас есть компании, специализирующиеся на алгоритмах нейросетевой торговли акциями, например, MJ Trading Systems.
Алгоритмы искусственных нейронных сетей с присущей им гибкостью продолжают применяться для решения сложных задач распознавания образов и прогнозирования. Помимо приведенных выше примеров, сюда входят такие разнообразные приложения, как распознавание лиц на изображениях в социальных сетях, обнаружение рака для медицинской визуализации и бизнес-прогнозирование.
вредоносных атак на нейронные сети
Примеры состязательных действий для людей — введение
Эта статья основана на двадцатиминутном выступлении, которое я провел на мероприятии TrendMicro Philippines Decode Event 2018.Речь идет о том, как злоумышленники могут атаковать глубокие нейронные сети. Обученная нейронная сеть — это модель; В этой статье я буду использовать термины сеть (сокращение от нейронной сети) и модель как синонимы.
Глубокое обучение в двух словах
Базовым строительным блоком любой нейронной сети является искусственный нейрон.
По сути, нейрон принимает набор входных данных и выдает значение. Нейрон получает взвешенную сумму входов (плюс число, называемое смещением) и передает ее нелинейной функции активации.Затем функция выводит значение, которое можно использовать в качестве одного из входов для других нейронов.
Вы можете соединить нейроны различными (обычно сложными!) Способами , и вы получите нейронную сеть . Мы называем, как нейроны связаны архитектурой , нейронной сети. Если у вас есть много слоев нейронов между входами и выходами, то это нейронная сеть глубиной и .
При правильном обучении глубокие нейронные сети могут выдавать правильный набор выходных данных при заданном наборе входных данных.
Обучение глубокой нейронной сети означает, что мы используем методы для получения весов (и смещения) для искусственных нейронов. Напомним ранее, что одним из шагов для каждого нейрона является вывод значения — получение взвешенной суммы входных данных (плюс смещение) .
Это похоже на нейронную сеть в глубину , изучила , как сопоставлять входы с выходами! Вот почему это называется Deep Learning!
Глубокие нейронные сети, использующие методы глубокого обучения, очень хорошо умеют находить закономерности при огромных объемах данных.
Глубокие нейронные сети популярны, потому что теоретически они могут обучаться на разных уровнях абстракции.
Например, слои рядом со входом могут изучать простые функции, такие как линии и кривые, разной ориентации. Средние слои могут использовать их в качестве входных данных для различения более сложных форм, таких как части лица (глаза, нос и т. Д.), , а слои рядом с выходными данными могут использовать эту информацию для распознавания конкретных лиц на основе структур лица.
Вы можете себе представить, насколько сложно людям создать программу распознавания лиц без глубокого обучения.Поскольку глубокое обучение отлично подходит для поиска закономерностей, оно может автоматизировать задачи, которые раньше многие считали невозможными.
Однако модели глубокого обучения легко обмануть!
Глубокое обучение сегодня имеет множество приложений. Однако модели глубокого обучения очень подвержены атакам!
Вот пример:
Вот изображение моей очень хорошей подруги Джессики.
Допустим, мы передаем это изображение современной модели, и она говорит, что на 70% уверены, что это Джессика.
Справа от изображения ниже еще одно изображение Джессики. Как видите, он выглядит идентично предыдущему изображению. Когда мы скармливаем это другое изображение той же модели, возможно ли, что модель скажет, что это 99% Крис Акино? Да, это возможно!
В 2013 году исследователи опубликовали статьи с изображениями, подобными приведенным ниже.
Как видите, каждая пара изображений выглядит идентично. Однако, в то время как левые были классифицированы правильно, все изображения справа были уверенно классифицированы как страус.
Оказывается, вы можете немного изменить ввод, и модель могла бы сказать, что она на 99% уверена, что абсолютно неправильный вывод верен. Вы можете немного изменить хорошо обученную модель, и она может сказать, что она на 99% уверена, что это Джессика!
Два забавных изображения ниже взяты из очень цитируемой статьи 2015 года. Хорошо обученная модель сказала, что на 99% уверена, что на левом изображении находится бикини. Он также на 99% уверен, что на правильном изображении изображена штурмовая винтовка.
В этой газете много странных изображений.Ниже приведены некоторые из них, и все они классифицируются с вероятностью 99%, что это что-то конкретное, например, африканский хамелеон или число девять.
Похоже, эти высокоточные модели не совсем понимают, что делают.
В 2016 году в одной статье было продемонстрировано, как можно обмануть коммерческое программное обеспечение для распознавания лиц, заставив думать, что вы кто-то другой. Вам просто нужно носить специально разработанные поддельные очки. Хотя представленные результаты не так надежны, они многообещающие, и я полагаю, что со временем они улучшатся, как и почти все другие технологии.
Вот видео (2 ноября 2017 г.) из Массачусетского технологического института, в котором они обманули модель глубокого обучения, согласно которой черепаха, напечатанная на 3D-принтере, является винтовкой для большинства ориентаций.
Определение состязательных примеров / входных данных
Эти намеренно созданные входные данные для нейронных сетей называются состязательными примерами.
Состязательные примеры — это входные данные, разработанные злоумышленником так, чтобы модель допускала ошибку. Это означает, что если вы злонамеренно слегка измените нормальный ввод, модель выдаст явно неправильный вывод.
Если вы покажете людям модифицированный ввод, они легко выдадут правильный результат. Для человека изменения незначительны.
Почему это важно
Это имеет значение, очевидно, потому что бесполезно использовать модель, которая не имеет смысла. Также опасно развертывание в реальном мире, если риски высоки.
Злая Джессика может уйти от просмотра контента NSFW в офисе. Злая Джессика может сделать чек на сто песо и обналичить его на десять тысяч песо. Дурные очки Джессики могут ограбить банк, а А.Я могу сообщить, что на 99% уверен, что грабитель — Крис Акино.
Примеры состязательности не относятся к изображениям.
Например, любая компания с огромными объемами данных во многом полагается на понимание смысла этих данных. Например, Twitter может захотеть проанализировать множество словосочетаний, чтобы понять, какие темы сейчас в тренде и каково общее настроение людей, рассматривающих данную тему.
Анализ настроений также можно использовать в качестве обратной связи, например, о том, насколько хорошо работает компания.Например, если аутичная Джессика могла взламывать все личные разговоры своих коллег по офису, она могла бы ежедневно давать себе оценку удовлетворенности или доверия и использовать ее для улучшения своего взаимодействия с другими.
В работе 2017 года было продемонстрировано, что, просто заменив определенные слова их синонимами, модель может сказать, что негативное настроение является позитивным, или наоборот.
Это катастрофа для аутичной Джессики, если она принимает решения о том, как действовать, основываясь на противоположной информации!
Вот статья о примерах противоборства, применяемых к системам понимания прочитанного: «Точность шестнадцати опубликованных моделей упала со среднего балла в 75% F1 до 36%» — «Состязательные примеры для оценки систем понимания прочитанного» (2017)
Теоретически, также можно внести небольшие изменения в файл вредоносного ПО, чтобы он оставался вредоносным, но модель скажет, что это не так.Это опасно и явно сводит на нет его цель.
Интересные факты!
Согласно многочисленным экспериментам, в том числе экспериментам Google Brain, они обнаружили, что враждебный ввод в одну сеть также, скорее всего, является враждебным по отношению к другой, даже если сети имеют разную архитектуру. Они называют это свойство Adversarial Sample Transferability .
Кроме того, вы можете создавать враждебные входы в любую известную сегодня сеть. Многие алгоритмы были разработаны специально для этой цели, о чем мы вскоре поговорим.
Как мы создаем состязательные материалы?
Фактический шум, добавленный к изображению ниже, предназначен для того, чтобы обмануть эту конкретную сеть. Это не случайный шум. Мы можем создать этот шум, если мы знаем архитектуру и значения всех параметров (веса и смещения) сети. Это похоже на метод «белого ящика» .
При обычном обучении у нас есть фиксированные входные данные, и мы настраиваем параметры в правильном направлении, чтобы получить максимальную оценку для правильного класса.Вот что делают хорошие алгоритмы обучения.
Одна из идей состоит в том, чтобы перевернуть этот процесс. У нас есть фиксированные параметры, и мы можем настроить входные данные. Мы можем немного подправить исходный ввод в противоположном направлении, пока не получим высокий балл для неправильного класса. Это становится состязательной версией исходного ввода. ( Андрей Капарти — Breaking Covnets )
Эти изменения настолько крошечные, что не наблюдаются людьми, но наблюдаются в сети.Это похоже на то, что мы используем основу всех алгоритмов обучения сети.
Эта идея используется во многих методах, но есть много других идей. Дело в том, что это можно сделать.
Атака по карте значимости на основе якобиана (JSMA). L0, L2, L-бесконечные атаки. Дурачок. Быстрый градиентный знак. Итерационный градиентный знак. И так далее.
Атака черного ящика, по сути
Мы обсудили подход белого ящика, который просто означает, что если мы знаем все о сети, которую пытаемся атаковать, мы можем это сделать.
Что, если мы сможем использовать только ту сеть, которую хотим атаковать? Это означает, что мы можем только вводить ввод и получать соответствующий вывод. Больше мы ничего не знаем. Оказывается, да, с учетом этих ограничений мы можем атаковать любую сеть.
Недавние статьи действительно показали успешность атак на коммерческие сети, такие как Amazon и Google.
Ключ — использовать Adversarial Sample Transferability . Если нам удастся обмануть замещающую сеть, скорее всего, мы сможем обмануть целевую сеть, которую хотим атаковать.
Учитывая наборы входов и выходов, которые мы получили от целевой сети, мы можем использовать это для обучения замещающей сети. Поскольку мы знаем все о нашей замещающей сети (веса, смещения, архитектура), , мы можем создавать противников для этой сети. И из-за возможности передачи эти враждебные входы, скорее всего, также будут противниками сети, которую мы хотим атаковать.
Вот недавнее видео из исследовательской работы исследователей Массачусетского технологического института, где они демонстрируют, что их алгоритм черного ящика в 1000 раз быстрее, чем существующие алгоритмы атаки черного ящика. (6 апреля 2018 г., эффективные запросы противоборства с использованием черного ящика, Arxiv: 1712.07113)
Для этой страницы требуется Javascript. Пожалуйста, включите его для https://weightagnostic.github.io/
Аннотация
Не все архитектуры нейронных сетей одинаковы, некоторые из них работают лучше других для определенных задач. Но насколько важны весовые параметры нейронной сети по сравнению с ее архитектурой? В этой работе мы задаемся вопросом, в какой степени одна только архитектура нейронных сетей, без изучения каких-либо весовых параметров, может кодировать решения для данной задачи.Мы предлагаем метод поиска архитектур нейронных сетей, которые уже могут выполнять задачу без каких-либо явных силовых тренировок. Чтобы оценить эти сети, мы заполняем соединения одним общим параметром веса, выбранным из равномерного случайного распределения, и измеряем ожидаемую производительность. Мы демонстрируем, что наш метод может найти минимальные архитектуры нейронных сетей, которые могут выполнять несколько задач обучения с подкреплением без силовых тренировок. В области контролируемого обучения мы находим архитектуры, которые могут достичь гораздо более высокой, чем вероятность, точности по MNIST с использованием случайных весов.
Введение
В биологии к ранним видам относятся те, детеныши которых уже обладают определенными способностями с момента рождения. Есть свидетельства того, что вылупившиеся ящерицы и змеи уже обладают способностью убегать от хищников. Вскоре после вылупления утки могут плавать и есть самостоятельно, а индейки могут визуально распознавать хищников. Напротив, когда мы обучаем искусственных агентов выполнению задачи, мы обычно выбираем архитектуру нейронной сети, которую считаем подходящей для кодирования политики задачи, и находим весовые параметры этой политики с помощью алгоритма обучения.Вдохновленные преждевременным поведением, сформировавшимся в природе, в этой работе мы разрабатываем нейронные сети с архитектурой, которая естественным образом способна выполнять данную задачу, даже когда их весовые параметры выбираются случайным образом. Используя такую архитектуру нейронных сетей, наши агенты уже могут хорошо работать в своей среде без необходимости изучения весовых параметров.
Примеры нейронных сетей, не зависящих от веса: Bipedal Walker (слева), Car Racing (справа) Мы ищем архитектуры, уменьшая весовые коэффициенты.Вместо обучения сетям назначается одно общее значение веса при каждом развертывании. Архитектуры, оптимизированные для ожидаемой производительности в широком диапазоне значений веса, по-прежнему могут выполнять различные задачи без силовых тренировок.
Десятилетия исследований нейронных сетей предоставили строительные блоки с сильными индуктивными предубеждениями для различных областей задач. Сверточные сети особенно подходят для обработки изображений. Недавняя работа продемонстрировала, что даже случайно инициализированные CNN могут эффективно использоваться для задач обработки изображений, таких как сверхвысокое разрешение, рисование и передача стиля.Schmidhuber et al. показали, что случайно инициализированный LSTM с изученным линейным выходным слоем может предсказывать временные ряды, в которых традиционные RNN, обученные с использованием методов коллектора, терпят неудачу. Последние разработки в области самовнимания и капсульных сетей расширяют набор строительных блоков для создания архитектур с сильными индуктивными предубеждениями для различных задач. Увлеченные внутренними возможностями случайно инициализированных CNN и LSTM, мы стремимся искать нейронные сети , не зависящие от веса, , архитектуры с сильными индуктивными смещениями, которые уже могут выполнять различные задачи со случайными весами.
Классификационная сеть MNIST, разработанная для работы со случайными весами Сетевые архитектуры, которые уже работают со случайными весами, не только легко обучаются, но и предлагают другие преимущества. Например, мы можем дать той же сети набор (необученных) весов для повышения производительности без необходимости явно тренировать какие-либо весовые параметры.
В то время как обычная сеть со случайной инициализацией будет иметь точность ~ 10% по MNIST, эта конкретная сетевая архитектура обеспечивает гораздо лучшую, чем вероятность, точность по MNIST (> 80%) со случайными весами.Без каких-либо силовых тренировок точность возрастает до> 90%, когда мы используем набор нетренированных весов.
Чтобы найти архитектуры нейронных сетей с сильными индуктивными смещениями, мы предлагаем искать архитектуры, не придавая значения весам. Это достигается за счет того, что (1) назначает один общий весовой параметр каждому сетевому соединению, а (2) оценивает сеть в широком диапазоне этого единственного весового параметра. Вместо оптимизации весов фиксированной сети мы оптимизируем их для архитектур, которые хорошо работают в широком диапазоне весов.Мы демонстрируем, что наш подход может создавать сети, которые, как ожидается, будут выполнять различные задачи непрерывного управления со случайным параметром веса. В качестве доказательства концепции мы также применяем наш метод поиска в контролируемой области обучения и обнаруживаем, что он может обнаруживать сети, которые даже без явных силовых тренировок могут достичь гораздо более высокой, чем вероятность, точности теста ∼ \ sim∼ 92% по MNIST. . Мы надеемся, что наша демонстрация таких нейронных сетей, не зависящих от веса, будет стимулировать дальнейшие исследования по изучению новых строительных блоков нейронных сетей, которые не только обладают полезными индуктивными смещениями, но также могут обучаться с использованием алгоритмов, которые не обязательно ограничиваются методами на основе градиента.
Интерактивная демонстрация
Независимая от веса нейронная сеть, выполняющая задачу CartpoleSwingup . Перетащите ползунок, чтобы управлять параметром веса и наблюдать за производительностью при различных общих параметрах веса. Вы также можете точно настроить индивидуальный вес всех соединений в этой демонстрации.
Сопутствующие работы
Наша работа связана с существующей работой не только в области глубокого обучения, но и в различных других областях:
Поиск архитектуры Алгоритмы поиска для топологий нейронных сетей возникли в области эволюционных вычислений в 1990-х годах, хотя их происхождение можно проследить до «Неорганизованных машин» Алана Тьюринга.Наш метод основан на NEAT, известном алгоритме поиска топологии, который известен своей способностью одновременно оптимизировать веса и структуру сетей.
Чтобы достичь самых современных результатов, последние методы сужают пространство поиска до архитектур, состоящих из основных строительных блоков с сильными априорными доменами, такими как CNN, повторяющиеся ячейки и самовнимание. Однако, несмотря на все достигнутые успехи, он показал, что простые методы случайного поиска уже могут достигать результатов SOTA, если используются такие мощные, вручную созданные строительные блоки с сильными приоритетами домена.
Кроме того, внутренний цикл для обучения весов каждой предполагаемой архитектуры перед оценкой делает поиск нейронной архитектуры затратным с точки зрения вычислений, хотя были предприняты усилия для повышения эффективности. В нашем подходе мы оцениваем архитектуры без силовых тренировок, минуя дорогостоящий внутренний цикл, аналогично подходу случайных проб, разработанному Hinton et al. в 1990-х годах на основе эволюционного эффекта Болдуина были разработаны более устойчивые к весу архитектуры.
Байесовские нейронные сети Весовые параметры BNN — это не фиксированные значения, а выборка из распределения. Хотя параметры этого распределения можно узнать, количество параметров часто превышает количество весов. Недавно Неклюдов и соавт. предложенные сети дисперсии, которые отбирают каждый вес из распределения с нулевым средним и изученным параметром дисперсии и показывают, что ансамблевые оценки могут улучшить производительность в задачах распознавания изображений.Мы используем аналогичный подход, выбирая веса из фиксированного равномерного распределения с нулевым средним, а также оценивая производительность сетевых ансамблей.
Алгоритмическая теория информации В AIT колмогоровская сложность вычислимого объекта — это минимальная длина программы, которая может его вычислить. Минимальное описание
Нейронные сети: обучение с обратным распространением.
В моем первом посте о нейронных сетях я обсуждал представление модели для нейронных сетей и то, как мы можем вводить входные данные и вычислять выход.Мы вычислили этот результат, слой за слоем, объединив входные данные из предыдущего слоя с весами для каждого нейрон-нейронного соединения. Я упомянул, что мы поговорим о том, как найти правильные веса для соединения нейронов вместе, в одном из будущих постов — это тот пост!
Обзор
В предыдущем посте я просто предположил, что у нас есть волшебное предварительное знание правильных весов для каждой нейронной сети. В этом посте мы фактически выясним, как заставить нашу нейронную сеть «учить» правильные веса.Однако, чтобы было с чего начать, давайте просто инициализируем каждый из весов случайными значениями в качестве первоначального предположения. Мы вернемся к этому шагу случайной инициализации позже в этой публикации.
Учитывая наши случайно инициализированные веса, соединяющие каждый из нейронов, теперь мы можем ввести нашу матрицу наблюдений и вычислить выходные данные нашей нейронной сети. Это называется прямым распространением. Учитывая, что мы выбрали наши веса случайным образом, наш результат, вероятно, будет не очень хорошим по сравнению с нашим ожидаемым результатом для набора данных.
Так что же нам делать дальше?
Ну, для начала давайте определимся, как выглядит «хороший» вывод. А именно, мы разработаем функцию стоимости , которая штрафует результаты, далекие от ожидаемого значения.
Затем нам нужно найти способ изменить веса, чтобы функция стоимости улучшилась. Любой заданный путь от входного нейрона к выходному нейрону — это, по сути, просто композиция функций; как таковые, мы можем использовать частные производные и цепное правило для определения отношения между любым заданным весом и функцией стоимости .Мы можем использовать эти знания, чтобы затем использовать градиентный спуск для обновления каждого из весов.
Предварительные требования
Когда я впервые изучал обратное распространение, многие люди пытались абстрагироваться от лежащей в основе математики (производных цепочек), и я так и не смог понять, что, черт возьми, происходит, пока не посмотрел лекцию профессора Уинстона в Массачусетском технологическом институте. Я надеюсь, что этот пост дает лучшее понимание обратного распространения ошибки, чем просто «это шаг, на котором мы отправляем ошибку назад, чтобы обновить веса».
Чтобы полностью понять концепции, обсуждаемые в этом посте, вы должны знать следующее:
Частные производные Этот пост будет немного переполнен множеством частных производных. Тем не менее, я надеюсь, что даже читатель без предварительного знания многомерного исчисления все равно сможет следовать логике обратного распространения ошибки.
Если вы не знакомы с математическим анализом, $ \ frac {{\ partial f \ left (x \ right)}} {{\ partial x}} $, вероятно, будет выглядеть довольно странно.Вы можете интерпретировать это выражение как «как изменяется $ f \ left (x \ right) $, когда я меняю $ x $?» Это будет полезно, потому что мы можем задавать такие вопросы, как «Как изменяется функция стоимости, когда я изменяю этот параметр? Увеличивает ли она или уменьшает функцию стоимости?» в поисках оптимальных параметров.
Если вы хотите освежить в памяти многомерное исчисление, ознакомьтесь с уроками Академии Хана по этой теме.
Градиентный спуск Чтобы этот пост не получился слишком длинным, я выделил тему градиентного спуска в другой пост.Если вы не знакомы с этим методом, обязательно прочтите об этом здесь и поймите, прежде чем продолжить этот пост.
Матричное умножение Вот краткое сообщение от Академии Хана.
Пуск простой
Чтобы выяснить, как использовать градиентный спуск при обучении нейронной сети, давайте начнем с простейшей нейронной сети: один входной нейрон, один нейрон скрытого слоя и один выходной нейрон.
Чтобы показать более полную картину происходящего, я расширил каждый нейрон, чтобы показать 1) линейную комбинацию входных данных и весов и 2) активацию этой линейной комбинации.2}]
Есть множество функций стоимости, которые мы могли бы использовать, но для этой нейронной сети квадрат ошибки будет работать нормально.
Помните, мы хотим оценить выходные данные нашей модели по отношению к целевым выходным данным, пытаясь минимизировать разницу между ними.
Связь весов с функцией стоимости
Чтобы минимизировать разницу между выходными данными нашей нейронной сети и целевыми выходными данными, нам необходимо знать, как изменяется производительность модели по каждому параметру в нашей модели.Другими словами, нам нужно определить отношение (читай: частную производную) между нашей функцией стоимости и каждым весом. Затем мы можем обновить эти веса в
Модуль нейронной сети
Модуль нейронной сети — это экспериментальный модуль, который позволяет выполнять пост-классификацию сообщений на основе их текущих символов и некоторого обучающего корпуса, полученного в результате предыдущего обучения.
До Rspamd 1.7 до версии 2.0 вам необходимо собрать Rspamd с поддержкой libfann , чтобы использовать этот модуль.Обычно он включен, если вы используете предварительно собранные пакеты, однако его можно указать с помощью команды -DENABLE_FANN = ON от до cmake в процессе сборки.
Начиная с Rspamd 2.0, модуль libfann удален в честь kann. Этот инструмент позволяет обрабатывать более мощные нейронные сети, и его следует использовать для всех новых установок.
Нейронная сеть изучается на предмет спама, когда сообщение распознается как спам, и как радиолюбитель, когда сообщение распознается как радиолюбительское (за этим стоит несколько эвситических подходов, так что это не просто оценка в целом).Вы также можете использовать свои собственные критерии для обучения.
Обучение выполняется в фоновом режиме, и после некоторого количества поездов нейронная сеть обновляется и сохраняется на сервере Redis, что позволяет сканерам загружать и обновлять свои собственные данные.
После некоторого количества итераций обучения (по умолчанию 10 ) процесс обучения удаляет старую нейронную сеть и начинает обучение новой. Это сделано для того, чтобы старые данные не повлияли на текущую обработку. После обучения данные нейронной сети сохраняются в Redis, где все сканеры Rspamd делятся своими данными обучения.Redis также используется для хранения промежуточных векторов поездов. ИНС и обучающие данные сохраняются в Redis, сжатые с помощью компрессора zstd .
Конфигурация
Этот модуль явно отключен по умолчанию, поэтому вам необходимо включить его в локальной или переопределенной конфигурации.
Убедитесь, что хотя бы один сервер Redis указан в общем разделе redis . В качестве альтернативы вы можете определить сервер Redis в конфигурации модуля:
Модуль нейронных сетей поддерживает различные варианты конфигурации в отношении настройки различных нейронных сетей.Начиная с версии 1.7 он поддерживает несколько правил как для автоматических, так и для неавтоматических нейронных сетей. Однако эта конфигурация обычно является расширенной для общего использования.
По умолчанию вы можете использовать старый стиль конфигурации, например
# local.d / neural.conf
server = "127.0.0.1:6379";
поезд {
max_trains = 1к; # Количество образцов ветчины / спама, необходимых для начала обучения
max_usages = 20; # Количество итераций обучения, пока данные ИНС действительны
скорость обучения = 0,01; # Скорость обучения
max_iterations = 25; # Максимальное количество итераций обучения (лучшая точность, но и меньшая скорость обучения)
}
ann_expire = 2d; # Как долго ИНС должна храниться в Redis
В этом фрагменте мы определяем простую сеть, которая автоматически изучает любительский и спам в сообщениях с соответствующими действиями.При создании разрешено делать дополнительные поезда еще 20 раз. Rspamd обучает нейронную сеть, когда (ham_samples + spam_samples)> = max_trains . Он также автоматически поддерживает равные пропорции образцов спама и радиолюбителей для обеспечения честного обучения. Если вы запускаете небольшую почтовую систему, вы можете увеличить max_usages , чтобы сохранить обученные сети на более длительное время (вы также можете соответствующим образом изменить ann_expire ).
Rspamd может использовать одну и ту же нейронную сеть из нескольких процессов, которые могут выполняться на нескольких хостах в сети.Гарантируется, что процессы с разными включенными символами конфигурации будут использовать разные нейронные сети (каждая сеть имеет хэш всех символов, определенных как суффикс для ключей Redis). Кроме того, есть гарантия, что все обучение будет выполняться в одном процессе, который атомарно обновляет данные нейронной сети после обучения.
Использование настроек
Rspamd также автоматически использует идентификатор настроек для выбора разных сетей для разных наборов пользовательских настроек. Это определяется идентификатором настроек, который добавляется к имени нейронной сети.Эта функция может быть полезна, например, когда вы хотите разделить нейронные сети для входящих и исходящих пользователей, определенных настройками.
Множественные сети
Начиная с версии 1.7, Rspamd поддерживает несколько нейронных сетей, определенных в конфигурации. Это может быть полезно для настройки длинных / коротких нейронных сетей, где одна сеть имеет много max_usages и довольно большие max_trains , в то время как короткая сеть быстро реагирует на вновь обнаруженные шаблоны. Однако на практике такая настройка обычно не является более эффективной, поэтому рекомендуется использовать только одну сеть.