Научная статья на тему 'Применение технологии nvidia CUDA для обучения и декодирования Скрытых Марковских моделей'

Применение технологии nvidia CUDA для обучения и декодирования Скрытых Марковских моделей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
770
183
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАСПОЗНАВАНИЕ РЕЧИ / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / СКРЫТЫЕ МАРКОВСКИЕ МОДЕЛИ / АЛГОРИТМ ВИТЕРБИ / АЛГОРИТМ БАУМА-ВЕЛЧА / NVIDIA CUDA / SPEECH RECOGNITION / PARALLEL COMPUTING / HIDDEN MARKOV MODELS / VITERBI ALGORITHM / BAUM-WELCH RE-ESTIMATION ALGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зацепин Павел Михайлович, Гефке Денис Алексеевич

Актуальность работы обусловлена необходимостью оптимизации алгоритмов обработки больших речевых баз данных при разработке качественных систем автоматического распознавания речи. Развитие современных многоядерных процессоров, в частности графических процессоров GPU, позволяет получить существенный прирост производительности при реализации сложных ресурсоемких алгоритмов цифровой обработки сигналов и значительно сократить время обработки данных. Цель работы: оптимизация алгоритмов обучения (Baum-Welch re-estimation) и декодирования (Витерби) Скрытых Марковских Моделей с помощью технологии параллельного программирования NVIDIA CUDA и оценка прироста производительности относительно центрального процессора. Методы исследования: определение участков алгоритмов обучения и декодирования Скрытых Марковских Моделей, подходящих для эффективной параллельной реализации с учетом особенности программной модели CUDA, с последующей реализацией. Результаты: Получена практическая параллельная реализация алгоритмов обучения и декодирования Скрытых Марковских Моделей с помощью графического процессора GPU. Произведена оценка прироста производительности относительно центрального процессора для различных параметров модели (количества состояний и размерности параметрического вектора). Результаты данной работы могут быть полезны как инженерам, работающим над созданием и улучшением систем автоматического распознавания речи, так и исследователям, работающим в области обработки сигналов и искусственного интеллекта.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Зацепин Павел Михайлович, Гефке Денис Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The urgency of the discussed issue is caused by the need of optimization of huge speech corpus’s processing algorithms required for developing robust automatic speech recognition systems. The evolution of modern multicore processors, specifically graphical processor units GPU, allows improving sufficiently the performance of difficult and resource-intensive digital signal processing algorithms and reducing sufficiently a data processing time. The main aim of the study is to optimize education (Baum-Welch re-estimation) and decoding (Viterbi) algorithms of Hidden Markov Models by parallel programming technology NVIDIA CUDA and to estimate performance increase in comparison within the CPU. The methods used in the study: the search of education and decoding algorithm’s parts suitable for effective parallel realization by NVIDIA CUDA and its implementation. The results: The authors have developed parallel realization of education and decoding Hidden Markov Models algorithms by GPU and have estimated the performance increase in comparison within the CPU for different model’s parameters (the number of model state and dimension of a feature vector). The results of the paper can be used both by engineers developing and improving the automatic speech recognition systems and by explorers working on a digital signal processing and artificial intelligence systems.

Текст научной работы на тему «Применение технологии nvidia CUDA для обучения и декодирования Скрытых Марковских моделей»

УДК 004.934

ПРИМЕНЕНИЕ ТЕХНОЛОГИИ NVIDIA CUDA ДЛЯ ОБУЧЕНИЯ И ДЕКОДИРОВАНИЯ СКРЫТЫХ МАРКОВСКИХ МОДЕЛЕЙ

Зацепин Павел Михайлович,

канд. физ.-мат. наук, доцент, заведующий кафедрой вычислительной техники и электроники Физико-технического факультета Алтайского Государственного университета, Россия, 656049, г. Барнаул, пр. Ленина, 61.

E-mail: [email protected]

Гефке Денис Алексеевич,

