Как показало дальнейшее исследование этой проблемы, для распознавания уже достаточно только информации о формантной структуре. Фактически, человек одинаково распознает нормальную голосовую речь и шепот, хотя в последнем отсутствует голосовой источник. Голосовой источник дает дополнительную информацию в виде интонации (изменением высоты тона на протяжении высказывания), и эта информация очень важна на высших уровнях обработки речи. Но в первом приближении можно ограничиться только получением формантной структуры, и для этого с учетом сжатия неинформативной части спектра достаточное число входов выбрано в пределах 50~100.
Нейросеть имеет довольно простую структуру и состоит из трех уровней: входной слой, символьный слой и эффекторный слой (рис. 4). Каждый нейрон последующего слоя связан со всеми нейронами предыдущего слоя. Функция передачи во всех слоя линейная, во входном слое моделируется конкуренция.
Рис. 4 Архитектура нейросети
1. Входной слой - этот слой получает сигналы непосредственно от входов нейросети (входы не осуществляют обработку сигнала, а только распределяют его дальше в нейросеть). Он представляет собой один из вариантов самоорганизующейся карты Кохонена, обучающейся без учителя. Основной задачей входного уровня является формирование нейронных ансамблей для каждого класса входных векторов, которые представляют соответствующие им сигналы на дальнейших уровнях обработки. Фактически, именно этот слой определяет эффективность дальнейшей обработки сигнала, и моделирование этого слоя представляет наибольшую трудность.
Нейроны этого слоя функционируют по принципу конкуренции, т.е. в результате определенного количества итераций активным остается один нейрон или нейронный ансамбль (группа нейронов, которые срабатывают одновременно). Этот механизм осуществляется за счет латеральных связей и называется латеральным торможением. Он подробно рассмотрен во многих источниках ([1], [6]). Так как отработка этого механизма требует значительных вычислительных ресурсов, в моей модели он моделируется искусственно, т.е. находится нейрон с максимальной активностью, его активность устанавливается в 1, остальных в 0.
Обучение сети производится по правилу (7):
wн = wс + (x – wс)a, (6)
wн - новое значение веса,
wс – старое значение,
- скорость обучения, <1
x - нормированный входной вектор,
a – активность нейрона.
Геометрически это правило иллюстрирует рисунок 5:
Рис. 5. Коррекция весов нейрона Кохонена
Входной вектор x перед подачей на вход нейросети нормируется, т.е. располагается на гиперсфере единичного радиуса в пространстве весов. При коррекции весов по правилу (6) происходит поворот вектора весов в сторону входного вектора. Постепенное уменьшение скорости поворота позволяет произвести статистическое усреднение входных векторов, на которые реагирует данный нейрон.
Проблемы, которые возникают при обучении слоя Кохонена, описаны ниже (см. 5.5)
2. Символьный слой – нейроны этого слоя ассоциированы с символами алфавита (это не обязательно должен быть обычный буквенный алфавит, но любой, например, алфавит фонем). Этот слой осуществляет генерацию символов при распознавании и ввод символов при синтезе. Он представляет собой слой Гроссберга, обучающийся с учителем. Нейрон этого слоя функционирует обычным образом: вычисляет суммарный взвешенный сигнал на своих входах и при помощи линейной функции передает его на выход. Модификация весов связей при обучении происходит по следующему правилу:
wijн = wijс + (yj – wijс)xi, (7)
wijн, wijс – веса связей до и после модификации
- скорость обучения, <1
yj – выход нейрона
xi – вход нейрона
По этому правилу вектор весов связей стремится к выходному вектору, но только если активен вход, т.е. модифицироваться будут связи только от активных в данный момент нейронов слоя Кохонена. Выходы же у символьного слоя бинарные, т.е. нейрон может быть активен (yj = 1) или нет (yj = 0), что соответствует включению определенного символа. Входной слой совместно с символьным слоем позволяют сопоставить каждому классу входных сигналов определенный символ алфавита.
3. Эффекторный слой – этот слой получает сигналы от символьного слоя и также является слоем Гроссберга. Выходом слоя является вектор эффекторов – элементов, активность которых управляет заданными параметрами в модели синтеза. Связь эффекторов с параметрами модели синтеза осуществляется через карту эффекторов. Этот слой позволяет сопоставить каждому нейрону символьного слоя (а следовательно, и каждому символу алфавита) некоторый вектор эффекторов (а следовательно, и определенный синтезируемый звук). Обучение этого слоя аналогично символьному слою.
Обучение нейросети состоит из трех этапов. Сначала системе предъявляется только образцы звуков, при этом во входном слое формируются нейронные ансамбли, ядрами которых являются предъявляемые образцы. Затем предъявляются звуки и соответствующие им символы алфавита. При этом происходит ассоциация нейронов входного уровня с нейронами символьного слоя. На последнем этапе система обучается синтезу. При этом системе не предъявляются никакие образцы, а используется накопленная на предыдущих этапах информация. Используется механизм стохастического обучения: нейроны эффекторного слоя подвергаются случайным изменениям, затем генерируется звук, он распознается и результат сравнивается с тем символом, для которого был сгенерирован звук. При совпадении изменения фиксируются. Этот процесс повторяется до тех пор, пока не будет достигнута правильная генерация всех звуков.
Зачем в правиле обучения слоя Кохонена (6) присутствует коэффициент ? Если бы он был равен 1, то для каждого входного вектора вектор связей активного нейрона приравнивался бы к нему. Как правило, для каждого нейрона существует множество входных сигналов, которые могли бы его активировать, и его вектор связей постоянно менялся бы. Если же <1, на каждый входной сигнал вектор связей реагирует незначительно. Уменьшая в процессе обучения, мы в конце обучения получим статистическое усреднение схожих входных сигналов. С этой же целью вводятся скорости обучения во всех остальных обучающих правилах.
Чем определяется скорость обучения? Здесь главную роль играет порядок предъявления образцов. Допустим, имеется большая обучающая выборка, последовательным предъявлением элементов которой обучается нейросеть. Если скорость обучения велика, то уже на середине этой выборки нейросеть «забудет» предыдущие элементы. А если каждый образец предъявляется подряд много раз, то уже на следующем образце нейросеть забудет предыдущий. Таким образом, главный критерий выбора скоростей обучения – незначительное изменение связей в пределах ВСЕЙ обучающей выборки. Но не следует забывать, что время обучения обратно пропорционально скорости обучения. Так что здесь необходимо искать компромисс.
Запоминание редко встречающихся элементов
Описанный выше алгоритм обучения хорош для часто повторяющихся сигналов. Если же сигнал встречается редко на фоне всей обучающей выборки, он просто не будет запомнен. В таком случае необходимо привлечение механизма внимания [5]. При появлении неизвестного нейросети образца скорость обучения многократно возрастает и редкий элемент запоминается в нейросети. В разрабатываемой системе обучающая выборка строится искусственно, поэтому такой проблемы не возникает, и механизм внимания не реализован. Необходимость механизма внимания появляется при обучении в естественных условиях, когда обучающая выборка заранее не предсказуема.
Проблемы, возникающие при обучении слоя Кохонена
Для исследования динамики обучения и свойств слоя Кохонена был создан инструмент «Модель нейросети», в котором моделируется слой Кохонена в двумерном сигнальном пространстве (Рис 6).
1. Начальные значения весов 2. Веса после обучения
Рис.6. Моделирование слоя Кохонена
В модели создается нейросеть с двумя входами, так что она способна классифицировать входные вектора в двумерном сигнальном пространстве. Хоть функционирование такой нейросети и отличается от функционирования нейросети в сигнальном пространстве с гораздо большей размерностью, основные свойства и ключевые моменты данного нейросетевого алгоритма можно исследовать и на такой простой модели. Главное преимущество – это хорошая визуализация динамики обучения нейросети с двумя входами. В ходе экспериментов с этой моделью были выявлены следующие проблемы, возникающие при обучении нейросети.
1. выбор начальных значений весов.
Так как в конце обучения вектора весов будут располагаться на единичной окружности, то в начале их также желательно отнормировать на 1.00. В моей модели вектора весов выбираются случайным образом на окружности единичного радиуса (рис. 6.1).
2. использование всех нейронов.
Если весовой вектор окажется далеко от области входных сигналов, он никогда не даст наилучшего соответствия, всегда будет иметь нулевой выход, следовательно, не будет корректироваться и окажется бесполезным. Оставшихся же нейронов может не хватить для разделения входного пространства сигналов на классы. Для решения этой проблемы предлагается много алгоритмов ([1],[8]). в моей работе применяется правило «желания работать»: если какой либо нейрон долго не находится в активном состоянии, он повышает веса связей до тех пор, пока не станет активным и не начнет подвергаться обучению. Этот метод позволяет также решить проблему тонкой классификации: если образуется группа входных сигналов, расположенных близко друг к другу, с этой группой ассоциируется и большое число нейронов Кохонена, которые разбивают её на классы (рис. 6.2). Правило «желания работать» записывается в следующей форме: