355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Рэймонд Курцвейл » Эволюция разума » Текст книги (страница 10)
Эволюция разума
  • Текст добавлен: 26 марта 2017, 16:00

Текст книги "Эволюция разума"


Автор книги: Рэймонд Курцвейл


Жанр:

   

Биология


сообщить о нарушении

Текущая страница: 10 (всего у книги 20 страниц)

Нейронные сети

В 1964 г., когда мне было 16 лет, я написал письмо профессору Фрэнку Розенблатту из Корнельского университета с просьбой рассказать о машине под названием Mark 1 Perception. Профессор создал эту машину за четыре года до того, и она, как было заявлено, обладала свойствами человеческого мозга. Розенблатт пригласил меня к себе, чтобы опробовать машину.

Система Perception была построена на основе электронных моделей нейронов. На вход в систему подавались двумерные значения. В случае речевых образов одно измерение соответствовало частоте, а второе – времени, так что каждое значение демонстрировало интенсивность частоты в данный момент. В случае зрительных образов каждая точка представляла собой пиксел в двумерном массиве. Входные сигналы случайным образом поступали на модельные нейроны первого уровня. Все связи характеризовались синаптическим потенциалом, отражающим их значимость, который исходно устанавливался случайным образом. Каждый нейрон суммировал поступающие к нему сигналы. Если суммарный сигнал превышал некое пороговое значение, нейрон возбуждался и посылал выходной сигнал на следующий контакт. Если суммарный сигнал был меньше порогового значения, нейрон не возбуждался и выходной сигнал равнялся нулю. Выходные сигналы всех нейронов случайным образом поступали на нейроны следующего уровня. Таких уровней в системе Mark 1 Perception существовало три, и каждый из них мог быть организован в различной конфигурации. Например, какой-то уровень мог иметь обратную связь с предыдущим. На высшем уровне в результате случайного выбора выходных сигналов одного или нескольких нейронов формировался ответ (алгоритм действия сетей нейронов подробно описан в приложении[97]97
  Ниже представлена базовая схема алгоритма функционирования сети нейронов. Возможно множество вариаций алгоритма, и создателю программы необходимо знать некоторые важнейшие параметры и методы, которые перечислены ниже. Создание сети нейронов для решения проблемы происходит в несколько этапов.
  Определить входные данные.
  Определить топологию сети (например, слои нейронов и связи между нейронами).
  Отработать систему на нескольких примерах. Опубликовать/запатентовать систему.
  Эти этапы (кроме последнего) подробнее описаны ниже.
  Входные данные.
  Входные данные на сеть нейронов представляют собой несколько наборов чисел. Вот некоторые примеры:
  – для системы распознавания визуальных образов – это двумерный ряд чисел, соответствующих пикселям изображения;
  – для системы распознавания звуковой информации (например, речи) – это двумерный набор чисел, соответствующих звуку: первое измерение – параметры звука (например, частота), а второе измерение – различные моменты времени;
  – в системе распознавания произвольных образов – это n-мерный набор чисел, соответствующих входному сигналу.
  Определение топологии сети.
  Архитектура каждого нейрона определяется следующими параметрами.
  Множество входных сигналов, каждый из которых «соединен» либо с выходным сигналом другого нейрона, либо с одним из чисел, определяющих входной сигнал.
  Обычно один выходной сигнал, связанный либо с входным сигналом другого нейрона (обычно более высокого уровня), либо с результирующим сигналом.
  Установка нейронов первого уровня.
  Создать N0 нейронов первого уровня. Для каждого из них осуществить «связь» каждого из многочисленных входных сигналов с «точками» (например, численными значениями) на входе в систему. Эти связи могут быть установлены случайным образом или с помощью эволюционного алгоритма (см. ниже).
  Присвоить начальное значение «синаптического потенциала» каждой созданной связи. Эти параметры сначала могут быть одинаковыми, могут быть выбраны случайным образом или определены каким-то другим путем (см. ниже).
  Создать следующие уровни нейронов.
  Создать все M уровней нейронов. На каждом уровне определить все нейроны.
  Для уровня i.
  Создать N. нейронов уровня i. Для каждого нейрона осуществить «связь» каждого из множества входных сигналов с выходными сигналами нейронов уровня i-1 (ниже см. возможные варианты).
  Присвоить начальное значение «синаптического потенциала» каждой созданной связи.
  Эти параметры сначала могут быть одинаковыми, могут быть выбраны случайным образом или определены каким-то другим путем (см. ниже).
  Выходные сигналы нейронов уровня M представляют собой результирующие сигналы на выходе из сети нейронов (ниже см. возможные варианты).
  Тест.
  Как работает каждый нейрон.
  Когда нейрон определен, в каждом тесте он выполняет следующую функцию.
  Каждый поступающий на нейрон взвешенный сигнал обсчитывается путем умножения выходного сигнала от другого нейрона (или исходного входного сигнала), с которым соединен данный нейрон, на величину синаптического потенциала данной связи.
  Все взвешенные сигналы, поступающие на данный нейрон, суммируются.
  Если эта сумма выше порогового значения возбуждения нейрона, данный нейрон считается возбужденным, и его выходному сигналу присваивается значение 1. В противном случае выходной сигнал получает значение 0 (см. варианты ниже).
  В каждом тесте проводится следующая процедура.
  Для каждого уровня – от 0 до M:
  Для каждого нейрона данного уровня:
  Суммируются взвешенные входные сигналы (каждый взвешенный входной сигнал = выходной сигнал другого нейрона (или исходный входной сигнал), с которым связан данный нейрон, х синаптический потенциал связи).
  Если эта сумма взвешенных сигналов выше порогового значения возбуждения нейрона, данный нейрон считается возбужденным, и его выходному сигналу присваивается значение 1. В противном случае выходной сигнал получает значение 0.
  Тестирование сети нейронов.
  Проводят серию повторных тестов для простой задачи.
  После каждого теста показатели синаптических потенциалов всех связей настраивают таким образом, чтобы улучшить производительность сети нейронов в данной задаче (ниже обсуждается, как это сделать).
  Продолжают тестирование до тех пор, пока точность распознавания не перестанет повышаться (то есть выйдет на асимптоту).
  Ключевые решения.
  В рамках описанной выше простой схемы создатель алгоритма должен прежде всего определить следующие параметры:
  – чему соответствуют значения входных параметров;
  – количество уровней нейронов;
  – количество нейронов на каждом уровне (на разных уровнях не обязательно должно содержаться одинаковое количество нейронов);
  – количество входных сигналов, приходящих на каждый нейрон каждого уровня. Количество входных сигналов (то есть связей между нейронами) может быть различным для разных нейронов и разных уровней;
  – список «возбужденных» связей. Для каждого нейрона каждого уровня создается список других нейронов, выходные сигналы которых являются входными сигналами на данный нейрон. Это ключевой момент в создании программы. Сделать это можно несколькими способами:
  1) возбужденные связи выбираются случайным образом; или
  2) для оптимального возбуждения применяется эволюционный алгоритм (см. ниже); или
  3) для определения возбужденных связей используется лучшее конструктивное решение.
  Определение исходного синаптического потенциала (то есть веса) каждой связи. Сделать это можно несколькими способами:
  1) всем синаптическим потенциалам присваивается одинаковое значение; или
  2) синаптическим потенциалам присваиваются разные случайные значения; или
  3) для определения оптимального набора синаптических потенциалов применяется эволюционный алгоритм; или
  4) для определения исходных значений синаптических потенциалов используется лучшее конструктивное решение.
  Порог возбуждения каждого нейрона.
  Определение выходного сигнала. Выходной сигнал может быть:
  1) выходными сигналами после уровня M; или
  2) выходным сигналом единственного нейрона, входным сигналом на который являются выходные сигналы после уровня M; или
  3) функцией (например, суммой) выходных сигналов после уровня M; или
  4) другой функцией выходных сигналов нейронов разных уровней.
  Определение степени подгонки синаптических потенциалов всех связей в процессе тестирования сети нейронов. Это очень важный элемент подготовки программы, который активно исследуется и широко обсуждается. Для осуществления этой процедуры существует несколько возможностей:
  1) в каждом тесте повышают или понижают величину синаптического потенциала на небольшую фиксированную величину, чтобы выходной сигнал нервной сети как можно ближе подходил к правильному результату. Один из способов – пытаться и увеличивать, и уменьшать значение, чтобы выяснить, какое действие приближает систему к желаемому результату. Однако для этого может потребоваться много времени, так что существуют другие методы, позволяющие определить, в каком направлении (уменьшения или увеличения потенциала) следует двигаться;
  2) существуют другие статистические методы изменения синаптического потенциала после каждого теста, чтобы добиться лучшего совпадения получаемых результатов с истинным значением.
  Заметим, что тренировка системы будет происходить даже в тех случаях, когда не все результаты испытаний близки к истинным значениям. Это позволяет использовать результаты тестов, даже содержащих ошибку. Ключ к успеху при создании системы распознавания на основе сетей нейронов заключается в использовании большого количества тренировочных данных. Обычно для получения удовлетворительных результатов требуется весьма большой объем данных. Для системы на основе сетей нейронов, как и для студентов, процесс обучения – важнейший фактор в достижении высокой эффективности.
  Вариации алгоритма.
  Возможно множество вариаций.
  Существуют разные способы определения топологии. В частности, возбуждение связей между нейронами можно задавать случайным образом, а можно с помощью эволюционного алгоритма.
  Существуют разные способы определения исходных значений синаптического потенциала.
  Входные сигналы на нейроны уровня i не обязательно являются выходными сигналами от нейронов уровня i-1. Входные сигналы на нейроны любого уровня могут приходить от нейронов любого уровня.
  Существуют разные пути определения конечного выходного сигнала.
  Описанный выше метод приводит к возбуждению по принципу «все или ничего» (1 или 0) – это так называемая нелинейная функция. Но могут использоваться и другие нелинейные функции. Обычно применяют функцию, изменяющуюся в пределах от 0 до 1 достаточно быстро, но все же ступенчато. Кроме того, выходным сигналам могут присваиваться другие значения, отличные от 0 и 1.
  Выбор метода подгонки величины синаптического потенциала в процессе наладки программы – очень важный момент. Описанная выше схема относится к «синхронным» сетям нейронов, в которых каждое испытание происходит путем вычислений выходов на каждом уровне нейронов, начиная от уровня 0 и заканчивая уровнем M. В истинно параллельных системах, где каждый нейрон действует независимо от остальных, нейроны могут функционировать «асинхронно». При асинхронном подходе каждый нейрон постоянно сканирует свои входные сигналы и возбуждается в том случае, если сумма взвешенных входных сигналов превышает определенное пороговое значение (или при определенной специфике его выходного сигнала).