аспирант кафедры вычислительной техники и электроники Физико-технического факультета Алтайского Государственного университета, Россия, 656049, г. Барнаул, пр. Ленина, 61. E-mail: [email protected]

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

Цель работы: оптимизация алгоритмов обучения (Baum-Welch re-estimation) и декодирования (Витерби) Скрытых Марковских Моделей с помощью технологии параллельного программирования NVIDIA CUDA и оценка прироста производительности относительно центрального процессора.

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

Ключевые слова:

Распознавание речи, параллельные вычисления, Скрытые Марковские Модели, NVIDIA CUDA, алгоритм Витерби, алгоритм Баума~Велча.

Введение

Математический аппарат Скрытых Марковских Моделей (СММ) представляет собой универсальный инструмент моделирования стохастических процессов, для описания которых не существует точных математических моделей, а их свойства меняются с течением времени в соответствии с некоторыми статистическими законами. Наиболее широкое применение СММ нашли при решении таких задач, как распознавание речи, анализа последовательностей ДНК и ряда других [1].

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

Применение современных технологий параллельного программирования, в частности графиче-

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

Целью данной работы является оптимизация алгоритмов обучения Скрытых Марковских Моделей (Ваит^е1сЬ re-estemation и ^та^-Ьаск-ward) и алгоритма декодирования (обобщенный алгоритм Витерби) с помощью графического процессора (CUDA) и оценка прироста производительности относительно центрального процессора (СРи).

Структура Скрытой Марковской Модели

В основе Скрытой Марковской Модели лежит конечный автомат, состоящий из N состояний. Переходы между состояниями в каждый дискретный момент времени t не являются детерминированными, а происходят в соответствии с некоторым вероятностным законом и описываются матрицей вероятностей переходов Лщ. Схематическое изображение диаграммы переходов между состояниями в СММ приведено на рис. 1 [4].

При каждом переходе в новое состояние I в момент времени t происходит генерация выходного значения в соответствии с функцией распределения Результатом работы СММ является последо-

вательность параметрических векторов {x1,x2,^,xT} длиной T [5].

Рис. 1. Структурная схема переходов в СММ

На практике, как правило, решается обратная задача: при известной структуре Марковской Модели требуется определить, какова вероятность, что наблюдаемая последовательность {xj,x2,...,xT} может быть сгенерирована данной СММ [6].

Таким образом, основными параметрами СММ являются:

1) N - количество состояний;

2) матрица вероятностей переходов ANN между состояниями;

3) N функций плотности вероятностиf(x). Функция плотности вероятности f(x) описывается, как правило, взвешенной Гауссовой смесью:

M

f (X ) = £ WiPi (X ),

/=1

где M - количество компонент смеси; wt - вес компонента смеси, аp (x) - нормальное распределение вероятностей для .D-мерного случая:

*(Х) = еХР{"2(x-*,) 1Г(x-V,)]■

где v - вектор математического ожидания; -матрица ковариации.

Работа со Скрытыми Марковскими Моделями, как и с любой другой адаптивной системой, осуществляется в 2 этапа: обучение - алгоритм Бау-ма-Велча (Baum-Welch re-estemation), декодирование - алгоритм максимума правдоподобия (Ви-терби) [7].

В качестве параметрического вектора чаще всего используют мел-частотные кепстральные коэффициенты [8] (MFCC - mel-frequency cepstral coefficients), либо коэффициенты линейного предсказания [9] (LPC - linear prediction coefficients), а также их первые и вторые производные. Данные преобразования, в силу их гармонической природы, позволяют с высокой достоверностью локализовать вокализованные составляющие сигнала (гласные звуки) [10]. В тоже время, речевой сигнал имеет более сложную природу и помимо вокализованных звуков содержит ударные, шипящие и прочие составляющие. Поэтому для обработки речевого сигнала представляется перспективным применение других операторов, например Вейвлет-преобразований [11], рассмотрение которых выходит за рамки данной работы, т. к. реализованные алгоритмы являются универсальными и не зависят от природы параметрического вектора.

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

В настоящее время Скрытые Марковские Модели являются основой большинства успешных систем автоматического распознавания речи. Это связано с наличием ряда важных свойств, которыми обладают СММ по сравнению с основной альтернативной моделью классификации - искусственными нейронными сетями [12, 13]:

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

2) обучение ИНС при построении систем автоматического распознавания речи происходит, как правило, с учителем и требует точной временной разметки на фонемы обучающей выборки, что является чрезвычайно трудоемкой задачей для современных речевых баз данных. В тоже время обучение СММ может производиться без точной временной разметки;

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

