Корнак
Модератор своей темы
Старожил
Offline
Сообщений: 89619
|
|
| Модератор: Pipa | |
« Ответ #300 : 25 февраля 2014, 23:35:02 » |
|
Как компьютеры учились распознавать человеческую речь. С ШЛ
"За миллионы лет эволюции природа создала уникальный инструмент – мозг человека. Самонастраивающийся, развивающийся, а главное - очень компактный. По мере развития, познания и взросления, людям самим захотелось создать нечто подобное, то есть – искусственный разум. Просто человек так устроен, что тоже хочет сотворить чего-нибудь этакое.
Одной из проблем, которые должны быть решены при создании искусственного интеллекта, стала проблема понимания машиной человеческой речи. Бились довольно долго, и результаты были получены лишь тогда, когда стали копировать устройство человеческого мозга. О всех перипетиях поисков и находок - интересная информация, история вопроса, как это происходило на самом деле. Если не в тему, то перенесите.
ДОРОГОЙ БОГОВ
Человек начал мечтать о разумных машинах давно. Возможно, причина тому – религии с их схожими историями о сотворении человечества разными высшими существами. Так уж устроены люди: самый большой орган в нашем организме – это Эго. Создать искусственный разум значило совершить акт божественного творения, представлялось нам. Вера в могущество науки была безгранична. Казалось, что вот-вот в нашу жизнь войдут разумные машины, мыслящие и понимающие наш язык. О таких машинах писали многие фантасты, например, отец российской фантастики Александр Беляев. Но время шло, а мечта не только не приближалась, но становилась всё более и более далёкой. Появились компьютеры, способные выполнять миллиарды операций в секунду, но чем больше развивалась наука и техника, тем яснее люди понимали, насколько сложно будет придать машине элементы человечности. Первым делом люди решили научить компьютеры понимать человеческую речь, потому, что речь всегда ассоциировалась у человека с разумом.
Первый компьютер, с которым можно было поговорить, появился более полусотни лет назад: в 1952 году Bell Labs представил устройство Audrey, которое могло распознавать цифры, произнесённые одним конкретным человеком. Правда, на этом дело застопорилось. На то, чтобы научить компьютер распознавать 16 английских слов, ушло ещё 10 лет. А ещё через семь лет, в 1969 году, инженер из всё той же Bell Labs, Джон Пирс, и вовсе заявил, что научить компьютеры понимать людей не получится ещё как минимум несколько десятков лет.
компьютер IBM-370 (1970 год), занимавший целую комнату, тратил на обработку одной лишь фразы около часа
Однако вскоре произошёл существенный прорыв. Математик Леонард Баум из Принстонского университета создал статистический метод, названный «скрытая марковская модель». Стало ясно, что компьютеры могут понимать человека на базе одной лишь статистики. Правда, до применения теории на практике было ещё далеко.
В 1971 году к исследованиям подключились американские военные. Агентство передовых оборонных исследований (одно из подразделений Министерства обороны США) вложило 15 миллионов долларов в разработку компьютера, который должен был преобразовывать человеческую речь в текст. В течение пяти лет несколько лабораторий усиленно тратили деньги налогоплательщиков, создав две экспериментальные системы, названные Harpy и Hearsay. Нельзя сказать, что военные выполнили задачу, так как машины имели словарный запас трёхлетнего ребёнка (около тысячи слов) и постоянно ошибались.
Стало ясно, что одними деньгами проблему не решить, нужно было ждать появления более мощных компьютеров. В 1985 году американскому инженеру Рею Курцвейлю удалось создать первую коммерческую систему распознавания речи – Kurzweil Voice Sistem, которая понимала всё ту же тысячу слов, да при этом требовала от говорящего делать паузы между словами. Особого успеха эта система не имела, так как стоила очень дорого, и по сути, была лишь высокотехнологической игрушкой.
Чтобы создать первые программы по распознаванию непрерывной речи, ушло ещё 10 лет. Эти программы были неуклюжими, часто ошибались, имели жёсткие требования к синтаксису предложений, и в целом были очень неудобны в использовании. Но они работали, и что важно, это были относительно дешёвые программы, работавшие на любом компьютере. К концу 1990-х такие программы пошли в массы. Они конкурировали друг с другом, становясь всё более дешёвыми, удобными и эффективными.
КАК ЭТО РАБОТАЕТ
Применение «скрытой марковской модели» стало важной вехой в истории систем распознавания речи. До этого компьютеры умели лишь сравнивать произнесённые слова с заложенными в память образцами. Такая схема работала только с ограниченным набором слов, произнесённых одним человеком, на большее она была неспособна. Однако в реальной жизни требуется распознавать голоса разных людей, разные акценты, шепелявость, невнятную речь, отличать друг от друга похожие слова, фильтровать посторонний шум. Всё это невероятно усложняет задачу. Даже человеческое ухо обычно не распознаёт многие части произнесённых слов, воссоздавая их смысл по ключевым звукам, по смыслу соседних слов, теме разговора, и многими другими способами, о которых мы с вами даже не задумываемся. Хотите знать, что вы слышите на самом деле? Просто прислушайтесь к разговору на незнакомом языке, например, найдите на YouTube ролик на японском или арабском. Во многих случаях вы даже не поймёте, где кончается одно слово и начинается другое.
Чтобы понять глубину проблемы, начнём с самого начала. Ребёнок учит 33 буквы – задача относительно лёгкая. Но вот беда, человек не привык говорить слова по буквам. В речи буквы произносятся с помощью звуков, или, выражаясь по-научному, фонем. Человек произносит их быстро и непрерывно, фонемы перетекают одна в другую, приобретая массу нюансов в произношении. Мы этого не замечаем, но один лишь звук, например, «а» в языке имеет много разных вариантов звучания. Все эти варианты называются «аллофонами». И если фонем, как и букв, несколько десятков, то аллофонов несколько сотен. Чтобы понять, какой именно аллофон прозвучал, компьютер исследует не только его самого, но и пару соседних звуков – ведь именно от них зависит распознавание аллофона. Эти три звука называются «трифоном». По сути, трифон является для компьютера тем же самым, что и буква для человека. Для того, чтобы обучить компьютер русскому языку, надо проанализировать сто тысяч часов аудиозаписей, вычленив как минимум несколько тысяч трифонов. Такой вот «алфавит» из нескольких тысяч «букв» приходится учить компьютеру для понимания человеческой речи.
Несмотря на все эти ухищрения, избежать ошибок не удаётся. На каждое произнесённое слово может быть много вариантов, что бы оно могло означать. Лук сварился? Бук свалился? Сук спилился? Бука спился? Вот тут как раз и приходят на выручку «скрытые марковские модели», которые с помощью статистики позволяют определить наиболее вероятное значение каждого трифона, спрогнозировать грамматическую структуру предложения, отсечь все заведомо невозможные варианты.
В компьютерных программах также используется весьма ресурсоёмкая система сопоставления семантического значения слов. Так же, как и мозг человека, компьютер сопоставляет каждое слово с двумя соседними. Если не улавливается разница между словами «железо» и «береза», а рядом стоит слово «ржавое», то, скорее всего, речь идёт всё-таки о железе.
Но и этого недостаточно для получения удовлетворительного результата. Попытка разложить речь по полочкам и досконально её проанализировать, провалилась. Даже самые совершенные аналитические методы выдавали около 20% ошибок, в то время как человек допускает всего 2%
Ещё одна проблема заключается в том, что такие системы распознавания речи не способны обучаться, что человек делает с лёгкостью. Да, есть программы, способные приспосабливаться к голосу одного конкретного человека, но это совсем не то, что нужно.
В начале XXI века в этой сфере наступил кризис, развитие технологий распознавания речи практически прекратилось. Программисты зашли в тупик, а некоторые учёные до того разуверились во всемогуществе компьютеров, что были готовы признать окончательное поражение: мол, прав был старина Пирс, проблему действительно не решить.
Чтобы выйти из тупика, потребовалось ещё 10 лет. В 2010 году Google создала сервис голосового поиска, избавив владельцев планшетов и мобильников от необходимости вводить запрос с помощью неудобной экранной клавиатуры. Поскольку многие описанные выше методы распознавания речи оказались малоэффективны, инженеры компании Google решили подойти к решению проблемы с другой стороны. Более-менее удовлетворительные результаты были получены лишь когда Google начала применять систему Искусственных Нейронных Сетей (ИНС), построенных на принципах, схожих с принципами работы человеческого мозга.
НЕЙРОННЫЕ СЕТИ
Ключевая особенность ИНС – способность к обобщению, сопоставлению получаемой информации, а главное – способность к обучению. Как и в человеческом мозге, информация обрабатывается на нескольких уровнях: данные поступают на входной слой нейронов, обрабатываются, модифицируются, затем поступают на следующий слой нейронов, снова обрабатываются и так далее. Но если в обычном компьютере прохождение информации никак не влияет на его, компьютера, структуру, то в нейронной сети – и в настоящей , и в искусственной – обработка информации порождает новые ассоциативные связи между нейронами, перестраивая весь механизм обработки этой информации. Нейронная сеть учится, меняется и приспосабливается под те данные, с которыми ей приходится работать. (Нельзя сказать, что ИНС – современное изобретение. Первый компьютер «Марк-1», построенный на этих идеях, был создан ещё в далёком 1958 году, и его первым делом попытались приспособить для фонетического анализа речи, научив распознавать несколько английских букв. Но практического толка от этого было мало, мощность процессоров того времени была слишком низкой для решения столь сложных задач).
В прошлом году Google объявила о том, что их секретная лаборатория создала ИНС, которая будет использована для улучшения качества онлайновых сервисов – точности распознавания речи и машинного перевода на Google-переводчике. Шестнадцать тысяч процессоров были объединены в нейронную сеть с миллиардом взаимодействующих «нейронов» между ними, каждый из которых является отдельным программным процессом. Много это или мало – миллиард? В мозге человека находится в среднем 86 миллиардов нейронов, у бабуина их 14 миллиардов. Один миллиард, наверное, у таракана. Конечно, интеллект не зависит напрямую от количества нейронов, а не то самым умным был бы какой-нибудь слон или кашалот с 7 килограммами мозгов, но сам факт, что искусственные нейронные сети по сложности приближаются к биологическим видам, заставляет гордиться.
Инженеры лаборатории Google заставили свою нейронную сеть «смотреть» тысячи роликов на YouTube, находя на них милых пушистых котиков. В отличие от обычных компьютеров, которым требовалось бы показать сперва кучу этих самых котиков, ИНС на основе начальных данных самостоятельно пыталась рассортировать ролики с кошками и без них, сама уточняла алгоритмы распознавания. В итоге кибермозг таки понял, что такое котики, и начал уверенно выбирать видео с их участием.
В деле распознавания речи самообучающаяся ИНС показала очень хорошие результаты, разом уменьшив число ошибок. Сегодня, когда вы пользуетесь голосовым поиском, смартфон строит спектрограмму вашей фразы, после чего данные проходят многоуровневую обработку в нейронной сети – используя самообучающиеся математические модели, система анализирует аллофоны, из огромной базы спектрограмм учится выделять ключевые моменты, игнорируя при этом особенности говорящего, такие, как акцент, шумы и прочее. (Правда, на практике путь таким технологиям порой преграждают совершенно банальные проблемы. Например, микрофон. Изобрели его давно, и может показаться, что улучшать уже нечего. Тем не менее, голосовой поиск от Google, в зависимости от устройства, может вести себя по-разному: на дорогом смартфоне с качественным микрофоном он работает безупречно, а на дешёвом планшете начинает выдавать совершеннейшую чушь).
Тем не менее, революция, по сути, уже свершилась. Проделав долгий путь, человечество всё-таки вплотную подошло к решению поставленной задачи – изобрести действенный метод распознавания речи. Для этого человеку пришлось научить компьютер не просто воспринимать звуковые вибрации, а искать в них смысл, предугадывать их значение, понимать свои ошибки и учиться на них – то есть делать то, что мы, люди, делаем каждый день, даже не задумываясь над этим.
Как выглядит мозг таракана в человеческом исполнении?
Ну а всё-таки, может ли компьютер действительно понять и осознать сказанное человеком? Возможно ли в принципе создание искусственного интеллекта? Этот вопрос давно занимает учёных всего мира.
В 1980 году американский философ-лингвист Джон Сёрль заявил, что такого не будет никогда. В доказательство он привёл концепцию «китайской комнаты».
КОНЦЕПЦИЯ «КИТАЙСКОЙ КОМНАТЫ»
Представьте себе, что вы сидите в комнате с двумя окошками. У вас есть ящик с китайскими иероглифами и толстая книга инструкций. В инструкциях описаны все варианты иероглифов, которые могут поступить в первое окошко. В ответ вам надо будет отправлять во второе окошко другой набор иероглифов – тоже согласно инструкции.
Сидя целый день в комнате, вы получаете и отправляете иероглифы, совершенно не понимая их смысла. Вам может поступить вопрос: «Какие ваши любимые цветы?» - вы сверитесь с инструкцией и отправите набор иероглифов, значащий: «Мне нравятся ромашки». Но вы этого никогда не узнаете, у вас просто нет возможности понять, что значит хотя бы один иероглиф. Однако же, у того, кто отправляет вам вопросы и получает ответы, может сложиться впечатление, что вы в совершенстве знаете китайский язык.
В этом примере человек представляет собой компьютер; ящик с иероглифами – базу данных; толстая книга инструкций – программу; два окошка – каналы ввода и вывода информации. По идее Джона, компьютер и человек никогда не смогут общаться осмысленно, так как разделены стенами «китайской комнаты».
Аналогично, я могу спросить компьютер: «Какая сейчас погода в Нью-Йорке?» Он распознает мой вопрос, сверится с базой метеопрогнозов и синтезированным голосом ответит мне вполне «разумно». Сейчас ничего технически сложного в этом нет. Но поймёт ли сам компьютер - о чём я его спрашивал, и что он мне ответил?
Впрочем, многие учёные не согласны с концепцией «китайской комнаты». Нейроны в мозге человека, говорят оппоненты, если подходить к ним с точки зрения физиологии, тоже бездумно выполняют свою механическую работу в виде «сортировки иероглифов по инструкции», что не мешает нам иметь сознание.
ЧТО-НЕ-МЕШАЕТ-НАМ-ИМЕТЬ-СОЗНАНИЕ. Может, тут собака и порылась? Где находится это «сознание»? И как его прикрутить к железному компьютеру? Вопрос, однако… |