[Закрыть]
).

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

Со временем нейронная сеть организуется таким образом, что может выдавать правильные ответы безо всякой подсказки. Эксперименты показывают, что нейронные сети могут обучаться даже у ненадежных учителей. Если учитель вносит исправления лишь в 60 % случаев, обучающаяся нейронная сеть все равно выучит урок так, что точность ответов приблизится к 100 %.

Однако достаточно скоро стало очевидно, что Perception может усвоить лишь ограниченный объем материала. Когда я посетил профессора Розенблатта в 1964 г., я попытался слегка изменить входные данные. Система была натренирована на распознавание печатных букв и делала это достаточно точно. Она довольно хорошо выполняла задачу самоассоциации (узнавала букву, если я закрывал ее часть), но не справлялась с инвариантностью (путалась при изменении размера буквы или шрифта).

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

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

В 1969 г. Минский и Сеймур Пейперт – основатели лаборатории искусственного интеллекта при Массачусетском технологическом институте – написали книгу Perceptrons[98]98
  В русском переводе: Минский М., Пейперт С. Персептроны. М.: Мир, 1971.


[Закрыть]
, в которой излагалась проблема персептрона, заключавшаяся в том, что такие персептроны, как Mark 1, не способны определить является ом изображение связанным. Эта книга вызвала бурю гнева. Человек может очень легко определить, является ли образ цельным (связанным), и для компьютера эта задача не представляет никакой сложности. Тот факт, что персептроны не могут этого сделать, многими был воспринят как полный провал.

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