В то же время СММ обладают существенным недостатком по сравнению с ИНС - слабой дискриминантной мощностью, т. е. возможностью разделять классы образов. Особенно это проявляется при обучении с использованием критерия максимума правдоподобия. В связи с этим в последнее время исследования в области построения систем автоматического распознавания речи направлены на поиск гибридных моделей, объединяющих достоинства СММ и ИНС [14].

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

Краткое описание алгоритма обучения Скрытой Марковской Модели

Процесс обучения Скрытой Марковской Модели заключается в определении на основе набора обучающих образцов следующих параметров:

1) матрицы вероятностей переходов между состояниями Аш;

2) параметров Гауссовых смесей (математическое ожидание, матрица ковариации и весового коэффициента) для каждого состояния.

Для решения этих задач совместно применяются два итерационных алгоритма: forward-backward и Baum-Welch re-estemation [2].

В алгоритме forward-backward вводятся две функции: прямого распространения вероятности a(t) и обратного P(t).

Значение величины aj(t) представляет собой вероятность наблюдения последовательности векторов {xj,x2,...,xT} и нахождения СММ в состоянии j в момент времени t:

aj(t) = P(Xi,x2,..., X, | state, = j). (1)

Величины aj(t) и a(t-1) связаны итерационным выражением:

aj(t) =

Z a(t -1) Aj

f, ( x )■

(2)

Обратная функция р^) представляет собой вероятность нахождения СММ в состоянии ] в момент времени I с последующим наблюдением последовательности |хж х№2,...,хт|:

в(О = р(Х,+1,х1+2,..., Х | = ]). (3)

Величины р^) и в^+1) связаны аналогичным тождеством:

в(t) = Z Af (xt +i)e (t +1).

(4)

1

A =

Z ,=1 P Z « a (t) Ajf (x;+1)Pr (t+1)

(5)

Для каждого состояния ; и для каждой компоненты Гауссовой смеси т математическое ожидание, матрица ковариации и вес определяются следующими выражениями

Z1, Z!, j (t) x:

zI z h j (t) ’

(6)

Z Z T= 1 j (t)( x: -Vjm )( x -Vjm )T

ZR ZT: L- (t)

sL^ :=1^ t=1 Jmy '

w Z1. Z ^! j (t)

j = ZR=1 ZT=1 Lj(t).

(7)

(8)

Величины а(Ь) и Р(1;) позволяют определить вероятность нахождения СММ в состоянии ] в момент времени I при наблюдении последовательности |х^1,х^2,***,хт}:

11)=р а в)’

