Гугл нейронные сети


Нейронная сеть Google изобрела собственный протокол шифрования / Geektimes

Сотрудники Google Brain, одно из подразделений корпорации Google, занимающееся вопросами глубинного обучения, создали нейросеть, которая разработала собственный протокол шифрования. Исследователи Мартин Абади и Давид Андерсен показали, что нейронные сети в состоянии разрабатывать простые способы шифрования сообщений.

В эксперименте, проведенном специалистами, нейронная сеть смогла создать собственную форму шифрования путем машинного обучения. Эту систему не обучали принципам шифрования или специальным алгоритмам. Шифрование, разработанное компьютером, оказалось довольно простым, особенно, если сравнить с теми методами, которые были разработаны человеком. Тем не менее, это очень интересный результат исследования, где по словам авторов «не предполагалось продемонстрировать сильное шифрование». Команда Google Brain в ходе эксперимента работала не с одной нейронной сетью, а сразу с тремя. Их назвали Элис, Боб и Ева. Каждая система была обучена поддерживать общение с двумя другими. Работа Элис заключалась в отправке секретных сообщений Бобу. «Он», в свою очередь, должен был расшифровать сообщение, присланное Элис. А задачей нейронной сети Ева, в свою очередь, было наблюдать за общением двух других сетей.

Для того, чтобы скрыть смысл изначального сообщения, Элис должна была конвертировать открытый текст таким образом, чтобы Ева его не понимала. Измененный текст, тем не менее, должен быть понятен Бобу, и и только ему. Изначально Элис и Боб договорились о том, каким образом нужно изменять текст, чтобы они могли понимать друг друга, а Ева бы ничего не понимала.

На этом графике показано количество ошибок в расшифровке сообщений Элис нейронными сетями Боб и Ева. В процессе обучения Боб делал все меньше ошибок. Ева тоже училась, но после каждой удачной попытки система шифрования менялась, и Ева ничего не могла с этим поделать

Первые попытки шифрования были не слишком удачными. Боб на первых порах ничего не мог поделать с шифрованными сообщениями Элис. Но с течением времени Элис разработала достаточно надежный метод, который был понятен Бобу. Ева при этом не могла расшифровать сообщение, чтобы понять, о чем здесь идет речь. Иногда ей удавалось раскрыть систему шифрования сообщений двух других нейронных сетей, но те после каждой удачной попытки Евы меняли систему шифрования.

Авторы проекта решили выбрать симметричные криптосистемы в качестве основы для работы своих нейронных сетей. Симметричные криптосистемы (англ. symmetric-key algorithm) — способ шифрования, при котором котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Симметричное шифрование было единственным способом шифрования до момента изобретения схемы асимметричного шифрования. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями.

После того, как сценарий был отыгран более 15 тысяч раз, Боб научился без единой ошибки конвертировать зашифрованный текст Элис в обычный текст. В то же время, Ева могла угадать лишь 8 из 16 битов данных, содержащихся в сообщении. Поскольку каждый бит — это 1 или 0, то, фактически, угадать Ева могла лишь чисто случайно. Попытка расшифровать сообщение Элис Евой, по словам исследователей, больше похоже на угадывание при помощи подбрасывания монетки. Результаты исследования опубликованы здесь.

Мы точно не понимаем, как работает этот метод шифрования, поскольку машинное обучение позволило получить результат без демонстрации пути его разработки. На практике это означает то, что мы не сможем получить понятный человеку способ шифрования, если он будет достаточно сложным. Практическое применение этой технологии, таким образом, ограничено.

«Методы работы с нейронными сетями начали развиваться на текущем уровне в последние несколько лет, поэтому мы лишь в начале пути», — говорит Джо Стуронас, специалист из компании PKWARE, занимающейся вопросами шифрования. Пока что человек без труда может взломать систему защиты информации, разработанной нейронными системами. Возможно, через некоторое время машины научаться создавать более надежные системы шифрования данных, на взлом которых человеку придется потратить немало времени, если он будет вообще в состоянии понять результат работы машин.

Исследователи в дальнейшем планируют попробовать работать не только с симметричным шифрованием данных. Возможно, будет задействована и стеганография. Ученые считают, что нейронные сети, по всей видимости, не слишком сильны в криптоаналитике, но зато они могут быть очень эффективными при анализе метаданных и анализе трафика, передаваемого по сети. Кроме того, исследователи говорят о том, что нейронные сети могут быть эффективны не только для защиты данных, но и для нападения.

