Научная статья на тему 'Ускорение процесса распознавания с помощью нейронной сети и графического процессора'

Ускорение процесса распознавания с помощью нейронной сети и графического процессора Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
442
59
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЙРОННАЯ СЕТЬ / NEURAL NETWORK / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / ARTIFICIAL INTELLIGENCE / ГРАФИЧЕСКИЙ ПРОЦЕССОР / GRAPHICS PROCESSING UNIT / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / PARALLEL COMPUTING / ОБУЧЕНИЕ НЕЙРОННОЙ СЕТИ / NEURAL NETWORK TRAINING / АРХИТЕКТУРА ГРАФИЧЕСКИХ ПРОЦЕССОРОВ / GRAPHICS PROCESSING UNIT ARCHITECTURE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Васильева Анна Станиславовна

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

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

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

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

Текст научной работы на тему «Ускорение процесса распознавания с помощью нейронной сети и графического процессора»

УСКОРЕНИЕ ПРОЦЕССА РАСПОЗНАВАНИЯ С ПОМОЩЬЮ НЕЙРОННОЙ СЕТИ И ГРАФИЧЕСКОГО ПРОЦЕССОРА Васильева А.С. Email: [email protected]

Васильева Анна Станиславовна - магистрант, кафедра вычислительной техники, Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Чувашский государственный университет им. И.Н. Ульянова, г. Чебоксары

Аннотация: статья содержит рекомендации для разработчиков искусственного интеллекта, в частности, для разработчиков нейронных сетей. Кроме того, она может быть полезна разработчикам, использующим для увеличения скорости вычислений параллелизм в графических ускорителях. В качестве примера была использована полносвязная нейронная сеть, в которой алгоритмом обучения является алгоритм обратного распространения ошибки. Технологией для ускорения на графическом процессоре являлся набор программно-аппаратных средств CUDA от компании NVIDIA. Ключевые слова: нейронная сеть, искусственный интеллект, графический процессор, параллельные вычисления, обучение нейронной сети, архитектура графических процессоров.

ACCELERATION OF THE RECOGNITION PROCESS WITH THE NEURON NETWORK AND THE GRAPHIC PROCESSING UNIT

Vasilieva A.S.

Vasilieva Anna Stanislavovna - Undergraduate, COMPUTER ENGINEERING DEPARTMENT, FEDERAL STATE BUDGET EDUCATIONAL INSTITUTION OF HIGHER PROFESSIONAL EDUCATION I.N. ULIANOV CHUVASH STATE UNIVERSITY, CHEBOKSARY

Abstract: the article contains some recommendations for developers and designers of artificial intelligence, for developers of neural networks in particular. In addition, it can be useful to developers who use parallelism in graphics processing units to accelerate computations. As an example, a fully connected neural network (a multiple layer perceptron) was used. The backpropagation algorithm was used to train the network. For computation acceleration the parallel computing platform CUDA invented by NVIDIA was used.

Keywords: neural network, artificial intelligence, graphics processing unit, parallel computing, neural network training, graphics processing unit architecture.

УДК 004.048

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

Для распознавания образов на вход нейронной сети подается изображение, затем вычисляется выход сети. Стоит отметить, что перед подачей данных на вход сети изображение должно быть подготовлено. Такой подготовкой может быть, к примеру, минимизирование данных изображения - преобразование цветного изображения в черно-белое, при этом уменьшится количество и разрядность данных, и вместо трех пикселей нужно будет обрабатывать один. Если выход сети входит в набор заранее обученных образов (сохраненных выходов сети, которые были получены в процессе обучения сети на различных образах), то сеть распознала заданный образ правильно, иначе образ считается не распознанным [1].

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

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

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

Перед тем как переходить к описанию метода ускорения, стоит отметить, что современные графические процессоры имеют несколько уровней памяти: глобальная память (к ней имеют доступ все вычислительные блоки и потоки), локальная память (у каждого вычислительного блока собственная, более быстрая память) и регистровая память (самая быстрая память) [2].

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

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

Не стоит забывать о том, что вычислительные блоки работают параллельно. Поэтому выполняемые операции надо преобразовать в параллельные версии. Однако, параллельно можно вычислять только определенное количество слоев сети. Например, если имеются вычисленные результаты для n слоев, можно параллельно использовать только количество слоев, равное n. Для полного же вычисления сети необходимо использовать барьеры между потоками.

120 100 ВО

АО

го о

О 100 200 300 400 500 600 700 800

Количества образов

Рис. 1. Сравнение скорости работы нейронной сети на CPU и GPU

На рисунке представлен график времени работы нейронной сети (включая цикл обучение и распознавания) на процессоре Intel Core i5 7400 и на графической карте GEFORCE GTX 1050 TI. На графике видно, что при малом количестве образов видеокарта и процессор работают почти одинаково (это обусловлено тем, что помимо вычислений, происходит еще

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

Список литературы /References

1. Уоссермен Ф. Нейрокомпьютерная техника: теория и практика. М.: Мир, 1992. 184 с.

2. Боресков А.В. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учебное пособие. Издательство Московского университета, 2012. 336 с.

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