где Р=аЖ^) - общая вероятность наблюдения последовательности |х(+1,х(+2,...,хт| данной СММ.

Алгоритм Баума-Велча (Bаum-Welch re-este-таМоп) на очередном шаге обучения позволяет, используя вышеприведенные выражения, сделать переоценку параметров модели [2].

Пусть имеется Ё обучающих образцов, тогда вероятность перехода из состояния I в состояние ] определяется как:

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

Алгоритм максимума правдоподобия (Витерби)

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

Pn(t) = Pi(t -1) + q2

Pl2(t) = Pi(t -1) + а22

Pin (t) = Pn (t “Ч + an2

P2(t) = max[pii(t), P22 (t)v? Pin(t)]

( S1 ©

-Ж S2 )

П2 ( Sn 1 t-1 © t

Рис. 2. Алгоритм декодирования Витерби

В момент времени t осуществляется переход в состояние I из всех предыдущих состояний, после чего выбирается последовательность, имеющая максимальную суммарную вероятность в моменты времени ^1 и t. Время выполнения алгоритма пропорционально длине последовательности Ь и квадрату количества состояний N. Алгоритм имеет сложность О (Ж2Ь).

Декодирование последовательности одной моделью не является ресурсоемкой задачей. Однако при наличии сложной языковой модели СММ объединяются вместе в виде графа, в зависимости от последовательностей следования фонем, и процесс декодирования осуществляется одновременно для множества моделей. В связи с чем алгоритмическая сложность задачи резко возрастает [3].

Особенности параллельного программирования

на CUDA

Применение современных графических процессоров позволяет получить многократный прирост производительности при решении ряда научных и технических задач. Однако для достижения наилучших результатов необходимо учитывать ряд особенностей [15-18]:

i=2

1) графический процессор (GPU) состоит из нескольких мультипроцессоров, которые, в свою очередь, состоят из ядер. Каждое ядро одновременно выполняет 32 потока (warp). Например, NVidia GeForce GTX 480 состоит из 15x32=480 ядер и параллельно может выполнять до 15360 легковесных потоков. Потоки объединяются в блоки и сетки блоков. Каждый поток имеет идентифицирующие его координаты;

2) максимальной производительности удается достичь при выполнении однотипных действий над большим числом обрабатываемых единиц данных;

3) архитектура памяти имеет сложную организацию: глобальная память (объемная, но медленная), локальная память, разделяемая память (быстрая), память констант и т. д.;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4) особенности доступа к памяти: для получения максимальной пропускной способности все запросы к памяти должны быть выровнены. Подробное описание и особенности применения

графических процессоров можно найти в соответствующих руководствах [17].

Реализация декодера СММ на CUDA

Пусть N=(8,16,32) - количество состояний модели; L=50 - длина последовательности; С=32 -число одновременно декодируемых последовательностей одной СММ; Nnn - матрица вероятностей переходов между состояниями; BlN - матрица вероятности наблюдения вектора последовательности XL в состоянии N (C матриц рассчитываются заранее).

Для декодирования одной последовательности используются N параллельных потоков, каждый из которых декодирует свое состояние 1...N. Данная схема изображена на рис. 3. Итоговая вероятность выбирается как максимум вероятностей, полученных каждым потоком. Сложность алгоритма для одного потока - O (NxL) [19].

Один вычислительный блок CUDA одновременно декодирует C последовательностей (для одной СММ). Таким образом, для декодирования СММ из 32 состояний задействовано NxC=1024 потока, что соответствует максимальному количеству потоков на один мультипроцессор для CUDA версии 2.0.

Каждый мультипроцессор используется для декодирования отдельной СММ. В итоге на GPU параллельно происходит декодирование 32x15=480 последовательностей для видеопроцессора NVidia GeForce GTX 480.

Разделяемая (быстрая) память используется для хранения матрицы вероятностей A и промежуточных вероятностей для N состояний. Объем необходимой памяти [19] - O (N2+NxC).

Реализация алгоритма обучения СММ

с помощью CUDA

Пусть R - количество обучающих образцов для одной СММ (32); N - количество состояний модели (8, 16, 32); M - количество компонент Гауссовой смеси (16); D - размерность параметрического вектора (16, 32).

Предварительный анализ показал, что в процедуре forward-backward основную долю времени (порядка 95 %), при вычислении вероятностей aj(t) и ej(t), занимает расчет вероятности наблюдения вектора xt в состоянии j для модели r - f(xrt). В тоже время эта часть вычислений является менее сложной с алгоритмической точки зрения [2].

Размерность параметрического вектора D выбиралась равной warp или половине warp (количеству потоков, выполняемых ядром CUDA одновременно). Это же количество потоков (D) использовалось для реализации матричных операций при вычислении функции плотности вероятности