Google Brain — проект работы с нейросетями, который «отпочковался» от отдела долгосрочных исследований в Google X. Сотрудники Google Brain занимаются исключительно работой с технологиями машинного обучения и нейросетями. По мнению руководства Google, эти технологии могут дать компьютерным системам обширные возможности. Системы на основе машинного обучения, вероятно, смогут изменить многое — от скорости и корректности постановки медицинского диагноза до вождения автомобилей. В итоге, как считают представители Google Brain, все это может изменить само человечество.

geektimes.ru

Новый переводчик Google: будут ли нейросети лучше людей?

Без нейросетей будущее уже невозможно. Эти системы используются не только в сетевых и оффлайновых приложениях, но начинают применяться в робототехнике, медицине, образовании, экономике, медиа. Их можно задействовать в любом процессе, в котором нужно анализировать данные. Последнее нашумевшее приложение для нейросети — это новый онлайн-переводчик Google, который уже может конкурировать с человеком. Но будет ли успешной конкуренция? Или нейросети всегда будут отставать от человека или даже зависеть от него?

На кого похожа нейросеть

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

Нейросеть делает то же самое, только это компьютерная программа, созданная на основе алгоритмов. И, в отличие от новорожденного, в нее заложены исходные данные. Их можно сравнить с окружающей средой ребенка, из которой он вычленяет и классифицирует нужную информацию для формирования навыка. Также делает и нейросеть. Каждый узел нейросети можно представить в виде коробки, в которой есть много входов и только один выход. Через входные отверстия в коробку попадают данные. На их основе формируется какой-либо один результат, который и попадает в выходное отверстие. Но этих коробочек может быть много. Каждый результат из коробочки — это новые входные данные для следующего ряда коробочек, или, как это называется, для следующего слоя нейросети, до тех пор, пока не будет сформирован окончательный результат. Таких слоев может быть сколько угодно, и именно так происходит классификация данных.

Но зачем нужна классификация и кто определяет параметры, по которым из массива данных в коробочке появляется какой-то результат? Каждое входное значение имеет определенный вес. Условно говоря, программист задает важность тех или иных данных для получения нужного результата. Кроме того, в каждой коробочке работает свой алгоритм для формирования выходных данных. Это необходимо для того, чтобы в итоге, после прохождения всех слоев, получить один правильный (или неправильный) ответ. Таким образом, нейросеть похожа на паутину, по которой информация идет от периферии к центральной точке.

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

Насколько глубоко может обучиться нейронная сеть? Нужен ли ей постоянно человек для распознавания ошибок? Например, если сеть копирует картину известного художника, то она определяет яркость, контуры, цвет и может на выходе дать похожую картину, соответствующую всем параметрам оригинальной, но не такую же. Как она поймет, что ошиблась?

Источник: therunet.com

«Если в нейронных сетях используется термин „обучение с учителем“, то здесь не имеется в виду человек. Сеть обучается на множестве входных и выходных векторов. Чтобы обучить нейронную сеть живописи, надо иметь для каждого возможного объекта какого-либо полотна его фото и итоговую картину. Фото  — это вход, картина  — это выход. Естественно, фотографий моделей Рембрандта не существует. Значит, надо подавать на вход фрагменты — руки, ноги, уши и другие. Вот в этом роль человека-учителя и состоит», — пояснил профессор кафедры вычислительной техники Игорь Бессмертый.

Зачем компании Google нейросеть?

Сегодня нейросети начинают применяться повсюду. Можно загрузить в нее действующие экономические показатели, и она предскажет кризис. Нейросети можно использовать для определения болезней, вычисления уязвимостей в информационных сетях, для сводок погоды — для чего угодно, где есть оцифрованные данные. Уже сейчас с помощью нейросетей приложения распознают текст или отдельные предметы по фотографиям.

А недавно Google представил свою новую систему для онлайн-перевода на основе нейросети (Google Neural Machine Translation system). По словам разработчиков, система уменьшила количество ошибок в машинном переводе на 55−80%. Чтобы протестировать сервис, разработчики брали статьи из Википедии на определенном языке, например, английском, загружали их в систему и получали перевод на испанский. Потом они сравнивали этот перевод с тем, который был на Википедии. То же самое делалось с использованием новостных сайтов.

Ранее переводчик Google разбивал предложение на слова и фразы и переводил их по отдельности, сравнивая с переводами тысяч документов ООН, Евросоюза и других организаций. Новая система воспринимает в итоге всю фразу целиком, предварительно разбивая ее на «словесные сегменты», которые и образуют значения, проходя через слои нейросети. По словам экспертов, представленных журналом Nature, эта модель похожа на распознавание изображений, когда сначала нейросеть определяет области яркости, затем контуры, потом цвета и так далее, пока не приходит к какому-либо результату.

