Если вы используете новое приложение Photos от Google, Cortana от Microsoft или новую переводческую функцию Skype, вы используете искусственный интеллект на ежедневной основе. Хотя и некоторую его форму. ИИ оставался мечтой с 50-х годов и только недавно стал практически реальным — благодаря системам программного обеспечения под названием нейронные сети. Давайте разберемся, как они работают.
Поумневшие компьютеры
Многие вещи, которые людям кажутся трудновыполнимыми, можно сделать с помощью компьютеров. Решить дифференциальное уравнение? Без проблем. Создать точный прогноз погоды или превратить Интернет в одну веб-страницу? Несложно. Но попросите компьютер рассказать вам о разнице между порно и искусством эпохи Возрождения, и он обломается.
Компьютеры просто не могут рассуждать так же, как это делают люди. Они безуспешно пытаются интерпретировать контекст реальной ситуации или сделать решение, исходя из нюансов, которые жизненно важны для истинного понимания человеческого мира. Нейронные сети были разработаны в 50-х годах прошлого века как потенциальное решение этой проблемы.
Беря за основу человеческий мозг, нейронные сети являются системами программного обеспечения, которые могут самообучаться на основе получаемых знаний о мире людей. Они используют различные слои математической обработки, чтобы извлекать массу информации из всего, что получают, от человеческой речи до цифровых снимков. По сути, они учатся и меняются с течением времени. Вот почему они обеспечивают компьютеры более умным и тонким пониманием того, с чем те сталкиваются. Правда, потребовалось много времени, чтобы достичь такого результата.
Зима нейронных сетей
В 50-х годах ученые не знали, почему человеческий мозг разумен — в принципе, мы и сейчас этого не понимаем — но знали, что он разумен. Поэтому они спросили себя, как работает человеческий мозг в физическом смысле, и можно ли создать искусственную версию этого разума.
Мозг состоит из миллиардов нейронов, длинных тонких клеток, которые соединяются друг с другом в сеть, передающую информацию с помощью маломощных электрических зарядов. Так или иначе, из этой, казалось бы, простой биологической системы возникает что-то более глубокое: разум, который может распознавать лица, вырабатывать философию, с боем изучать физику частиц и так далее. Если бы мы могли воссоздать эту биологическую систему электронным путем, догадались инженеры, родился бы и искусственный интеллект.
Есть несколько успешных примеров ранних искусственных нейронных сетей вроде Perceptron Фрэнка Розенблатта, которая использовала аналоговые электрические компоненты, чтобы создать бинарный классификатор. Это такое умное название системы, которая принимает ввод — скажем, изображение или фигуру — и определяет его в одну из двух категорий типа «квадратный» и «неквадратный». Однако очень скоро ученые уперлись в стенку. Во-первых, компьютеры на то время не обладали достаточной вычислительной мощью, чтобы эффективно принимать множество таких решений. Во-вторых, ограниченное число синтетических нейронов также ограничивало сложность операций, которые могла проводить сеть.
В случае с Perceptron Розенблатта, например, один набор искусственных нейронов умел отличать квадраты от неквадратов. Но если бы вы захотели добавить способность воспринимать что-то еще о квадратах — красный он или нет, например — вам потребовался бы дополнительный набор.
В то время как биология мозга может быть простой на микроскопическом уровне, в своей целостности она невероятно сложная. И эта сложность на макроуровне была неподъемной для компьютеров 1950 года. В результате в течение следующих десятилетий нейронные сети получили забвение. Наступила «зима нейронных сетей», как говорит Джейсон Фрейденфельдс из Google.
Достижения неврологии
Зима для одного оборачивается летом для другого. С 1960-х годов наше понимание человеческого мозга прогрессировало не по дням, а по часам. В те первые дни неврологии большое внимание уделялось нашим визуальным системам. Объясняет профессор Чарльз Кадью:
«Это, пожалуй, лучше всего понятая сенсорная модальность и, вероятно, лучше всего понятая часть мозга. Десятилетиями мы знали, что нейроны по-разному активируются, когда вы проходите через визуальный поток. В сетчатке глаза нейроны восприимчивы к точкам света и тьмы; в первичной зрительной коре нейроны возбуждаются очертаниями и контурами; в высших областях зрительной коры нейроны отвечают на лица, руки, сложные объекты, природные и рукотворные. То есть там нейроны уже не реагируют на области света и тьмы или контуры в принципе».
Мы пользуемся нейронными сетями каждый день
Оказывается, различные части биологической сети мозга отвечают за различные аспекты так называемого визуального распознавания. И эти части выстроены иерархически.
Это справедливо и для других аспектов познания. Части мозга, обрабатывающие речь и, возможно, даже сам язык, работают аналогичным образом. Иерархия различных уровней нейронов на каждом из них получает собственную картину, затем передает ее на другой, более высокий уровень, чтобы наделить ее большим числом деталей. На каждом этапе рассуждения становятся более абстрактными, что позволяет потоку звуков превращаться в слова, которые что-то для нас означают, или же набор темных и светлых узоров в нашей сетчатке определяется как «кошка» в нашей голове.
Эти виды иерархий были решающим ключом для исследователей, которые до сих пор задумывались об искусственных нейронных сетях. «Все это стало путеводной звездой для нейронных сетей, — говорит Кадью. — Мы просто не знали, как заставить их вести себя таким образом».
Вдохновение биологией
По правде говоря, искусственные сети, используемые сегодня, в действительности не строятся на базе мозга, как вы могли бы ожидать. Они только «вдохновляются мозгом», отмечает Кадью, в том смысле, что они являются реальными системами ПО, которые задействуют слоевой подход для выработки понимания, а не сетью узлов, сообщающих информацию туда и обратно между собой.
Эти системы ПО используют один алгоритм для обработки представления ввода, а затем передают его следующему слою для обработки другим алгоритмом, который даст более высокоуровневое понимание, и так далее. Другими словами, есть больше смысла в том, чтобы думать об искусственных нейронных сетях как о каскадных математических уравнениях, которые могут различать отдельные детали и паттерны, считает Фрейденфельдс.
В случае распознавания образов, например, первый слой нейронной сети может анализировать яркость пикселя, а затем передавать его второму, чтобы определять кромки и линии, образованные полосками аналогичных пикселей. Следующие слои могут быть в состоянии идентифицировать формы и текстуры, а дальше по цепочке они могут определять кластеризацию деталей этих абстрактных изображений в виде реальных физических элементов вроде глаз или колес.
В самом конце кластеризация высокоуровневых деталей может интерпретироваться как реальный объект: два глаза, нос и рот образуют лицо, скажем, колеса, кресло и руль образуют велосипед. На конференции I/O в мае Google объявила, что нейронные сети, работающие в основе продуктов вроде Google Photos сейчас используют 30 разных слоев в общем, чтобы осмысленно обрабатывать изображения.
Нейронные сети не ограничиваются только распознаванием изображений, хотя это наш самый продвинутый способ их использования на данный момент. В случае распознавания речи нейронная сеть нарезает слышимую речь на короткие фрагменты, которые затем переводит в гласные звуки. Последующие слова могут определять звучание отдельных гласных звуков в сочетании друг с другом, формируя слова, слова сочетаются, образуя фразы, и, наконец, фразы образуют осмысленную речь, которую вы только что наговорили в телефон.
Вы уже догадываетесь, что это большой шаг от однослойной системы Perceptron. По сути, все это время было два ограничения на успешное развитие нейронных сетей. Первым была вычислительная мощь, которая у нас теперь есть. Второе — необходимый объем информации для правильного обучения корректной работе.
Метод обратного распространения ошибки и глубокое обучение
Нейронные сети не могут обучаться, пока вы не вбросите в них достаточно данных. Они нуждаются в больших объемах информации, чтобы понимать ее, пропускать через слои и пытаться классифицировать. Затем они могут сравнивать свои классификации с реальными ответами — и погладить себя по головке или же поднапрячься.
В случае анализа изображений это будет означать поддержку вашей нейронной сети набором помеченных фотографий, известных как обучающий сет. Google использовала YouTube, чтобы поддерживать такой обучающий сет в прошлом. В случае распознавания речи обучающий сет будет серией аудиоклипов с описанием сказанного. При большом объеме вводных данных нейронная сеть может попытаться классифицировать каждый объект и объединить информацию, полученную от разных слоев, чтобы сделать предположения о том, что она слышит или видит. В процессе обучения ответ машины сравнивается с созданным человеком описанием наблюдаемого объекта. Если все верно, сеть молодец.
А если нет?
«Если проанализированный объект был лицом, а она сказала, что это дом, она использует метод обратного распространения ошибки (back-propagation), чтобы поправить себя, — объясняет Кадью. — Она делает шаг назад по каждому предыдущему слою и каждый раз вносит математические поправки в этот слой, чтобы в следующий раз ответ был верным».
Сначала сеть будет ошибаться постоянно, но ее производительность постепенно улучшится, слои будут все более и более натренированными точно определять, что видят. Этот повторяющийся процесс прохождения образца через сеть и метод обратного распространения ошибки для автокоррекции известны как глубокое обучение, и именно оно наполняет сети человекоподобным интеллектом.
В прошлом было довольно сложно накопить достаточно информации, чтобы накормить что-то настолько жадное до данных, как нейронная сеть. Но в наши дни вокруг плавает настолько много данных, что процесс значительно упростился. По всему Интернету размещены снимки с описанием, которые точно — или почти точно — описывают то, что должен увидеть компьютер, диалоги из фильмов и соответствующие скрипты помогают системе распознавания речи точно изучить разговор людей. Вооружившись всеми этими данными, нейронные сети набираются уму-разуму.
Прямая дорогая к интеллекту
И это работает. Когда Google представила свою первую систему распознавания речи на основе нейронной сети в 2011 году — ту, которая работает в Now и Chrome — ее уровень ошибок держался на 25%. Это значит, что один раз из четырех, когда вы ее использовали, она путалась.
Спустя три года после обучения уровень ошибок упал до 8%. Последняя попытка Google показать мощь нейронных сетей была с Photos, их интеллект оказался каким-то неправдоподобным.
Вот как на Gizmodo Марио Агильяр описал свою первую работу с нейронной сетью:
«Она до безумия хорошо работает. Даже жутковато. Сначала мы были поражены, потом насторожились. Мы работали с небольшим количеством фотографий на телефоне, но, несмотря на ограниченный пул, Google Photos смогло довольно точно определить нужные мне вещи. Приложение правильно определило моих лучших друзей. Но когда вы начинаете искать случайные вещи в своей коллекции, Photos реально сводит с ума. Пиво? Оно находит фотографии пива. Бары? Находит фото баров».
Не только Google добивается успеха. В прошлом году Facebook раскрыла алгоритм DeepFace, который может распознавать конкретные лица людей с 97-процентной точностью. Качество на уровне человеческого. Wolfram Alpha создала систему, которая может определять объекты и даже позволяет внедрить ее в ваше собственное программное обеспечение. Цифровой персональный ассистент Cortana от Microsoft настолько точен, что может определить разницу между снимком пемброк-вельш-корги и кардиган-вельш-корги. А вы можете найти разницу между этими породами собак? Зуб даю, что нет.
Кардиган-вельш-корги слева
И дело не только в распознавании изображений. Skype использует нейронные сети для перевода с одного языка на другой на лету; китайский поисковик Baidu использует их для таргетированной рекламы в своем поисковике; совсем недавно Google представила систему с чат-ботом, который обучается с использованием сетей.
Нейронные сети наконец дают компьютерам способность понимать человеческий мир и делать разумные выводы о нем. Они уже обладают таким знанием и опытом, что могут создавать психоделические шедевры изобразительного искусства в процессе обучения.
Несовершенная наука и скандал с гориллами
Как и все «умное», нейронные сети могут и ошибаются. Только в этом месяце приложение Google Photos ошибочно пометило двух чернокожих людей на фотографии как «горилл». Новый разумный механизм распознавания изображений Flickr, работающий на нейронной сети Yahoo, тоже пометил чернокожего человека как «обезьяну». Конечно, ничто не идеально. Google быстро поправила проблему, просто убрав метку «горилла» из Photos; в дальнейшем, без сомнений, сеть будут учить жестче.
Конечно, технологию на старте легко обвести вокруг пальца. Обмануть нейронную сеть довольно просто. Снимки ниже, например, могут довольно легко обмануть нейронные сети — те подумают, что видят пингвинов, мячи и пульты дистанционного управления, хотя человек увидит на них лишь абстрактные узоры, хотя и созданные на основе реальных объектов.
«Путаница в алгоритме связана с различиями в том, как он видит мир по сравнению с людьми, — говорит Джефф Клюн из Университета Вайоминга в Ларами, который и обнаружил эту странность. — Когда люди определяют гепарда, глядя на общий набор — правильную форму тела, изгибы и так далее — нейронная сеть заинтересована только в частях объекта, которые отличают его от других».
И конечно, нейронные сети не имеют встроенного чувства приличия и осторожности, которые имеются у людей. Как ребенок, выбалтывающий любую информацию у него на уме, нейронные сети с нетерпением выдают свое лучшее предположение в надежде, что оно будет правильным, даже если не уверены на все 100%. И как человек может сомневаться в таких случаях, возможно, нейронная сеть научится делать то же самое.
Скандал с гориллами родился как отражение человеческого мира. В интервью Wall Street Journal эксперт в области искусственного интеллекта Вивьен Мин отметила, что виноваты, скорее всего, обучающие сеты Google. Фотографии в Интернете отражают в большинстве белый мир, поэтому неудивительно, что нейронная сеть не получила должного опыта для идентификации черных людей.
Сила в цифрах
Помимо скармливания нейронным сетям точных данных, ученые также совершенствуют программное обеспечение путем объединения сетей. Недавние исследования в сотрудничестве Google и Стэнфордского университета перешли в создание программного обеспечения, которое может описывать целые сцены, а не просто один объект на них, вроде кота.
Этот практически подвиг осуществился благодаря объединению нейронной сети, распознающей изображения, с сетью, распознающей естественную речь. Дайте сети, обрабатывающей речь, предложение вроде «мы сели перекусить сэндвичами», и она выведет из него высокоуровневые понятия вроде «поглощение пищи» и «сэндвичи». После этого выходные данные можно скормить другой сети обработки естественного языка, которая извлечет смысл из этих понятий и переведет их в предложение, которое заявит то же самое, но другими словами.
Так нейронные сети, используемые Skype, работают при переводе на лету. Что сделали исследователи из Стэнфорда и Google, так это заменили первую нейронную сеть сетью, распознающей изображения, и скормили ее сети с пониманием естественного английского языка. Первая производит высокоуровневые концепты того, что изображено на снимке, — скажем, человек, сэндвич и еда. Вторая пытается преобразовать эти понятия в предложение, описывающее изображение, например, «человек кушает сэндвич». Ниже вы видите подборку таких преобразований (с переводом). Результаты не идеальны, но впечатляют.
- Первый столбец (почти без ошибок): человек едет на мотоцикле по грязной дороге; группа молодых людей играет в фрисби.
- Второй столбец (минимальные ошибки): два пса играют на траве; два хоккеиста дерутся за шайбу.
- Третий столбец (что-то связанное с картинкой): скейтбордист совершает трюк на трамплине; девочка в розовой шапке надувает пузыри.
- Четвертый столбец (не связанное с картинкой): собака прыгает, чтобы поймать фрисби; холодильник, забитый едой и напитками.
Так если нейронные сети развиваются так быстро, где предел?
«Вы определенно можете ожидать серьезных улучшений в распознавании изображений и речи в ближайшие годы», — говори Кадью, отмечая, что по сути нейронные сети существуют пока только пару лет.
Что касается обработки естественного языка, не совсем понятно, смогут ли нейронные сети справиться с проблемами в этой области. В то время как распознавание речи и изображений работает слоевым образом, Кадью отмечает, что неврологи не уверены, можно ли его использовать для обработки языка. Возможно, обработка языка искусственными методами потребует времени.
Вперед, к рабочему ИИ
Короче, ясно одно: эти виды искусственных интеллектов уже оказывают помощь людям. В прошлом вам нужно было просеивать свои фотографии, чтобы составить альбом с последнего отпуска или найти снимки вашего приятеля, потягивающего пиво. Сегодня нейронные сети делают это для вас. Google Photos автоматически создает альбомы, и его функция умной идентификации снимков работает с пугающей точностью.
Пока что это программное обеспечение, ориентированное на пользователей, просто трюк по сравнению с теми нейронными сетями, которые однажды будут работать для нас.
Нетрудно представить алгоритм обработки снимков, который наберет достаточно ума, чтобы выявлять опухоли на изображениях, врачу останется лишь проверить и подписать результат. Системы распознавания голоса тоже могут стать настолько продвинутыми, что телемаркетинговые кампании будут запускаться сугубо на программном обеспечении. Сети обработки языка позволят писать новостные тексты машинам.
В некоторой степени все это уже происходит. Изменения достаточно глубокие для того, чтобы ученые Оксфордского университета заявили, что половина рабочих мест, включая и мое, может быть потеряна в пользу систем ИИ в ближайшие годы.
Однако сдвиги в экономике и занятости вследствие технологических инноваций происходили много раз и прежде, еще с выходом печатного пресса и автомобильного двигателя, с появлением компьютера и Интернета. Уйдут одни места, появятся другие. Появятся умные системы, сервисы лучше, и у людей будет больше времени решать те проблемы, которые не могут решить компьютеры.
Нет комментарий