Тип работы:
Предмет:
Язык работы:


Эффективная параллельная реализация нейронной сети

Работа №59232

Тип работы

Бакалаврская работа

Предмет

информационные системы

Объем работы28
Год сдачи2016
Стоимость4220 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
61
Не подходит работа?

Узнай цену на написание


Введение 2
2 Постановка задачи 3
3 Обзор используемых понятий 3
3.1 Рекуррентная нейронная сеть 3
3.2 Целевые функции 5
3.3 Алгоритмы оптимизации 7
3.3.1 Градиентный спуск 8
3.3.2 Расширенный фильтр Калмана 8
3.3.3 Алгоритм 1-BFGS 8
3.4 Вычисление градиента целевой функции 9
3.4.1 Обратное распространение ошибки сквозь время ... 9
3.4.2 Рекуррентное обучение в реальном времени 11
4 Платформа для параллельных вычислений CUD А 12
5 Существующие реализации 12
5.1 CURRENNT 13
5.2 Реализация Michal Cernansky 14
5.3 Caffe 14
5.4 Nvidia CuDNN 14
5.5 Microsoft CNTK 14
6 Реализация 14
7 Эксперименты 15
7.1 Сравнение скорости тренировки 16
7.2 Сравнение качества тренировки 18
8 Заключение 19
9 Приложение


В настоящее время нейронные сети используются в широком спектре задач от распознавания текста на изображениях до детектирования частиц в коллайдерах[1]. Такая универсальность возможна благодаря свойству нейронной сети инкапсулировать нелинейные зависимости и наличию эффективных алгоритмов тренировки нейронной сети.
Одно из ключевых свойств нейронной сети это тип связи между её нейронами; различают:
• Сети прямого распространения (простой перцептрон, свёрточные нейронные сети) [2],
• Рекуррентные нейронные сети[3],
• Самоорганизующиеся карты[4] и другие.
В данной работе рассматриваются только рекуррентные нейронные сети с двумя вариантами рекуррентных слоёв: простой рекуррентный слой и слой LSTM(long short-term memory). Рекуррентные нейронные сети за счёт наличия связей между нейронами скрытого слоя могут превосходить сети прямого распространения в качестве работы, что и наблюдается на некоторых классах задач[5, 6]. Как правило, рекуррентные нейронные сети выигрывают у сетей прямого распространения в случае, когда данные получены из какого-либо последовательного процесса, что имеет место в задачах распознавания речи, автоматического перевода и генерации текста.
Тем не менее рекуррентные сети сложнее в применении, так как обычно требуют большего количества тренировочных данных и имеют более сложную структуру, что в том числе влечёт серьёзное увеличение времени, необходимого для обучения по сравнению с сетями прямого распространения. Кроме того, структура рекуррентных сетей задаёт некоторые ограничения на распараллеливание в связи наличием рекуррентных связей в слоях[7], но не исключает его.
Так как в процессе тренировки и использования натренированной нейронной сети интенсивно используются операции над матрицами и векторами, эти процессы могут быть существенно ускорены с использованием графического процессора (GPU) для вычислений, в частности с использованием платформы Nvidia CUDA[8], для которой такие операции имеют эффективные массово-параллельные реализации, что и продемонстрировано в работах[9, 10].
На сегодняшний день количество публично доступных параллельных реализаций рекуррентных нейронных сетей невелико[11, 7, 12, 13, 14], при этом исходный код некоторых из них закрыт.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Таким образом в ходе работы были рассмотрены различные подходы к построению и тренировке рекуррентных нейронных сетей, проведён анализ существующих параллельных реализаций рекуррентных нейронных сетей. В одну из таких параллельных реализаций добавлена новая функциональность, а именно простой рекуррентный слой и алгоритм тренировки 1-BFGS.
В ходе экспериментов выяснилось, что на выбранном наборе данных эффективнее проводить тренировку нейронной сети с помощью стохастического градиентного спуска, нежели с помощью алгоритма sl-BFGS, так как время одной итерации sl-BFGS существенно превосходит время итерации стохастического градиентного спуска, нивелируя выигрыш в увеличении точности после каждой итерации.
Также данная работа ещё раз иллюстрирует превосходство нейронных сетей с LSTM-слоями над сетями на основе простого рекуррентного слоя, обусловленное способностью LSTM-слоя моделировать отдалённые зависимости в данных. Тем не менее, простой рекуррентный слой используется в современных исследованиях[18] ввиду низкого времени тренировки, так что выполненная реализация может оказаться полезной.
Хотя работа над поставленными задачами закончена, исследование можно продолжить, например, реализовав дополнительные алгоритмы тренировки, например AdaGrad, который, согласно работе[22], показывает более высокую скорость тренировки, чем стохастический градиентный спуск на рекурретных нейронных сетях.



