Потренировался на кошках
Новые способы применения искусственных нейронных сетей появляются все чаще. Вот пример последних дней. Инженер компании Nvidia Роберт Бонд создал автоматическую систему для борьбы с соседскими котами, которые так любят без спроса вторгаться в его владения. Метящие территорию и кричащие по ночам животные уж очень донимали инженера. Теперь, как только кот появляется на участке, система его обнаруживает и включает водные опрыскиватели, которые отпугивают животное.
Вы спросите, при чем здесь нейросеть? Ну, тогда попробуйте объяснить компьютеру, что такое кошка и как она выглядит. Именно кошка, а не любое другое животное, зашедшее случайно на его участок. Не собака и не случайная ворона, и тем более не сам Бонд, вышедший на свой участок, хотя поначалу и ему тоже доставалось от поливалок.
Искусственная нейросеть Caffe играет ключевую роль в этой противокотовой системе. На нее возложена задача определить, кем именно является посетитель лужайки. С помощью камеры система защиты отслеживает все передвижения по охраняемой территории. Как только на лужайке появляется некий неопознанный объект, он фотографируется и его снимки передаются на Jetson TX1 – аппаратный модуль компании Nvidia, предназначенный в том числе и для распознавания изображений. Если нейросеть определяет, что на фотоснимках кот, тут же включается ближайшая к нему поливалка, которая и отпугивает животное. Но в будущем, если, конечно, изобретательного инженера не остановят защитники животных, Бонд рассчитывает создать систему, которая бы отстреливалась водой по котам уже прицельно.
Можно ли настроить систему на собак или, например, только на рыжих котов? Можно. Преимущество нейросетей в том, что им не надо «на словах» объяснять, что такое кот. Ей просто нужно много фотографий, на которых изображены эти животные, – так называемая обучающая выборка. Сеть сама находит особенности в изображениях, характерные именно для кошек, и запоминает их. В этом и заключается обучение. Теперь, когда сеть обучена, она сможет распознать кота на снимках.
К слову, попробовать в действии нейросеть Caffe, созданную учеными из Калифорнийского университета в Беркли, и посмотреть, как она отличает кошек от собак, можно на сайте /demo.caffe.berkeleyvision.org/. Загрузите изображение или вставьте ссылку на него и система скажет, что изображено на картинке.
Нейросеть Caffe с легкостью определяет домашнего кота на снимке / ©Caffe
Новое – старое, но совсем не забытое
Если вам покажется, что искусственные нейронные сети это –что-то совершенно новое, то это не совсем так. Даже сам термин «нейронная сеть» появился уже в середине прошлого века. Тогда, на заре компьютерного века, еще не было единого мнения, как должен быть построен принцип работы вычислительных машин.
Изначально существовали как минимум две перспективные архитектуры вычислительных машин. Одна из них – архитектура фон Неймана – была относительно проще и стала реализовываться на практике. Сейчас ее принципы заложены в основе практически всех существующих компьютеров. Другая – нейросети (нейросетевые компьютеры) – стала объектом исследования теоретиков. В результате за прошедшее с того момента время была накоплена значительная теоретическая база, которая, в частности, и позволила окончательно понять, как именно нужно учить нейронные сети.
Кроме того, на тот момент не было возможности оперировать большими объемами данных. К примеру, общедоступный массив уже размеченных картинок ImageNet содержит больше миллиона изображений, поэтому и требования к вычислительной мощности у нейросетей достаточно велики.
Все это время нейронные сети ждали своего часа. Сегодня ситуация поменялась. В работе с нейронными сетями стали применять высокопроизводительные видеокарты, и это позволило ускорить обучение в десятки раз. Неслучайно именно Nvidia – мировой лидер в производстве видеокарт – сделала ставку на глубокое обучение нейронных сетей.
Jetson TX1 – аппаратный модуль компании Nvidia / ©Nvidia
Две архитектуры, фон неймановская и нейросетевая, имеют достаточно существенные различия. Но самое главное отличие – это, конечно, возможность самообучения нейросети. Если классические компьютеры работают по заранее написанной человеком программе, то нейрокомпьютер можно обучить. Для традиционных компьютеров пишутся программы, нейросеть способна обучаться и действовать на основании полученного опыта. Что, впрочем, не отрицает необходимость целенаправленного обучения и настройки сети. «Скармливая» машине множество изображений, о которых сети заранее известно, что это кошка, собака, или, например, ворона и так далее, вы обучаете ее распознавать образы. Когда дело дойдет до практического применения полученных навыков, сеть сможет определить, что изображено на картинке по тем признакам, которые она сама отметила в процессе обучения, и выдаст соответствующий ответ.
Вот хороший пример применения технологии распознавания образов. Сейчас поиск изображений в Интернете происходит по ключевым словам. Поисковик ищет картинку по вашему запросу, ориентируясь на текст, который сопровождает изображение на странице сайта. Если статья посвящена кошкам, то логично предположить, что картинки в тексте – это изображения котов. Но иногда такая логика не работает. В будущем, применяя нейросетевые технологии к распознаванию изображений, Яндекс, Google или любой другой поисковик будут выдавать распознанные нейросетью изображения, на которых именно то, что вы ищете. То есть ключевые слова будут сгенерированы из самой картинки, а не из текста рядом с ней.
Как нейронная сеть «видит» / ©wikipedia
В действительности, для компьютера, что картинка, что текст, не более чем набор байтов. Человекоподобные роботы, иногда так удачно отвечающие на вопросы, всего лишь оперируют заранее подготовленными ответами, как человек в «китайской комнате», мыслительном эксперименте, предложенном американским философом Джоном Сёрлом. Не зная сути вопроса, робот, а вернее, управляющий им компьютер, выполняет инструкцию, по которой он должен на заранее определенный вопрос дать заранее определенный ответ. Или, если такого ответа человек ему не подготовил, увести «разговор» в сторону, дав универсальный ответ, который подойдет к практически любому вопросу. Нейросеть позволит электронному «мозгу» робота «понять» смысл слов, сказанных собеседником, так же, как из набора пикселей, составляющих изображение, нейросеть «понимает», что на нем изображено.
Возвращаясь к поисковикам, тоже стоит сказать, что Яндекс не знает смысла текстов, которые индексирует. Только наличие так называемых «ключевых» слов позволяет определить релевантность найденного текста и запроса пользователя.
©Depositphotos
Нейросети предоставят более совершенный интерфейс общения с машиной. Поисковику можно будет задать вопрос и получить ответ или набор наиболее соответствующих по смыслу текстов из Интернета. Роботу станет можно отдавать команды простым языком. Например, просьбу принести молоток можно будет выразить множеством вариантов, переставляя слова, как это только позволяет русский язык. И робот вас поймет.
Строго говоря, нейросети – это те технологии, которые позволят нам получить то, что мы так долго ожидаем от компьютеров: машинное зрение, понимание человеческой речи, самостоятельно прокладывающие себе дорогу беспилотники и многое другое.
Как устроены нейросети
Так, собственно, как нейросети работают? Каждый нейрон в сети выполняет свой небольшой объем общей работы. Нейроны сгруппированы в несколько последовательно расположенных слоев. Входные сигналы (например, пиксели изображения) поступают на первый слой нейронов и последовательно проходят через все слои. От первого до последнего. Правда, бывают и так называемые рекуррентные структуры, которые обеспечивают циркуляцию в сети некоторого набора внутренних сигналов. Внешние входные данные проходят последовательно все слои и на выходе уже предстают в виде результата. Нейросети способны обобщать данные и находить в них закономерности. Запоминать полученные выводы и применять их в работе.
Принято считать, что искусственная нейронная сеть имитирует структуру и свойства нервной системы живых организмов, или даже мозга человека. Как и мозг, искусственные нейронные сети состоят из множества соединенных между собой посредством синапсов нейронов (вычислительных элементов). Впрочем, некоторые считают, что только этих общих признаков недостаточно, и общего между работой искусственных нейронных сетей и человеческого мозга на самом деле мало.
Пример одноуровневой нейронной сети с 4 входами и 2 выходами / ©Neurological Integration System
В чем же заключается работа конкретного нейрона? Все происходит следующим образом. На вход нейрона поступает набор входных сигналов, которые он суммирует и, сгенерировав выходной сигнал, направляет его в другие нейроны либо на выход сети. Стоить отметить, что нейроны входного (первого) слоя сети математических операций не выполняют, их предназначение – размножить входные сигналы и передать их другим нейронам. Поступающие в нейрон сигналы умножаются на заданные коэффициенты (они называются «веса»), потом суммируются, а полученный результат преобразуется с помощью определенной функции, после чего передается на выход.
Принцип работы нейронной сети. Упрощенная схема / ©wikipedia
В этой схеме ключевым моментом являются именно веса. Возможность настроить сеть на решение конкретной задачи и гибкость системы определяются именно ими. Входной сигнал, умноженный на больший вес, в результате дает и больший вклад в общую сумму. Но если же вес будет равен нулю, то он и учитываться не будет.
Найти правильные веса для каждого нейрона и есть обучение сети. На входные нейроны сети подаются сигналы, для которых заранее известно, чему они соответствуют. Если сеть обучать распознаванию котов, то это будут изображения котов и кошек разных пород и окрасок. Если на выходе сеть даст неправильный ответ, то значения весов меняются. И так до тех пор, пока сеть не выдаст правильный ответ.
Пример двухуровневой нейронной сети с 8 входами и 2 выходами / ©Neurological Integration System
Отметим еще, что сети с малым количеством нейронов обучаются быстрее, но в то же время им не всегда под силу решать сложные задачи. Поэтому при строительстве нейронной сети важно определить необходимое количество нейронов в сети. Кроме того, чтобы обучение не затянулось слишком долго, важно еще и задать начальное значение весов на старте.
Помимо обучения нейросети также можно настраивать: включать дополнительные нейроны или даже новые слои нейронов и исключать лишние нейроны, слои или связи между ними. Это позволяет лучше адаптировать сети к задачам, для которых они создаются.
Но распознаванием образов дело не ограничивается. Не так давно искусственный интеллект AlphaGo одержал победу над мастером игры го Ли Седолем. В отличие от шахмат, го, имеющая огромное число возможных позиций, никак не хотела поддаваться компьютеру. Суперкомпьютер Deep Blue обыграл шахматного чемпиона мира Гарри Каспарова в далеком 1997 году. В го удалось выиграть только сейчас. Состоящая из 13-ти уровней нейронная сеть была обучена на профессиональных играх, взятых с сервера KGS Go Server. Кроме этого, сеть в процессе обучения играла и с другими программами, и со своими копиями.
Поединок в Го / ©wikipedia
Нейронные сети сегодня и завтра
За нейросетью будущее. Этот тренд не пройдет, как уходит мода на что-то интересное, но в целом бесполезное. Нейросети – следующий этап развития компьютерных систем. Скоро они будут окружать нас везде. Мы, образно говоря, попадаем в нейронные сети. Как предсказывают энтузиасты, увлеченно занимающиеся их разработкой, в будущем мы будем читать новостные заметки, написанные нейросетью, и слушать сочиненную ею музыку. Общаться с голосовыми ассистентами, которые будут нас понимать благодаря этой технологии, и пользоваться качественным голосовым машинным переводом. Нейронные сети будут предсказывать погоду, управлять беспилотными автомобилями и военными дронами. Они могут быть применены практически в любой сфере, а при решении задач, где требуется обрабатывать большие объемы данных, будут просто незаменимы. Многие профессии, в том числе и те, что принято относить к творческим, действительно могут оказаться под угрозой.
Нейросетями занимается все большее количество разработчиков. В открытом доступе появилось большое количество инструментов и данных. Более доступно стало оборудование для построения нейросетей. Технология становится доступной не только большим корпорациям, но и любому, кто умеет программировать. Соответственно появляется все больше сервисов, основанных на технологии нейронных сетей и рассчитанных на обычных пользователей.
В популярном мобильном приложении Prisma доступно уже 30 стилей / ©Prisma
Так, например, приложение Prisma всего за несколько дней выбилось на лидерские позиции по количеству скачиваний в AppStore в десяти странах, в том числе и в России. Созданное российскими разработчиками приложение, которое уже появилось и в Google play, позволяет «перерисовать» сделанную вами фотографию, стилизуя ее под картину известного художника. В арсенале приложения Ван Гог, Пикассо, Левитан, Хокусай и другие признанные гении. Или наделавшее много шума приложение FindFace, позволяющее найти профиль человека в соцсетях по фотографии, которую вы сделали пять минут назад. Для поиска оно использует наши фото, размещенные в соцсети ВКонтакте. Так что мы уже точно попали в нейронные сети.
Комментарии:
Авторизуйтесь, чтобы оставить отзыв