Google Research Blog. Источник: research.googleblog.com

Новый переводчик Google был протестирован на самой сложной языковой паре Английский-Китайский и сразу же уменьшил количество ошибок и неточностей на 60%. В ближайшие месяцы нейросеть заработает и на других языковых парах сервиса.

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

«Попытка угадать контекст многократно усложнит задачу разработчикам. Это и для человека непросто. Вообще-то, перевод и отдельной фразы не всегда возможен. Перевести можно только весь текст целиком. Да и то это под силу только автору. Все ли уверены, что в романе «Война и мир» Лев Толстой имел в виду «peace», а не «world» («мир» как состояние общества без войны и «мир» как определение всего человечества — прим. редакции)? Скорее всего, он имел в виду оба значения, и перевести название «в лоб» вообще невозможно.

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

Университет ИТМО. Игорь Бессмертный

Будущее

Нейросеть — это подвид искусственного интеллекта, и она уже умеет распознавать и анализировать, предсказывать, показывать аналогии и выявлять проблемы. Но по разным оценкам системы ИИ будут совершенствоваться еще долгие годы, прежде чем станут повсеместно распространенными и действительно смогут приблизиться к человеческому уровню восприятия информации.

Нейросети — это всего лишь программы, выдающие ошибки, которые никогда бы не сделал человек. Например, в прошлом году получил серьезную огласку случай, когда приложение Google Photos назвало двух афроамериканцев на фотографии «гориллами». Возмущенный пользователь выложил скрин приложения в Twitter, после чего представители IT-гиганта извинились перед ним и удалили этот тег из приложения. Также нейросеть, например, может определять абстрактные черно-белые изображения как зебр или пингвинов.

В любом случае, функционал, мощности и корректность работы нейросетей будут зависеть от целей и потребностей конечных пользователей. Если программа существует ради развлечения, то ей можно «простить» некоторые недочеты. Однако если она, например, проводит анализ крови человека, то здесь ошибки недопустимы.

Источник: geektimes.ru

В связи с этим возникает вопрос: есть ли задача создать нейросеть, которая будет полностью имитировать человеческий мозг? Или эффективнее настраивать менее мощные программы под конкретные задачи, а не создавать искусственный супер-интеллект, который сможет обхватить столько же вопросов и задач, сколько и человек?

«Не могу не процитировать профессора Преображенского из „Собачьего сердца“: „Зачем создавать искусственного человека, если любая баба родит его за 9 месяцев?“. Для создания кремниевой копии мозга потребуются многие тысячи серверов и гигаватты электроэнергии, в то время как мозг — это около килограмма нейронов и 25 ватт энергопотребления. ИИ уже вокруг нас, и он успешно решает некоторые задачи. Параллельная парковка — непростая задача для многих обладателей естественного интеллекта, но парковаться уже могут машины далеко не премиального сегмента», — отметил Игорь Бессмертный.

news.ifmo.ru

нейронные сети научились писать картины

В блоге Google опубликован рассказ группы исследователей (в их числе российский разработчик Александр Мордвинцев) о том, как искусственные нейронные сети научили писать свои картины. Для этого использовались нейросети, предназначенные для распознавания изображений: получив фотографию или рисунок, они выясняют, какие именно объекты на ней изображены.

Такие нейросети состоят из 10–30 связанных слоев, которые работают последовательно: получив картинку, они анализируют ее и «сообщают» результаты анализа следующему слою. Например, первые слои могут искать на изображении края и углы, средние — интерпретировать наборы особенностей в отдельные объекты (например, двери или листья). Наконец, финальные слои объединяют все эти интерпретации воедино и делают выводы о том, что изображено на картинке — например, здание или дерево.

Чтобы получать «картины», исследователи заставляют работать нейронные сети задом наперед: они показывают сети случайный шум и просят «улучшить» его таким образом, чтобы на выходе получилась определенная интерпретация. Например, если попросить нейросеть «найти» в шуме банан, муравья или морскую звезду, та действительно подкорректирует изображение, чтобы в нем проявились узнаваемые черты.

Шум превращается в бананы. Иллюстрация: Google

Цель этого процесса — понять, правильно ли нейросеть интерпретирует те или иные объекты. Дело в том, что нейронные сети обучаются на большом количестве примеров. Можно показать им тысячу фотографий вилок, чтобы они определили нужные характеристики (ручка, четыре зубчика) и научились игнорировать лишние (цвет, форма, положение).

И в будущем, если «попросить» нейросеть нарисовать вилку, можно увидеть, насколько хорошо она усвоила «урок». Например, с гантелей одна из таких сетей не справилась: по-видимому, на всех фотографиях, которые ей показывали, гантели были изображены вместе с держащими их руками. Поэтому в собственном «творчестве» нейросеть тоже постаралась изобразить гантели с руками.

Шум превращается в неправильные гантели. Иллюстрация: Google

По словам исследователей, нейронной сети можно вообще не говорить, что именно нужно «нарисовать» — пусть решает сама. В таком случае ей на вход подают случайную картинку или фотографию, выбирают один из слоев нейросети и просят ее улучшить то, что этот слой найдет. Так как у каждого слоя свой уровень абстракции, то каждый раз получаются разные картинки.

Например, базовые слои, определяющие края и их положение на картинке, будут накладывать на фотографию мазки или простые орнаменты (еще один пример можно посмотреть по ссылке).

Фото: вверху Zachi Evenor / Flickr / CC BY 2.0, внизу Günther Noack / Google

А ниже — пример того, что получится, если скормить картинку более «продвинутым» слоям нейронной сети, которые ищут целые объекты на картинках. Разработчики как бы говорят нейросети: «Что бы ты ни увидела, мы хотим побольше этого!». В результате, если сети покажется, что облако похоже на птицу, она сделает его еще более похожим.

Иллюстрация: Google

Эта нейросеть в основном обучалась на изображениях животных, поэтому она попыталась найти их на фотографии. Правда, получилось немного вперемешку — как объясняют разработчики, это из-за того, что данные хранились на таком высоком уровне абстракции (да, мы тоже ничего не поняли, но выглядит красиво).

Слева направо: Бабочка-пес, свинья-улитка, верблюд-птица и собака-рыба.

Работает это, конечно, не только с облаками. Ниже другие примеры — как горы превращаются в башни, деревья — в здания, а листочки — в птиц.

Иллюстрация: Google

Чтобы получить действительно интересные картины, исследователи пошли еще дальше: они подавали нейронной сети картинку, затем то, что она выдала — и так вновь и вновь, на каждом шаге увеличивая масштаб изображения. Причем изначально можно скормить нейросети случайный шум, и все равно получится нечто прекрасное.

Иллюстрации взяты из альбома «Inceptionism: Going deeper into Neural Networks».

Meduza

scisne.net

Зачем голосовому Поиску Google нейронные сети? / Блог компании Google / Хабрахабр

Задумывались ли вы когда-нибудь, как работает голосовой поиск? Какая магия переводит ваши слова в поисковый запрос, причём практически в режиме реального времени? Сегодня мы расскажем, как «О’кей, Google!» стал ближе к вам на 300 миллисекунд и что именно позволяет вам разговаривать с вашим телефоном простым человеческим языком. В основе актуальной версии голосового поиска Google лежит улучшенный алгоритм для обучения нейронных сетей, созданный специально для анализа и распознавания акустических моделей. В основу новых, Рекуррентных Нейронных Сетей (англ.: recurrent neural networks — RNN), легли Нейросетевая темпоральная классификация (англ.: Connectionist Temporal Classification — CTC) и дискриминантный анализ для последовательностей, адаптированный для обучения подобных структур. Данные RNN намного точнее, особенно в условиях посторонних шумов, а главное — они работают быстрее, чем все предыдущие модели распознавания речи. Начать придётся с небольшого экскурса в историю. Почти 30 лет (по меркам IT-индустрии — целая вечность!) для распознавания речи использовались т.н. «модели смеси (многомерных) нормальных распределений» (англ.: Gaussian Mixture Model — GMM). Поначалу голосовой поиск Google также работал с этой технологией, пока мы не разработали новый подход к переводу звуковых волн в осмысленный набор символов, с которыми может оперировать «классический», текстовый поиск.

На тот момент (это случилось в 2012 году) перевод голосового поиска Google на технологию Глубоких Нейронных Сетей (англ.: Deep Neural Networks — DNN) осуществил настоящий прорыв в области распознавания речи. DNN лучше подходили для распознавания отдельных звуков, произносимых пользователем, чем GMM, благодаря чему точность распознавания речи значительно выросла.

В классической системе распознавания голоса записанный аудиосигнал делится на короткие (10 мс) фрагменты, каждый из которых затем анализируется на содержащиеся в нём частоты. Полученный в результате вектор характеристик прогоняется через акустическую модель (например, такую, как DNN), которая выдаёт набор вероятностных распределений среди всех возможных фонем. Скрытая Марковская модель (часто используемая в алгоритмах распознавания образов) помогает выявить последовательные структуры в этом наборе распределений вероятностей.