Pi(x) =

1

D/2 1/2

(2п) 7

exp

1

2( x -Ii)Т 7-\x -I)

где вектора x, i имеют размерность D, и матрица 7- имеет размерность DxD.

Для видеопроцессора GeForce GTX 4В0 каждый мультипроцессор содержит 32 ядра CUDA. Таким образом, на одном мультипроцессоре производится одновременный расчет значений функции вероятности для 32 последовательностей в одном из состояний. Вычисления производятся по всей длине последовательности - т. В свое время, каждый мультипроцессор обрабатывает одно из N состояний. Итоговая схема расчета приведена на рис. 4.

Поток 1 Поток 2

Рис. 3. Параллельная схема декодирования

г=0; 32 потока — fx)

1=1; 32 потока -fx)

г=31; 32 потока - fx)

г=0; 32 потока - fx)

г=1; 32 потока - fx)

г=31; 32 потока - f(x)

г=0; 32 потока -fx)

г=1; 32 потока -fx)

г=31; 32 потока - fx)

1 Мультипроцессор - 2 Мультипроцессор - N

Состояние - 2 Состояние - N

Рис. 4. Параллельная схема вычисления значений вероятности модели во всех состояниях для всех обучающих образцов

Мультипроцессор -Состояние - 1

В результаты работы алгоритма получается массив вероятностейДх,(), который затем используется для вычисления окончательных а(Ь) и в(Ь) на СРи в соответствии с итеративными формулами (1-4). В процессе вычисления одновременно задействовано 32x32x16=16384 потока.

В алгоритме Баума-Велча (формулы 5-8) схема распределения вычислений по ядрам аналогична. Векторные и матричные операции для каждого обучающего образца используют по 32 потока (размерность параметрического вектора). При этом каждый мультипроцессор обрабатывает одновременно 32 обучающих образца. После чего осуществляется редуцирование (свертка) для окончательного расчета величин математического ожидания /лЯ и матрицы ковариации аЯ. Каждый мультипроцессор независимо обрабатывает одно из Ы-состояний модели.

Расчет вероятностей переходов между состояниями Ап и весов компонент Гауссовых смесей wiЯ осуществляется с помощью СРи, т. к. все входящие в формулы (5) и (8) величины были предварительно рассчитаны, и для получения окончательных значений не требуются существенные вычислительные затраты [20].

Тестирование

Для тестирования алгоритма использовалась вычислительная машина следующей конфигурации:

Таблица 1. Результаты тестирования алгоритмов forward-backward и Baum~We!ch re-estimation

1

Intel Core

Центральный процессор i7 930 2,8 ГГц.

Операционная система - Windows 7 64-Bit. Оперативная память - Kingston 12 Gb RAM DDR3.

Видеокарта - NVidia GeForce GTX 580 (1536 Mb, 512 ядер CUDA).

Версия CUDA - 4.0.

Компилятор Microsoft Visual Studio 2008 (векторизация SSE2).

Тип данных - double (64 разряда).

Результаты тестирования алгоритмов обучения [19] и декодирования [20] приведены в табл. 1,

2 соответственно.

N D CPU FB, GPU CPU/GPU CPU GPU CPU/GPU

с. FB, с. FB BW, с. BW, с. BW

8 16 8,688 1,494 5,815 21,926 5,118 4,284

16 16 17,286 1,965 8,797 44,753 5,890 7,598

32 16 33,881 3,778 8,968 95,077 11,574 8,215

8 32 27,578 2,594 10,631 72,714 8,276 8,786

16 32 55,241 3,153 17,520 146,278 9,537 15,338

32 32 109,676 6,006 18,261 302,857 18,473 16,395

Таблица 2. Результаты тестирования алгоритма декодирования СММ

Число состояний (N) Про- цес- сор Коли- чество СММ Количество декодируемых последовательностей Время, мс CPU/GPU

8 1 1,54 50,7

64 1,22

16 CPU 1 32 5,70 41,9

64 3,73

32 1 2,120 58,2

64 1,930

Примечание к табл. 1, 2: FB - Forward-Backward. BW -Baum~We!ch. CPU/GPU - отношение времени выполнения CPU к GPU. Время пересылки в память GPU включено в общее время. Наибольший прирост производительности достигается при размере параметрического вектора D=32 и N=32 состояниях модели, т. к. в этом случае задействованы все ресурсы GPU.

Выводы

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

Однако с практической точки зрения целесообразно оптимизировать лишь те участки алгоритма, на которых выполняются ресурсоемкие матричные и векторные операции, в частности вычисление значений функции Гауссовой смеси для обрабатываемых последовательностей и расчет матрицы ковариации. Итеративная часть алгоритма for-

ward-backward (формулы 2 и 4) занимает малую часть от общего времени вычисления и сложна в реализации на GPU, поэтому ее оптимизация не представляется целесообразной. Такой же вывод можно сделать относительно расчета матрицы вероятностей переходов между состояниями и весов компонент Гауссовой смеси (формулы 5 и 8).

СПИСОК ЛИТЕРАТУРЫ

1. Jurafsky D., Martin J.H. Speech and Language processing. 2nd ed. - Englewood Cliffs, New Jersey: Pretince Hall Inc., 2008. - 302 p.

2. Hidden Markov Model Toolkit Book. - Cambridge: Cambridge University Engineering Department, 2001-2009. - 399 p.

3. Rabiner L.R. A tutorial on Hidden Markov Models and selected applications in speech recognition // Proceedings of The IEEE. -1989. - V. 77. - №2. - P. 257-286.

4. Rabiner L.R., Juang B.H. Fundamentals of Speech Recognition. -Englewood Cliffs, New Jersey: Prentice-Hall, Inc., 1993. - 553 p.

5. Rabiner L.R., Levinson S.E. Isolated and Connected word Recognition - Theory and Selected Applications // IEEE Transactions on communications. - 1981. - V. 29. - № 5. - P. 301-315.

6. Vaseghi S.V. Advanced digital signal processing and noise reduction. 3rd ed. - Chichester, England: John Wiley & Sons, 2006. -453 p.

7. Huandg Xuedong. Spoken language processing: a guide to theory, algorithm, and system development. - Englewood Cliffs, New Jersey: Prentice Hall Inc., 2001. - 480 p.

8. Айфичер Э.С., Джервис Б.У. Цифровая обработка сигналов: практический подход, 2-е изд. / пер. с англ. - М.: Изд. дом «Вильямс», 2004. - 992 с.

9. Vaidyanathan P.P. The Theory of Linear Prediction. - California: Morgan & Claypool, 2008. - 198 p.

10. Сорокин В.Н., Цыплихин А.И. Сегментация и распознавание гласных // Информационные процессы. - 2004. - Т. 4. -№ 2. - С. 202-220.

11. Гефке Д.А., Зацепин П.М. Применение нейронных сетей для классификации сигналов звукового диапазона // Нейроинформатика, ее приложения и анализ данных: XVII Всеросс. семинар. - Красноярск, 2009. - С. 37-40.

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

12. Хайкин С. Нейронные сети: полный курс, 2-е изд. / пер. с англ. - М.: Изд. дом «Вильямс», 2006. - 1104 с.

13. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы / пер. с польск. И.Д. Рудинского. - М.: Телеком, 2006. - 452 с.

14. Маковкин К.А. Гибридные модели - Скрытые марковские модели/Многослойный персептрон - и их применение в системах распознавания речи // Речевые технологии. - 2012. - № 3. -С. 58-83.

15. Сандерс Дж., Кэндрот Э. Технология CUDA в примерах. Введение в программирование графических процессоров. - М.: ДМК Пресс, 2011. - 256 c.

16. Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. - М.: ДМК Пресс, 2011. - 232 c.

17. NVIDIA CUDA SDK 4.0 // NVIDIA Corporation. URL: http://www.nvidia.com/object/cuda_sdks.html (дата обращения: 10.07.2013).

18. Гефке Д.А. Применение технологии CUDA для частотного разделение каналов широкополосного тракта // Многоядерные процессоры и параллельное программирование: Регион. науч-но-практ. конф. - Барнаул, 2011. - С. 12-15.

19. Гефке Д.А., Зацепин П.М. Применение технологии CUDA для декодирования Скрытых Марковских Моделей // Многоядерные процессоры, параллельное программирование, ПЛИС, системы обработки сигналов: сборник статей II регион. научно-практ. конф. - Барнаул, 2012. - С. 45-51.

20. Гефке Д.А., Зацепин П.М. Применение технологии CUDA для обучения Скрытых Марковских Моделей // Многоядерные процессоры, параллельное программирование, ПЛИС, системы обработки сигналов: сборник статей III Всеросс. научно-практ. конф. - Барнаул, 2013. - С. 30-39.

Поступила 10.07.2013 г.

UDC 004.934

NVIDIA CUDA APPLICATION TO TRAIN AND DECODE THE HIDDEN MARKOV MODELS

Pavel M. Zatsepin,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Cand. Sc., Altai State University, 61, Lenin Avenue, 656049, Barnaul, Russia.

E-mail: [email protected]

Denis A. Gefke,

Altai State University, 61, Lenin Avenue, 656049, Barnaul, Russia. E-mail: [email protected]

The urgency of the discussed issue is caused by the need of optimization of huge speech corpus's processing algorithms required for developing robust automatic speech recognition systems. The evolution of modern multicore processors, specifically graphical processor units GPU, allows improving sufficiently the performance of difficult and resource-intensive digital signal processing algorithms and reducing sufficiently a data processing time.

The main aim of the study is to optimize education (Baum~Welch re-estimation) and decoding (Viterbi) algorithms of Hidden Markov Models by parallel programming technology NVIDIA CUDA and to estimate performance increase in comparison within the CPU.

The methods used in the study: the search of education and decoding algorithm's parts suitable for effective parallel realization by NVIDIA CUDA and its implementation.

The results: The authors have developed parallel realization of education and decoding Hidden Markov Models algorithms by GPU and have estimated the performance increase in comparison within the CPU for different model's parameters (the number of model state and dimension of a feature vector). The results of the paper can be used both by engineers developing and improving the automatic speech recognition systems and by explorers working on a digital signal processing and artificial intelligence systems.

Key words:

Speech recognition, parallel computing, Hidden Markov Models, NVIDIA CUDA, Viterbi algorithm, Baum-Welch re-estimation algorithm.

REFERENCES

1. Jurafsky D., Martin J.H. Speech and Language processing. 2nd ed. Englewood Cliffs, New Jersey: Pretince Hall Inc., 2008. 302 p.

2. Hidden Markov Model Toolkit Book. Cambridge, Cambridge University Engineering Department, 2001-2009. 399 p.

3. Rabiner L.R. A tutorial on Hidden Markov Models and selected applications in speech recognition. Proceedings of the IEEE. 1989, vol. 77, no. 2, pp. 257-286

4. Rabiner L.R., Juang B.H. Fundamentals of Speech Recognition. Englewood Cliffs, New Jersey: Prentice-Hall, Inc., 1993. 553 p.

5. Rabiner L.R., Levinson S.E. Isolated and Connected word Recognition - Theory and Selected Applications. IEEE Transactions on communications, 1981. vol. 29, no. 5, pp. 301-315.

6. Vaseghi S.V. Advanced digital signal processing and noise reduction. 3rd ed. Chichester, England, John Wiley & Sons, 2006. 453 p.

7. Huandg Xuedong. Spoken language processing: a guide to theory, algorithm, and system development. Englewood Cliffs, New Jersey, Prentice Hall Inc., 2001. 480 p.