И все же книга отчасти способствовала ослаблению интереса к нейронным сетям в 1970-х гг. Исследования возобновились в 1980-х гг. в попытках использовать «более реалистичные модели» биологических нейронов и избежать ограничений, накладываемых теоремой Минского – Пейперта. Тем не менее способность новой коры решать ключевую проблему инвариантности по-прежнему не поддавалась воспроизведению в рамках коннекционизма.

Два изображения с обложки книги «Перцептроны» (авторы Марвин Мински и Сеймур Паперт). Верхнее изображение: неподключенный образ (темный участок состоит из двух разъединенных частей. Внизу: образ подключенный.

Разреженное кодирование: векторное квантование

В начале 1980-х гг. я начал заниматься проектом, посвященным другой классической проблеме распознавания образов – пониманию человеческой речи. Сначала мы использовали классический подход, заключающийся в прямом программировании знаний о фундаментальных единицах речи, называемых фонемами, и лингвистических правилах связывания отдельных фонем в слова и фразы. Каждая фонема характеризуется определенными частотными параметрами. Например, мы знаем, что такие гласные, как «и» и «а», характеризуются определенными резонансными частотами, называемыми формантами, причем каждой фонеме соответствует определенное соотношение формант. Свистящие звуки, как [з] и [с], характеризуются шумовым импульсом, охватывающим несколько частот.

Спектр трех гласных звуков. Слева направо: звук [i], как в слове «appreciate», [и], как в «acoustic», и [а], как в «ah». По оси Y отложены звуковые частоты. Чем темнее полосы, тем больше энергии соответствует этой частоте.

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

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

Кое-что у нас получилось. Мы смогли натренировать нашу систему на распознавание речи конкретного человека, пользовавшегося небольшим набором слов (несколько тысяч). Далее мы попытались научить ее распознавать десятки тысяч слов, речь разных людей и непрерывную речь (без пауз между словами), но столкнулись с проблемой инвариантности. Разные люди произносят одну и ту же фонему по-разному: в устах одного человека фонема «и» может звучать, как «а» у другого человека. Даже один и тот же человек не отдает себе отчета в том, как он произносит отдельные фонемы. Характер звучания часто зависит от соседних фонем. Некоторые фонемы полностью исчезают. Произношение слов (то есть сочленение фонем) также весьма вариабельно и зависит от контекста. Те лингвистические правила, которые мы заложили в нашу программу, не смогли учесть чрезвычайную вариабельность разговорной речи.

Спектр слова «hide» («хайд» – прятать). Горизонтальные линии соответствуют формантам – частотам с наиболее высокой энергией.

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

Даже при условии множественных повторов структур мозга мне кажется совершенно невероятным, что мозг обрабатывает 3000 отдельных звуковых сигналов. У меня вызывала большое сомнение столь низкая эффективность эволюции. Теперь мы знаем, что еще до того, как звуковые сигналы попадают в новую кору, в слуховом нерве происходит очень значительное сокращение объема информации. В наших искусственных системах распознавания речи мы тоже применяли фильтры (сначала 16, а потом 32; больше, как оказалось, использовать бессмысленно). Таким образом, в нашей системе в каждый момент времени входной сигнал был представлен 16 числами. И нам предстояло свести эти 16 потоков данных к единому потоку, сохранив при этом информацию, необходимую для распознавания речи.

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

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

Если у нас имеется множество таких векторов, при нанесении их на график мы можем заметить формирование определенных кластеров.

Для идентификации кластеров нужно решить, сколько их будет. В нашей работе мы обычно допускали существование 1024 кластеров, которые могли пронумеровать и обозначить 10-разрядным двоичным числом (поскольку 210 = 1024). Наша выборка векторов представляет необходимое нам разнообразие. Сначала мы предполагали, что первые 1024 вектора образуют одноточечные кластеры. Затем мы рассматривали 1025-й вектор и находили ближайшую к нему точку. Если это расстояние больше самого маленького расстояния между двумя любыми точками из 1024, мы считаем эту точку началом нового кластера. Тогда мы «схлопываем» два ближайших кластера в единый кластер (при этом у нас по-прежнему остается 1024 кластера).

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

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

Мы повторяем этот процесс до тех пор, пока не учтем все точки из нашей выборки. Обычно мы укладываем в 1024 (210) кластера миллионы точек (мы также работали с 2048 (211) и с 4096 (212) кластерами). Каждый кластер можно представить в виде единственного вектора, расположенного в геометрическом центре всех точек кластера. Таким образом, сумма расстояний от всех точек кластера до центральной точки минимальна.

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

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

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

Я описал суть метода в применении к двумерным векторам, но работа с 16-мерными векторами осуществляется по совершенно аналогичной схеме. Мы выбираем векторы с 16 числами, соответствующими 16 различным частотным полосам, так что каждая точка в нашей системе располагается в 16-мерном пространстве. Нам трудно вообразить пространство, распространяющееся более чем в трех измерениях (ну максимум в четырех, если мы добавим шкалу времени), но у математиков нет таких ограничений.

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

Чтение мыслей с помощью скрытых моделей Маркова

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

В начале 1980-х гг., когда я уже занимался проблемой распознавания образов на протяжении почти 20 лет, я знал, что одномерное представление данных – самый мощный, эффективный и надежный способ получения инвариантных результатов. В то время мы мало знали о функционировании новой коры, но на основании своих исследований в области распознавания образов я предположил, что мозг, возможно, редуцирует многомерные данные (поступающие от глаз, ушей или кожи) до одномерных, особенно когда речь идет об иерархии понятий в новой коре.

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

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

Я задал себе вопрос: нет ли какого-то математического метода, который помог бы нам анализировать образы в мозге говорящего человека на основании произнесенных слов? Одной фразы, конечно, было бы недостаточно, но если бы у нас имелся большой набор образцов, возможно, мы смогли бы использовать эту информацию для «прочтения» образов в новой коре говорящего человека (или хотя бы сформулировать математический эквивалент, который позволил бы нам распознавать новые словосочетания).

Часто люди недооценивают мощь математического аппарата; подумайте, ведь поиск самой разной информации за считаные секунды с помощью поисковых программ основан на математическом подходе. Так вот, когда в начале 1980-х гг. я занимался проблемой распознавания речи, оказалось, что для решения стоявших перед нами задач практически идеально подходит так называемый метод скрытых моделей Маркова. Русский математик Андрей Андреевич Марков (1856–1922) создал математическую теорию иерархических последовательностей состояний. Модель основана на возможности перехода из одного состояния в другое по цепочке; если переход совершается успешно, следующее состояние характеризуется более высоким уровнем иерархии. Вам это ничего не напоминает?

Простой пример одного слоя в скрытой модели Маркова. Символы от S1 до S4 обозначают «скрытые» состояния системы. Параметры переходов Pi,j соответствуют вероятности перехода из состояния S1 в состояние Sj. Эти вероятности определяются системой путем обучения на тренировочных данных и в рабочем порядке. Новая последовательность (например, новая последовательность звуков) соотносится со значениями Pi,j для определения вероятности воспроизведения моделью этой последовательности.

В модели Маркова учитываются вероятности переходов из каждого состояния в следующее. В ней рассматривается ситуация, когда система следует такой иерархической линейной цепи состояний, но их невозможно проанализировать напрямую – отсюда название «скрытые модели Маркова». На самом нижнем иерархическом уровне подаются сигналы, и это все, что мы можем видеть. Марков предложил математический метод расчета, показывающий, что вероятность каждого перехода должна быть основана на значении выходного сигнала. Этот метод в 1923 г. усовершенствовал знаменитый английский математик Норберт Винер (1894–1964). В результате стало возможным определять связь между звеньями в цепи Маркова; в частности, все связи, характеризующиеся очень низкой вероятностью, стали считаться несуществующими. Именно так действует и человеческая новая кора: если какие-то связи не используются или используются очень редко, они воспринимаются как маловероятные и со временем исчезают. В нашем случае наблюдаемым выходным сигналом является речевой сигнал, издаваемый говорящим человеком, а состояния в цепи Маркова и связи между ними описывают иерархическую организацию новой коры.

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

Мои коллеги в компании Kurzweil Applied Intelligence весьма скептически отнеслись к этому плану, учитывая сходство этой модели с самоорганизующимися нейронными сетями, которые уже не были столь популярны и не помогли нам серьезно продвинуться в наших предыдущих исследованиях. Я же указывал, что связи в системе нейронных сетей являются фиксированными и не адаптируются к входным сигналам – веса адаптируются, а связи нет. В системе скрытых моделей Маркова – при условии, что она правильно подготовлена, – исчезают неиспользуемые связи и происходит адаптация.

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

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

ИСММ также используются в системах, понимающих смысл предложений на более сложном понятийном уровне иерархии.

Состояния в скрытой модели Маркова и возможные переходы, необходимые для создания последовательности слов в разговорной речи.

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

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

Простая скрытая модель Маркова для распознавания двух слов разговорной речи.

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

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

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

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


    Ваша оценка произведения:

Популярные книги за неделю