После этого данные анализа объединяются с другими данными, поступающими из альтернативных источников информации. Одним из них является Модель Произношения (англ.: Pronunciation Model), которая соединяет последовательность звуков в определённые слова предполагаемого языка. (прим.: Под «предполагаемым» языком понимается тот язык, который был выбран как «основной» в настройках голосового поиска). Другой источник — Языковая Модель: она обрабатывает полученные слова и анализирует фразу целиком, пытаясь оценить, насколько вероятна такая последовательность слов в искомом языке.

Далее вся информация попадает в систему распознавания, который согласует всю информацию, чтобы определить фразу, которую произносит пользователь. Например, если пользователь произносит слово «museum», то его фонетическая запись будет выглядеть следующим образом: /m j u z i @ m/.

Точно сказать, где закончился звук /j/ и начался /u/ может быть сложно, но на самом деле для алгоритма это не важно: главное, что все эти звуки были произнесены.

Наша улучшенная акустическая модель основана на Рекуррентных Нейронных Сетях (RNN). Их преимущество заключается в том, что они имеют циклы обратной связи в своей топологии, позволяющие им моделировать временные зависимости: когда пользователь произносит /u/ в предыдущем примере, его речевой аппарат одновременно выходит из процесса произношения предыдущих звуков /j/ и /m/. Попробуйте сказать вслух — «museum». Слово выходит моментально, на одном выдохе, и RNN могут это распознать.

RNN бывают разных типов, и для распознавания речи мы использовали специальные RNN с «длинной кратковременной памятью» (англ.: Long Short-Term Memory — LSTM). Эти ячейки памяти и сложный механизм гейтов позволяют LSTM RNN лучше других нейронных сетей запоминать информацию.

Использование одних этих моделей уже значительно улучшило качество нашей системы распознавания, но мы не остановились на этом. Следующим шагом стало обучение нейронных сетей распознаванию фонем во фразе без необходимости в постоянном выделении отдельных «предположений» о вероятностном распределении каждой из них.

С Нейросетевой темпоральной классификацией (CTC) модели научились выводить своеобразные «пики», которые и отображают последовательность различных звуков в звуковой волне. Они могут выделять различные фонемы в правильной с точки зрения языка последовательности звуков.

Прим.: RNN могут распознать слово «гидроэлектростанция», но не смогут верно выделить отдельные звуки в бессмысленной с точки зрения языка последовательности «йцукенфывапролдж». Самым сложным был вопрос «Как сделать так, чтобы распознавание происходило в реальном времени?». После множества попыток мы смогли научить потоковые однонаправленные модели обрабатывать более протяженные звуковые интервалы, чем те, что используются в «классических» моделях распознавания речи. В то время как сами вычисления происходят с меньшей частотой. При этом затраты вычислительных ресурсов на самом деле уменьшились, а скорость работы системы распознавания многократно увеличилась. В лабораторных условиях распознавать речь достаточно легко: в полной тишине вы получаете качественную звуковую дорожку, которую потом анализируете. К сожалению, реальные условия эксплуатации голосового поиска существенно отличаются от эталонных. Кто-то говорит на заднем плане, мимо проезжают машины, где-то вдалеке гудит телевизор, в микрофон смартфона со свистом влетает порыв ветра… Все эти шумы затрудняют обработку речи нейронными сетями, так что мы научили их работать даже в таких тяжелых условиях.

В процессе обучения RNN мы подмешивали искусственные шумы, ревербацию, эхо и прочие типичные в повседневной эксплуатации «загрязнения» на обучающих сэмплах, что помогло сделать систему распознавания более устойчивым к фоновым шумам.

Теперь у нас был быстрый и точный распознаватель и мы готовы были запустить его на настоящих голосовых запросах, однако, нам предстояло решить ещё одну проблему.

Модель выдавала прогноз фонем с задержкой примерно на 300 миллисекунд, так как нейронная сеть «поняла», что сможет лучше распознать фонемы, слушая сигнал чуть дольше. Вот так выглядит процесс распознавания в наглядной форме:

Нейросетевая темпоральная классификация пытается распознать фразу «How cold it is outside»

Такое поведение было логичным и отлично работало, но привело к более медленным ответам системы, чего мы совсем не хотели. Мы решили эту проблему путём длительного обучения нейронной сети выделению отдельных фонем как можно ближе к «срезу» сигнала. В результате распознавание речи происходит практически в режиме реального времени. Текущая модель на основе CTC выделяет «пики» отдельных фонем (отображены различными цветами) как только она определяет их во входящем звуковом потоке.