8. Ifeachor E.C., Jervis B.W. Digital Signal Processing. A practical approach. 2nd ed. Englewood Cliffs, New Jersey, Pretince Hall Inc., 2004. 992 p.

9. Vaidyanathan P.P. The Theory of Linear Prediction. California, Morgan & Claypool, 2008. 198 p.

10. Sorokin V.N., Tsyplikhin A.I. Segmentatsiya i raspoznovanie glas-nykh [Segmentation and vocal recognition]. Informatsionnye prot-sessy - Informational processes, 2004, vol. 4, no. 2, pp. 202-220.

11. Gefke D.A., Zatsepin P.M. Primenenie neyronnykh setey dlya klassifikatsii signalov zvukovogo diapazona [The application of neural networks for voice signal classification]. NeAroinformati-ka, ee primenenie i analiz dannykh. XVII Vserossiysky seminar [Neuroinformatic, its application and data analyze. XVII Russian conference]. Krasnoyarsk, 2009. pp. 37-40.

12. Haykin S. Neural Networks - A Comprehensive Foundation. 2nd ed. New Jersey, Pearson Education Inc., 1999. 823 p.

13. Rutkovskaya D., Pilinskiy M., Rutkovskiy L. Neironnie sistemy, geneticheskie algoritmy i nechetkie sistemy [Neural networks, genetic algorithms and fuzzy systems]. Moscow, Telekom, 2006. 452 p.

14. Makovkin K.A. Gibridnye modeli - Skrytye Markovskie Modely/ Mnogosloyny pertseptron - i ikh primenenie v sistemakh avtoma-ticheskogo raspoznavaniya rechi [The Hybrid models - Hidden Markov Models/Multi-Layer Perceptron - and its application in automatic speech recognition systems]. Rechevye tekhnologii -Speech Technologies, 2012, no. 3, pp. 58-83.

15. Sanders J., Kandrot E. CUDA by Example: An Introduction to General-Purpose GPU Programming Code. Boston, Addison-Wes-ley Professional, 2010. 312 p.

16. Boreskov A.V., Harlamov A.A. Osnovy raboty s CUDA [Basic usage of CUDA]. Moscow, DMK Publ., 2011. 232 p.

17. NVIDIA CUDA SDK 4.0. NVIDIA Corporation. Avaible at: http://www.nvidia.com/object/cuda_sdks.html (accessed 10 July 2013).

18. Gefke D.A., Zatsepin P.M. Primenenie tekhnology CUDA dlya de-kodirovaniya Skrytykh Markovskikh Modeley [The application of CUDA technology for decoding Hidden Markov Models]. Mnogoy-adernye protsessory, parallelnoe programmirovanie, PLIS, siste-my obrabotki signalov. Sbornik statey III Regionalnoy konferent-sii [Multicore processors, parallel programming, PLD, digital signal processing systems. Paper collection of the III Regional science-practical conference]. Barnaul, 2012. pp. 45-51.

19. Gefke D.A., Zatsepin P.M. Primenenie tekhnology CUDA dlya ob-ucheniya Skrytykh Markovskikh Modeley [The application of CU-DA technology for education of Hidden Markov Models]. Mnogo-yadernye processory, parallelnoe programmirovanie, PLIS, siste-my obrabotki signalov. Sbornik statey III Vserossiyskoy konfe-rentsii [Multicore processors, parallel programming, PLD, digital signal processing systems. Paper collection of the III Russian science-practical conference]. Barnaul, 2013. pp. 30-39

20. Gefke D.A. Primenenie tekhnologii CUDA dlya chastotnogo raz-deleniya kanalov shirokopolosnogo trakta [The application of CUDA technology for frequency-separation of wideband signal]. Mnogoyadernye protsessory i parallelnoe programmirovanie. Re-gionalnaya nauchno-prakticheskaya konferentsiya [Multicore processors and parallel programming. Regional science-practical conference]. Barnaul, 2011. pp. 12-15.

i Надоели баннеры? Вы всегда можете отключить рекламу.