[1] Bernard Widrow, David E. Rumelhart, and Michael A. Lehr. Neural networks: Applications in industry, business and science. Commun. ACM, 37(3):93-105, March 1994.
[2] Anil К Jain, Jianchang Mao, and KM Mohiuddin. Artificial neural networks: A tutorial. Computer, (3):31—44, 1996.
[3] Ilya Sutskever. Training recurrent neural networks. PhD thesis, University of Toronto, 2013.
[4] Fernando Bayao, Victor Lobo, and Marco Painho. Self-organizing maps as substitutes for k-means clustering. In Computational Science-ICCS 2005, pages 476-483. Springer, 2005.
[5] MN Karim and SL Rivera. Comparison of feed-forward and recurrent neural networks for bioprocess state estimation. Computers & chemical engineering, 16:S369-S377, 1992.
[6] Martin Sundermeyer, Ilya Oparin, Jean-Luc Gauvain, Ben Freiberg, Ralf Schluter, and Hermann Ney. Comparison of feedforward and recurrent neural network language models. In Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on, pages 8430-8434. IEEE, 2013.
[7] Felix Weninger. Introducing currennt: The munich open-source cuda recurrent neural network toolkit. Journal of Machine Learning Research, 16:547-551, 2015.
[8] John Nickoils, Ian Buck, Michael Garland, and Kevin Skadron. Scalable parallel programming with cuda. Queue, 6(2):40—53, March 2008.
[9] Kyoung-Su Oh and Keechul Jung. Gpu implementation of neural networks. Pattern Recognition, 37(6): 1311-1314, 2004.
[10] Boxun Li, Erjin Zhou, Bo Huang, Jiayi Duan, Yu Wang, Ningyi Xu, Jiaxing Zhang, and Huazhong Yang. Large scale recurrent neural network on gpu. In Neural Networks (IJCNN), 20 if International Joint Conference on, pages 4062-4069. IEEE, 2014.
[11] Michal Ceriiansky. Training recurrent neural network using multistream extended kalman filter on multicore processor and cuda enabled graphic processor unit. In Cesare Alippi, Marios Polycarpou, Christos Panayiotou, and Georgios Ellinas, editors, Artificial Neural Networks - ICANN 2009, volume 5768 of Lecture Notes in Computer Science, pages 381-390. Springer Berlin Heidelberg, 2009.
[12] Chris Basoglu Guoguo Chen Scott Cyphers Amit Agarwal, Eldar Akchurin et al. An introduction to computational networks and the computational network toolkit. Technical Report MSR-TR-2014-112, August 2014.
[13] Sharan Chetlur, Cliff Woolley, Philippe Vandermersch, Jonathan Cohen, John Tran, Bryan Catanzaro, and Evan Shelhamer. cudnn: Efficient primitives for deep learning. arXiv preprint arXiv: Ц10.0759, 2014.
[14] Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv preprint arXiv:lf08.5093, 2014.
[15] Sepp Hochreiter and Jurgen Schmidhuber. Long short-term memory. Neural computation, 9(8): 1735-1780, 1997.
[16] Mike Schuster and Kuldip К Paliwal. Bidirectional recurrent neural networks. Signal Processing, IEEE Transactions on, 45(11):2673—2681, 1997.
[17] Paul J Werbos. Backpropagation through time: what it does and how to do it. Proceedings of the IEEE, 78(10): 1550—1560, 1990.
[18] Alex Graves and Navdeep Jaitly. Towards end-to-end speech recognition with recurrent neural networks. In Proceedings of the 31st International Conference on Machine Learning (ICML-lf), pages 1764-1772, 2014.
[19] Jorge Nocedal and Stephen Wright. Numerical optimization. Springer Science & Business Media, 2006.
[20] Alex Graves. Rnnlib: A recurrent neural network library for sequence learning problems, http://sourceforge.net/projects/rnnl/.
[21] John S Garofolo, Lori F Lamel, William M Fisher, Jonathan G Fiscus, and David S Pallett. Darpa timit acoustic-phonetic continous speech corpus cd-rom. nist speech disc 1-1.1. NASA STI/Recon Technical Report N, 93, 1993.
[22] Hieu Pham, Zihang Dai, and Lei Li. On optimization algorithms for recurrent networks with long short-term memory. Momentum, 1:0-6.


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