По оси X показаны определённые в каждый момент времени фонемы, а по оси Y — апостериорные вероятности распределения той или иной фонемы. Пунктиром отмечены те варианты, которые алгоритм решил не выделять / не распознавать как отдельные звуки.

Сейчас наш новый алгоритм используется в голосовом управлении и диктовке текста на ваших смартфонах (пока только на базе Android) и приложении Google на Android и iOS. Он не только использует меньше вычислительных ресурсов, но и точнее, работает быстрее, а ещё устойчив к шумам и помехам. Попробуйте, надеемся, вам понравится!

habrahabr.ru

Нейросеть Google произвольно стилизует изображения в реальном времени / Geektimes

Нейросеть от Google накладывает на фотографию любой из 32 обученных стилей (здесь показаны пять). Программа нетребовательна к железу и памяти. Код опубликуют в ближайшее время

Синтез текстур с переносом стиля с одного изображения на другое — известная техника, которой 15 лет. Впервые она описана в статье «Аналогии по изображению» группы исследователей из Microsoft Research для конференции SIGGRAPH 2001, а также в статье «Подбивка изображения для текстурного синтеза и переноса» от Mitsubishi Electric Research и Калифорнийского университета в Беркли в том же 2001 году. Сейчас трудно сказать, какая из них появилась раньше.

В 2015 году техника получила вторую жизнь, когда к синтезу изображений с переносом стиля подключились нейросети. Это случилось после выхода научной работы «Нейроалгоритм художественного стиля» Гэтиса, Эккера и Бетге из университета Эберхарда-Карла в Тюбингене, Германия (статья на Geektimes). Работа настолько впечатляющая, что описанный алгоритм вскоре реализовали в нескольких компьютерных программах для потребительского рынка, в том числе в мобильных приложениях вроде российского Prisma (июнь 2016-го). Работа Гэтиса, Эккера и Бетге хороша тем, что авторы обучили нейросеть на существующих работах известных художников: Винсента Ван Гога, Пабло Пикассо, Эдварда Мунка и других. При этом нейросеть можно продолжить обучать на других наборах данных, так что это универсальный инструмент. Именно такая нейросеть работает на сервере Prisma и других компаний, которые распространяют мобильные приложения для стилизации пользовательских фотографий.

Свёрточная нейросеть Гэтиса, Эккера и Бетге создана на основе 19-слойной VGG-нейросети Симоняна и Зиссермана, а обработка исходного изображения происходит в несколько стадий. На каждой стадии в иерархии количество фильтров увеличивается. Стилизация под конкретный стиль происходит на первых этапах «даунсэмплинга» (широкие мазки, кубистские паттерны и т.д.), а последние слои нейросети обрабатывают оригинальное изображение, чтобы объекты оставались узнаваемыми (d и e на схеме). Нейросеть начинает работу со случайной позиции (или с исходного изображения) до тех пор, пока результат не удовлетворяет заданным требованиям.

В нейросети разделены друг от друга репрезентации контента и стиля. Таким образом, ими можно управлять независимо друг от друга. Например, взять контент с одного изображения, а стиль — с другого.

Примеры стилизации изображений в нейросети Гэтиса, Эккера и Бетге

Оригинальное изображение: Старый город в Тюбингене

Образец стиля: картина «Голова клоуна» (1907-1908), Жорж Руо, стиль: экспрессионизм

Результат работы нейросети

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

На идее разделения стиля и содержания картины созданы разнообразные нейросети, в том числе для генерации пугающих изображений и для генерации порнокартинок.

К сожалению, у нейросети Гэтиса, Эккера и Бетге есть недостаток: такая нейросеть слишком требовательна к вычислительным ресурсам. Это стало понятно после выхода первых демо-приложений, которые несколько минут обрабатывались на сервере.

В последующих работах, в том числе российских специалистов, нейросеть была значительно оптимизирована за счёт ограничения функциональности. В итоге, оптимизация дошла до такой степени, что вместо нескольких минут стилизация фотографии стала происходить практически мгновенно. Так что появилась возможность стилизовать даже видео в реальном времени!

Но у подобной стилизации есть обратная сторона медали. Сверхбыстрая стилизация возможна только если за образец берётся одно изображение. Это ограничение оригинального алгоритма, ведь тот не привязан к одному стилю. Другими словами, если вы хотите сделать систему, способную передавать 100 разных стилей, то вам придётся предварительно обучать 100 разных нейросетей.

Сейчас компания Google внесла свою лепту в эти исследования. 24 октября 2016 года сотрудники Google Brain Team опубликовали статью с описанием алгоритма, который работает так же быстро, как и предыдущие, но при этом в единой универсальной нейросети, которая может накладывать любые усвоенные стили.

