По мотивам публикации Марка Цукерберга
Первую волну, в том числе и в Facebook (естественно) подняла компания Crestron, которая с гордостью сообщила всему миру, что Марк Цукерберг использовал для автоматизации собственного дома в Palo Alto оборудование Crestron. Более того, в комментариях на Facebook он сам предлагал собеседникам использовать это оборудование у себя.
Это правда, и с точки зрения использования Crestron, и по поводу рекомендаций.
Однако, правда и то, что в самой публикации Цукерберга Crestron упомянут всего одной строкой – это оборудование использовалось для управления освещением, климатом и системой дверных замков. И это, на мой взгляд, вовсе не умаляет достоинств оборудования компании (краткость упоминания), а, скорее, подчеркивает то обстоятельство, что в данном сегменте существуют уже полностью отлаженные решения, которые надо просто применять и получать удовольствие.
Задача же, которую решал Марк в течение 2016 года, гораздо более амбициозна и более интересна – это то, что называется challenge - вызов, хотя сам он обозначил постановку задачи достаточно скромно – создать (за год !!!!) простейшую систему искусственного интеллекта, которая позволит осуществлять управление всем домом, включая освещение, климат, музыку, систему безопасности, различные домашние устройства и и даже отдельную систему развлечения для ребенка, с помощью текстовых и/или голосовых команд, подаваемых с компьютера или с телефона. Более того система должна была научиться адаптироваться к режиму жизни и привычкам хозяев. При этом, естественно, использовались алгоритмы компьютерной обработки живой речи, распознавание речи и распознавание лиц.
И вот в своей статье Марк подробно рассказывает как создавался интеллектуальный сервер, который получил имя Jarvis (из фильма Iron Man, который и вдохновил Марка на эту работу), какие трудности и препятствия встретились разработчику на этом пути. При этом Марк активно использовал все наработки и алгоритмы, созданные в его компании Facebook.
Итак, помимо Crestron в доме у Марка использовался Sonos для воспроизведения музыки, телевизоры Samsung, камеры Nest и много всякого другого оборудования, часто даже не имевшего подключения к интернету. Он особо отмечает, что потратил огромное количество времени, пытаясь найти тостер, который позволял бы заложить в него хлеб, пока он был в выключенном состоянии, что бы в нужный момент подать питание и приготовить тосты. В конце концов он нашел какой-то древний тостер, примерно 50-х годов, который удалось использовать таким образом.
Распознавание речи.
Первое, что он отметил, это то, что нет единого протокола управления всем оборудованием. Да, каждый элемент в отдельности поддавался автоматизации, но каждый из них разговаривал на своем “языке”. Поэтому для каждой системы пришлось писать свою программу управления.
Но это было только начало. Дальше требовалось обучить Jarvis понимать текстовые, а затем и голосовые команды. Понятно, что все началось с использования набора ключевых слов, собственно с создания аналога, скажем, Alexa. Надо сказать, что Alexa сочетает в себе возможности распознавания речи и ее анализа, то есть она может общаться с человеком, отвечать на вопросы и выполнять определенные команды, но только жестко структурированные. Например, вы обязательно должны начать общение с обращения, дальше четко указать, например, что надо включить свет в спальне, и какой именно свет. Jarvis же должен был научиться:
1. Понимать синонимы. Так, скажем, у Цукерберга Family Room и Living Room означает одно и тоже.
2. Понимать кто отдал команду. Скажем команда, поданная Марком – включи свет с моем офисе – это одно, а такая же команда, которую произнесла его жена – это другое, так как офисы у них разные.
Далее еще интереснее – музыка. Здесь вообще трудно использовать ключевые слова, просто потому, что их слишком много. Запросы касательно Adele могут звучать так: “Играй песню Adele”, “Играй что-нибудь типа Adele” и “Играй Adele”. Первый запрос должен запустить песню Adele, второй – что-то похожее на Adele, а третий, скажем, плейлист из лучших песней Adele. Методом проб и ошибок сервер должен был научиться различать эти запросы. Кроме того Марк обнаружил, что он гораздо чаще склонен использовать открытые запросы – типа “сыграй что-нибудь легкое”. Однако, если Jarvis не попадал в настроение с песней, ему можно было сказать – “Нет, это не то. Это не легкое. И Jarvis должен это запомнить. Кроме того, естественно, понимание музыки у Марка и его жены разные.
Распознавание лиц.
Практически треть мозга человека занимается обработкой изображений, поэтому одной из проблем при создании систем искусственного интеллекта остается именно анализ изображения и видео. Это, прежде всего, трэккинг – отслеживание объекта в кадре (например, сервер должен самостоятельно понять, что ребенок проснулся и перемещается в своей кроватке, а не просто перевернулся на другой бок), распознавание объектов (отличить домашнюю собаку Цукерберга от коврика не так то просто), ну и, собственно, распознавание лица.
При этом распознавание лица - гораздо более сложный процесс, чем распознавание предметов, так как все лица выглядят примерно одинаково в отличие от разнородных предметов. К счастью в Facebook уже работает достаточно хорошая система распознавания лиц, этот алгоритм и использовал Марк у себя дома. Единственное, в данном случае он предпочел не ограничиваться одной камерой домофона, а поставил их несколько под разными углами, чтобы механизм работал надежнее.
Собственно система распознавания выполняет в доме несколько функций: понять, кто появился около двери и принять решение можно ли его пропустить в дом; понять, когда проснулся ребенок и запустить ему музыку или рассказать сказку; и, наконец, определять местоположение хозяина, чтобы не задавать лишних вопросов в ответ на команду: “Включи свет”.
Messenger Bot.
Сервер Jarvis программировался на домашнем компьютере Марка, однако, чтобы система была реально полезна, необходимо было научиться общаться с ней удаленно, например, с личного телефона. Для этого Цукерберг использовал Facebook Messenger, в который уже встроены системы обработки текста, изображений, аудио контента, их доставки и возможности работы под iOS и Android. В результате появилась возможность посылать на сервер текстовые и аудио команды и получать от него ответ в виде текста или изображения (сервер мог послать изображение человека, который находится перед дверью дома).
При этом Марк с удивлением отметил, что он гораздо более склонен подавать команды серверу в письменном виде, а не голосом. При этом основным резоном к подаче текстовой команды было нежелание беспокоить окружающих. Ведь если команда касалась всех, например, включи нам какую-нибудь музыку, то подать ее голосом было разумно, в остальных же случаях текст был предпочтительней. Так же ему было удобно и ответ получать в письменном виде.
Из этих соображений появилось понимание, что все будущие системы искусственного интеллекта должны в равной степени поддерживать и текстовое общение, и голос.
Распознавание голоса и речи.
Хотя Марк выяснил, что общение с Jarvis с помощью текстовых команд являлось достаточно важным элементом системы, голосовые команды по прежнему играли ведущую ролью. При этом самой полезной характеристикой такого способа коммуникации являлась скорость. Вам не надо тянуться к телефону, открывать приложение, начинать печатать. Достаточно просто произнести команду.
Для голосового общения с Jarvis прежде всего потребовалось написать специальное приложение, которое бы позволяло постоянно отслеживать человеческую речь. Это уже выходило за рамки возможностей Messenger bot. Новое приложение давало возможность просто положить телефон рядом с собой и дать возможность ему слушать. Можно было так же расположить телефоны по всему дому и свободно подавать команды из любой комнаты. Это несколько похоже на использование Amazon Echo, однако телефон давал возможность общаться с системой не только внутри дома, но и удаленно.
Хотя в последнее время системы распознавания речи сделали огромные шаги вперед, с точки зрения Искусственного интеллекта они находятся все еще на начальной стадии развития. Дело в том, что есть существенная разница между возможностью машины распознавать команды, обращенные непосредственно к ней, которые подчиняются достаточно строгим законам, и возможностью вычленять эти команды из неструктурированного разговора двух людей между собой. Кроме того, есть разница в использовании алгоритмов, в зависимости от того, находится говорящий в непосредственной близости от микрофона или подает команду с другого конца комнаты. На сегодняшний день подобные вопросы еще ждут своего надежного решения.
И последнее, когда команды подаются голосом, а не с помощью текста, они гораздо сильнее эмоционально окрашены. Соответственно, того же человек подсознательно хочет и от ответа. Более того, Марку хотелось чтобы Jarvis обладал своего рода юмором. Для начала он придумал простенькую игру для Jarvis и своей семьи. В какой-то момент машина должна была случайным образом ответить на вопрос кого из членов семьи или, может быть, собаку надо пощекотать. Еще не юмор, но уже ответ вызывает определенные эмоции.
Что дальше?
Хотя Марк посчитал, что первоначально поставленная задача выполнена, в процессе общения с Искусственным интеллектом практически каждый день появлялись новые функции, которые хотелось бы реализовать в этой системе.
В его ближайших планах написать аналогичное приложение на Андроиде, распространить возможность коммуникации с Jarvis по всему дому и добавить управление несколькими сторонними устройствами, такими как, например, большой гриль во дворе.
В более отдаленной перспективе, на ближайший год, Марк собирается сосредоточиться на выстраивании стратегии обучения системы Искусственного интеллекта. Это отдельная и пока нерешенная задача.
И, наконец, в перспективе стоит задача обеспечить легкость коммуникаций различных домашних приспособлений и серверов, ибо на сегодняшний день система Искусственного интеллекта оказалась слишком привязанной к конкретному дому, а именно к дому Марка Цукерберга.
Заключения.
В ходе работы на системой Искусственного интеллекта Марк убедился в реальности прогноза, который он дал пару лет назад. В перспективе 5 – 10 лет
мы будем иметь реально работающие системы, которые возьмут на себя основную часть работ по обслуживанию человека.
Однако, проблема обучения данных систем на сегодня не имеет реального решения. Мы можем обучать Искусственный интеллект работать с подобными предметами, но как применить то, чему он обучился в другой области, пока остается загадкой. То есть, с одной стороны наука продвинулась даже гораздо дальше, чем может подумать обычный человек: автоматическое управление автомобилями, научные исследования, лечение болезней – это уже реальность, а вот самостоятельное развитие системы пока еще недоступно.
Но это уже что-то из фильмов про Терминатора.