По словам разработчиков, их алгоритм прост в реализации и не выдвигает высоких требований к оперативной памяти. Более того, после обучения на нескольких стилях он способен сочетать несколько стилей одновременно и работает в реальном режиме времени. Например, вот фотография того же Старого города в Тюбингене, на которую наложено четыре стиля одновременно.

Исследователи считают, что их работа открывает новые возможности по творческому использованию нейросети стилизации. В ближайшее время в блоге Magenta они обещают опубликовать исходный код программы для TensorFlow, так что каждый сможет запустить демо на своём компьютере.

Более подробно о стилизации изображений в нейросети рассказано в научно-популярном видео. Его записали две сотрудницы Nat и Lo в 20% своего рабочего времени, которые компания Google выделяет для проектов на свой выбор.

geektimes.ru

Как нейронные сети Google видят изображения

Инженеры Google Александр Мордвинцев, Крисофер Ола и Майк Тика поделились в блоге Google Research удивительными изображениями.

Картинки, состоящие из множества разноцветных мелких деталей и напоминающие где-то полотна Ван Гога, где-то – описания мистических видений, были получены с помощью метода, который ученые окрестили «инцепционизмом». Это визуализация работы 22-слойной нейросети, которая лежит в основе системы распознавания изображений Inception.

Нейросети, с помощью которых распознаются изображения, состоят из 10-30 связанных слоев. В процессе их работы изображение «угадывается» постепенно: сначала распознаются общие формы, границы и углы, затем система определяет предмет на основании собранных особенностей и затем делает вывод об объекте, который может состоять их таких деталей. Например, нейросеть «видит» округлые объекты зеленого цвета, они напоминает ей листья, скопление листьев говорит о том, что на фотографии изображено дерево.

Эксперимент же заключался в том, чтобы перевернуть работу нейросети «с ног на голову» и заставить ее находить изображения в абстракциях и белом шуме.

Нейронные сети обучаются на большом количестве примеров. Например, чтобы знать, что представляет собой то же самое дерево, системе нужно скормить несколько тысяч разных изображений деревьев. Только увидев дерево в тысячах разных варианотов, она сможет понять, что это такое и научится выделять особенности, присущие именно деревьям.

В эксперименте инженеры показали нейросети изображения, близкие к белому шуму, и предложили найти в них различные объекты. Иногда нейросеть просили найти что-то определенное, иногда давали свободу творчества. Здесь, например, систему попросили нарисовать банан, и в некоторых скоплениях точек нейросеть увидела сходства с бананом.

В любой картинке система будет усиливать хорошо знакомые ей черты. Нейросеть, которую тренировали на распознавание животных, будет всюду видеть черты глаза и мордочки, а натренированная, к примеру, на восточную архитектуру, преобразует абстракции в пагоды и храмы.

То, какое у системы получится изображение, зависит от выбранного для распознавания слоя. Базовые слои найдут только общие формы и простые геометрические фигуры (как на фотографии с антилопами выше), зато более высокие увидят на любой фотографии сложные объекы. Вот что, например, нейросеть увидела на фотографии облаков.

Примеры преобразования изображений системой: линия горизонта превращается в башни и пагоды, деревья – в здания, листья – в птиц и насекомых.

В горном пейзаже система увидела архитектурный ансамбль.

Различные орнаменты, увиденные системой.

Система ищет знакомые черты в картине Жоржа Сёра.

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

Рисунок, полученный с помощью нескольких итераций.

Рисунок, полученный с помощью нескольких итераций.

Рисунок, полученный с помощью нескольких итераций.

Рисунок, полученный с помощью нескольких итераций.

Рисунок, полученный с помощью нескольких итераций.

Рисунок, полученный с помощью нескольких итераций.

Нейрофизиологи отмечают, что система распознавания образов мозгом устроена схожим образом.

deadbees.net

Нейросеть Google Translate составила единую базу смыслов человеческих слов / Geektimes

«Универсальный язык» нейронной сети Google Neural Machine Translation (GNMT). На левой иллюстрации разными цветами показаны кластеры значений каждого слова, справа внизу — смыслы слова, полученные для него из разных человеческих языков: английского, корейского и японского

За последние десять лет система автоматического перевода текстов Google Translate выросла с нескольких языков до 103, а сейчас она переводит 140 млрд слов ежедневно. В сентябре сообщалось, что разработчики приняли решение полностью перевести сервис Google Translate на глубинное обучение. У этого подхода есть много преимуществ. Перевод становится гораздо лучше. Более того, система может переводить тексты на языки, для которых никогда не видела переводов, то есть не обучалась специально для этой языковой пары. Нейросеть Google для машинного перевода называется Google Neural Machine Translation (GNMT). От самого начала и до конца перевод текста теперь полностью выполняет нейросеть. Традиционно ИИ использовался в Google Translate в ограниченном режиме, для некоторых вспомогательных задач. Например, для сравнения текстов, доступных на нескольких языках, вроде официальных документов ООН или Европарламента. В таком режиме сравнивался перевод каждого слова в текстах.

Нейросеть NMTS работает на принципиально новом уровне. Она не только анализирует существующие варианты перевода в процессе обучения, но и выполняет интеллектуальный анализ предложений, разбивая их на «словарные сегменты». В определённой репрезентации внутри сети эти «словарные сегменты» соответствуют смыслам слов.

Модель архитектуры GNMT (Google’s Neural Machine Translation). Слева сеть энкодера, справа — декодера, в середине модуль внимания. Нижний слой энкодера двусторонний: розовые модули собирают информацию слева направо, а зелёные — в обратном направлении

Эта внутренняя репрезентация внутри сети и является в каком-то определении универсальным языком человечества. К сожалению, люди не смогут разговаривать на этом универсальном языке. Он представляет собой машинный код, с которым происходит работа на внутреннем промежуточном уровне нейросети. Это машинный язык-посредник между любыми языковыми парами всех человеческих языков, поддерживаемых системой. Тем не менее, существование такой универсальной базы смыслов, которая объединяет все языки мира, впечатлит любого лингвиста. Вообще говоря, разработка подобной базы со всеми коннотациями, тщательным описанием всех возможных значений каждого слова, — это словно словно чаша Грааля в лингвистике. О ней мечтали десятилетиями. Благодаря нейросети Google эта мечта постепенно воплощается в жизнь. Нейросеть уже де-факто имеет такую базу смыслов внутри «чёрного ящика», с указанием возможных значений каждого слова. Проблема только в том, что пока что с этой базой умеет работать только она сама, эта нейросеть. Для человеческого понимания база смыслов в машинных кодах недоступна просто так, она требует специальной обработки.

Новая универсальная архитектура GNMT, которая переводит любые языковые пары

Что самое интересное, благодаря универсальной базе смыслов всех человеческих слов нейросеть перевода может работать даже для тех языковых пар, на которых её не обучали. Возьмём пример на анимации. Система обучена для языковых пар «японский⇄английский» и «корейский⇄английский». После этого через универсальную составленную базу смыслов нейросеть сможет переводить также языковую пару «японский⇄корейский», хотя она не тренировалась на ней.

Некоторые примеры смешивания целевых языков в многоязычной модели

Журналисты сразу же ухватились за эту тему и назвали служебную систему с базой смыслов «новым универсальным языком человечества». Например, известный российский маркетолог Андрей Себрант пишет: «Представление смыслов в универсальном виде, не привязанном к конкретному существующему языку, — это, фактически, создание нового универсального языка. Вот только не факт, что доступного человеку».

Действительно, «новый универсальный язык» — это звучит очень красиво и загадочно. Хотя на самом деле это просто единое многомерное пространство, составленное при помощи техники t-SNE, то есть методом нелинейного снижения размерности и визуализации многомерных переменных (t-distributed stochastic neighbor embedding).

Визуализация многомерного пространства данных в нейросети

Если говорить о практическом применении нейросети, то независимые специалисты признают, что разработка Google показывает «потрясающий» результат и наглядно демонстрирует, что нейронный перевод с помощью ИИ способен намного превзойти по качеству классические методы машинного перевода. Нейросеть Google явно улучшает качество перевода во многих отношениях.

Авторы новой научной работы добавляют, что универсальная архитектура, которая переводит любые языковые пары, в реальности показывает более высокую эффективность, чем нейросеть, тренированная только на одной языковой паре. По какой-то причине знание посторонних языков помогает нейросети более качественно переводить с данного конкретного языка.

На интуитивном уровне этот эффект понятен: человек тоже начинает лучше понимать чужой язык, если знает и другие языки той же группы. Таким образом он расширяет пространство смыслов в своём мозге. Он осознаёт смыслы, которым не соответствует ни одно слово из его родного языка.

Новый метод универсального перевода, названный разработчиками "Zero-Shot Translation", не требует никаких изменений в архитектуре нейросети Google Neural Machine Translation.

Научная работа с описанием многоязычной системы машинного перевода Neural Machine Translation System на базе нейросети за авторством Мелвина Джонсона, Максима Крикуна и других сотрудников Google опубликована 14 ноября 2016 года в открытом доступе.

geektimes.ru


Смотрите также