Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA
Наведено опис глибинних нейронних мереж, коротка теорія побудови, навчання. Розроблено можливості їх реалізації в середовищі ПЛІС XILINX.
Збережено в:
Дата: | 2015 |
---|---|
Автор: | |
Формат: | Стаття |
Мова: | Ukrainian |
Опубліковано: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2015
|
Назва видання: | Комп’ютерні засоби, мережі та системи |
Онлайн доступ: | http://dspace.nbuv.gov.ua/handle/123456789/122853 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Цитувати: | Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA / Т.А. Самолюк // Комп’ютерні засоби, мережі та системи. — 2015. — № 14. — С. 134-140. — Бібліогр.: 3 назв. — укр. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-122853 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-1228532017-07-22T03:03:42Z Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA Самолюк, Т.А. Наведено опис глибинних нейронних мереж, коротка теорія побудови, навчання. Розроблено можливості їх реалізації в середовищі ПЛІС XILINX. Приведено описание глубинных нейронных сетей, краткая теория построения, обучения. Разработаны возможности их реализации в среде ПЛИС XILINX. The description of the deep neural networks, brief theory of building and training are given. Developed their feasibility in the environment of FPGA XILINX. 2015 Article Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA / Т.А. Самолюк // Комп’ютерні засоби, мережі та системи. — 2015. — № 14. — С. 134-140. — Бібліогр.: 3 назв. — укр. 1817-9908 http://dspace.nbuv.gov.ua/handle/123456789/122853 519. 7004. 62 uk Комп’ютерні засоби, мережі та системи Інститут кібернетики ім. В.М. Глушкова НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Ukrainian |
description |
Наведено опис глибинних нейронних мереж, коротка теорія побудови, навчання. Розроблено можливості їх реалізації в середовищі ПЛІС XILINX. |
format |
Article |
author |
Самолюк, Т.А. |
spellingShingle |
Самолюк, Т.А. Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA Комп’ютерні засоби, мережі та системи |
author_facet |
Самолюк, Т.А. |
author_sort |
Самолюк, Т.А. |
title |
Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA |
title_short |
Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA |
title_full |
Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA |
title_fullStr |
Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA |
title_full_unstemmed |
Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA |
title_sort |
глибокі нейромережі та елементи їх реалізації в пліс fpga |
publisher |
Інститут кібернетики ім. В.М. Глушкова НАН України |
publishDate |
2015 |
url |
http://dspace.nbuv.gov.ua/handle/123456789/122853 |
citation_txt |
Глибокі нейромережі та елементи їх реалізації в ПЛІС FPGA / Т.А. Самолюк // Комп’ютерні засоби, мережі та системи. — 2015. — № 14. — С. 134-140. — Бібліогр.: 3 назв. — укр. |
series |
Комп’ютерні засоби, мережі та системи |
work_keys_str_mv |
AT samolûkta glibokínejromerežítaelementiíhrealízacíívplísfpga |
first_indexed |
2025-07-08T22:36:54Z |
last_indexed |
2025-07-08T22:36:54Z |
_version_ |
1837120058924466176 |
fulltext |
Комп’ютерні засоби, мережі та системи. 2015, № 14 134
T. Samolyuk
DEEP NEURAL NETWORK
ELEMENTS AND THEIR
IMPLEMENTATION
IN FPGA XILINX
The description of the deep neural
networks, brief theory of building
and training are given. Developed
their feasibility in the environment of
FPGA XILINX.
Key words: neural networks, ele-
ments off implementation, deep
learning.
Приведено описание глубинных
нейронных сетей, краткая теория
построения, обучения. Разрабо-
таны возможности их реализации
в среде ПЛИС XILINX.
Ключевые слова: нейронные сети,
элементы реализации., глубокое
обучение.
Наведено опис глибинних нейрон-
них мереж, коротка теорія побу-
дови, навчання. Розроблено мож-
ливості їх реалізації в середовищі
ПЛІС XILINX.
Ключові слова: нейронні мережі,
елементи реалізації, глибоке на-
вчання.
Т.А. Самолюк, 2015
УДК 519. 7004. 62
Т.А. САМОЛЮК
ГЛИБОКІ НЕЙРОМЕРЕЖІ
ТА ЕЛЕМЕНТИ ЇХ РЕАЛІЗАЦІЇ
У ПЛІС FPGA
Вступ. В даний час теорія і практика навчан-
ня нейронних мереж переживають справжню
«глибинну революцію», викликану успішним
застосуванням методів Deep Learning (глибо-
кого навчання). Нейронні мережі третього
покоління, на відміну від класичних, другого
покоління мереж 80-90-х років, на основі но-
вої парадигми навчання, дозволили позбути-
ся від ряду проблем, які стримували поши-
рення і успішне застосування традиційних
нейронних мереж. Мережі, навчені за допо-
могою алгоритмів глибокого навчання, не
просто перевершили за точністю кращі аль-
тернативні підходи, але й у ряді завдань про-
явили зачатки розуміння сенсу поданої інфо-
рмації (наприклад, при розпізнаванні зобра-
жень, аналізі текстової інформації і так далі).
Найбільш успішні сучасні промислові ме-
тоди комп'ютерного зору і розпізнавання мо-
ви побудовані на використанні глибоких ме-
реж, а гіганти IT-індустрії скуповують коле-
ктиви дослідників, що займаються глибоки-
ми нейронними мережами.
Загальна частина. Мережі часто реалізу-
ються у вигляді комп'ютерних програм, хоча
випускається все більша і більша кількість
мікросхем, що реалізують нейронні мережі
апаратним шляхом. Головна властивість ме-
реж – здатність до навчання. Глибоке на-
вчання – набір алгоритмів, які намагаються
моделювати високорівневі абстракції у да-
них, використовуючи архітектури, що скла-
даються з безлічі нелінійних трансформацій.
Глибока нейронна мережа (DNN – Deep Neu
ral Network) це штучна нейронна мережа з
ГЛИБОКІ НЕЙРОННІ МЕРЕЖІ ТА ЕЛЕМЕНТИ ЇХ РЕАЛІЗАЦІЇ В FPGA
Комп’ютерні засоби, мережі та системи. 2015, № 14 135
декількома прихованими шарами. Подібно до звичайних нейронних мереж, гли-
бокі нейронні мережі можуть моделювати складні нелінійні відносини між еле-
ментами. У процесі навчання глибокої нейронної мережі отримувана модель на-
магається представити об'єкт у вигляді комбінації простих примітивів (напри-
клад, у задачі розпізнавання осіб такими примітивами можуть бути частини об-
личчя: ніс, очі, рот і так далі). Додаткові шари дозволяють будувати абстракції
все більш високих рівнів, що і дозволяє будувати моделі для розпізнавання
складних об'єктів реального світу.
Як правило, глибинні мережі будуються як мережі прямого поширення. Од-
нак останні дослідження показали, як можна застосувати техніку глибинного
навчання для рекурентних нейронних мереж. Згорткові нейронні мережі вико-
ристовуються в області машинного зору, де цей підхід показав себе як ефектив-
ний. Також згорткові нейронні мережі були застосовані для розпізнавання мови.
Навчання глибинних нейронних мереж може бути здійснено за допомогою
звичайного алгоритму зворотного поширення помилки. Існує велика кількість
модифікацій даного алгоритму. Таким чином, може бути використано кілька
правил налаштування ваг. Наприклад, навчання вагових коефіцієнтів ωij(t) алго-
ритмом стохастичного градієнтного спуску:
( 1) ( )i j i j
i j
Ct t ∂
ω + = ω + η
∂ω
, (1)
де η – стала для регулювання величини поточного кроку, C – функція втрат.
Вибір функції втрат може бути обумовлений класом завдання машинного на-
вчання (з учителем, без учителя, з підкріпленням) і функції активації.
До двох головних проблем глибоких нейронних мереж відносять ті ж про-
блеми, що виникають і при навчанні звичайних нейронних мереж: час навчання
та перенавчання.
Глибокі структури сильніше схильні до перенавчання, оскільки, маючи бі-
льше шарів, що дозволяють моделювати високорівневі абстракції, мережа може
"вивчити" рідкісні ситуації. У цьому випадку можуть допомогти різні види ре-
гуляризації. Один з можливих методів регуляризації (dropout) припускає випад-
ковим чином виключені вузли під час навчання. У деяких випадках це допома-
гає менше запам'ятовувати рідкісні залежності в тренувальних даних.
Через простоту реалізації і хорошу збіжність для навчання глибоких ней-
ронних мереж часто використовується метод зворотного поширення помилки і
градієнтний спуск. Однак, при навчанні глибоких структур виникає кілька про-
блем, які особливо важливі при оптимізації функцій у просторі великої розмір-
ності: кількість обчислювальних елементів, початкові умови для ваг мережі, а
також описана вище константа регулювання величини кроку.
Крім того, алгоритм стохастичного градієнтного спуску відомий своєю про-
блемою зникаючого градієнта (vanishing gradient), яка полягає в ослабленні гра-
дієнта, а значить і швидкості навчання в міру поглиблення від останніх шарів
Т.А. САМОЛЮК
Комп’ютерні засоби, мережі та системи. 2015, № 14 136
мережі до початку мережі. Через це глибокі шари мережі дуже погано навча-
ються. Проте останнім часом є тенденція замість функції активації вузла мережі
виду сигмоїда в глибоких мережах використовувати нелінійність виду ReLU
(Rectified Linear Unit), функцію якої можна описати як max (0, x). Глибока мере-
жа з таким видом функції активації не має проблеми ослаблення градієнта і доб-
ре навчається градієнтним спуском. За умов великих розмірностей повний пере-
бір всіх комбінацій значень параметрів непрактичний.
Для прискорення обчислень використовується паралелізм, який закладений
у саму суть алгоритму навчання нейромережі при прямому і зворотному прохо-
ді. Розпаралелювання алгоритму на T потоків можливо на рівні:
– фази навчання з одночасним навчанням мережі при різних налаштуваннях
її параметрів: числа шарів, нейронів у шарах, початкових установках ваг і алго-
ритмом управління кроком їх зміни (T = 2 – 20);
– пакетного навчання (T = 10 – 1000); в цьому випадку навчальна множина
розбивається на T підмножин, для кожного обчислюється свій градієнт, отрима-
ні градієнти сумуються і, таким чином, виходить сумарний напрямок налашту-
вання ваг;
– конвеєрного навчання шарів нейромережі (T = 3 – 30);
– вузлів, тобто нейронів нейромережі (T = 100 – 1000 000 і більше);
– ваг нейронів (T = 100 – 10 000 і більше);
– біт (байт) орієнтованих обчислювальних, у тому числі стохастичних пото-
ків, з відповідною організацією основних засобів обробки, тобто суматорів, по-
множувачів і блоків пам'яті (T на 1 – 2 порядки більше наведених вище значень);
Останні три рівні забезпечують найбільший коефіцієнт паралелізму і особ-
ливо ефективні при використання апаратних засобів для прискорення навчання
штучних нейронних мереж, таких як GPU і FPGA.
Більш радикальні способи прискорення навчання включають використання
Extreme Learning Machines, «No prop»-нейронних мереж і безвагових нейронних
мереж [1].
Як бачимо, з вище сказаного збільшення швидкості роботи нейронних ме-
реж є важливою і актуальною проблемою. Одним із способів, що дозволяють
прискорити їх роботу за рахунок використання паралелізму, який властивий са-
мій нейронній мережі, є її реалізація на кристалі.
У літературі по створенню нейронних мереж на кристалах можна простежи-
ти тільки кілька ідей для конкретних архітектур, які можуть бути адаптовані для
моделювання нейронних мереж, ще менше тих, які мають вбудований алгоритм
навчання. Останнім часом можна побачити деякі зрушення в цій галузі.
Кристал серії FPGA SPARTAN 3 має архітектуру, що дозволяє створити
нейронну мережу для розпізнавання образів. Програмне середовище для роботи
з кристалами серії FPGA пакет WEBPACK XILINX є безкоштовним, що створює
перевагу в його застосуванні [2].
Робота в середовищі програмування Xilinx ISE Webpack відбувається в на-
ступному порядку:
ГЛИБОКІ НЕЙРОННІ МЕРЕЖІ ТА ЕЛЕМЕНТИ ЇХ РЕАЛІЗАЦІЇ В FPGA
Комп’ютерні засоби, мережі та системи. 2015, № 14 137
1) створення принципової схеми проектованого пристрою у схемотехнічно-
му редакторі Xilinx Ise Design Suite 13.2 (FPGA Editor) або описі даного
пристрою на мові VHDL або Verilog;
2) попереднє функціональне (Behavioral Simulation) або тимчасове моделю-
вання для виявлення помилок і перевірки працездатності створюваного проекту
або окремих його частин;
3) прив'язка висновків проекту до входів-виходів кристала, вибір вихідних
рівнів, критичних контурів (Constraints Editor) і т. д.;
4) запуск автоматизованого розміщення проекту в кристалі і аналіз звітів,
які генеруються для виявлення попереджень і помилок (Implement Disign), а за
відсутності таких і не критичних перехід до наступного етапу;
5) верифікація проекту, тобто остаточне тимчасове моделювання (Post-Fit
Simulation) після розміщення проекту в кристалі при всіх реальних затримках
поширення сигналів всередині мікросхеми ПЛІС;
6) конфігурування кристала ПЛІС за допомогою бітового потоку (iMPACT
10.1i). Для того, щоб конфігурувати ПЛІС необхідно мати завантажувальний
JTAG-кабель. Завантаження бітового потоку здійснюється через спеціально ви-
ділені конфігураційні виводи з використанням різних способів і режимів заван-
таження ПЛІС. Після вдалого завантаження проекту перевіряється та налаго-
джується проект надалі.
У разі необхідності та подальшого розвитку чи проектування проекту на
ПЛІС всі пройдені етапи повторюються до повного завершення проекту в цілому.
Як і лінійні методи класифікації і регресії, за своєю суттю, нейронні мережі
видають відповідь у вигляді:
1
( , ) ( ( ))
N
j j
j
y x f x
=
ω = ω φ∑ , (2)
де f – нелінійна функція активації, ω – вектор ваг, φ– нелінійні базисні
функції [3].
Для лінійних базисних функцій реалізація розрахунків можлива з паралель-
ною обробкою всіх нейронів чергового шару і послідовним накопиченням зва-
жених сум ваг для кожного з них. Таке рішення передбачає застосування DSP
IP-ядер, що входять до складу останніх серій FPGA Xilinx. Це забезпечує гнучке
управління областями аргументів карт ознак, але є досить витратним.
Варіант з паралельним обчисленням входу функції активації (послідовно
для кожного нейрона чергового шару мережі) ефективно реалізується в більш
доступних ПЛІС типу Spartan3. На структурній схемі на рисунку цей варіант
показаний пірамідальним суматором ADD зважених за допомогою помножува-
чів MUL значень функцій активації всіх нейронів попереднього шару. Значення
функцій активації і вагові коефіцієнти зберігаються в двопортовій блочній па-
м'яті RAM.
Т.А. САМОЛЮК
Комп’ютерні засоби, мережі та системи. 2015, № 14 138
РИСУНОК. Структурна схема нейромережі на FPGA з паралельним обчисленням ваг
RAM 0
D0 15-0
Adr0 9-0
Q0 15-0
W0
C
Adr1 9-0
D1 15-0
Q1 15-0
W1
ADD
A15-0
S 15-0
B15-0
MUL
A17-0
P37-0
B17-0
RAM T
D0 15-0
Adr0 9-0
Q0 15-0
W0
C
Adr1 9-0
D1 15-0
Q1 15-0
W1
RAM T-1
D0 15-0
Adr0 9-0
Q0 15-0
W0
C
Adr1 9-0
D1 15-0
Q1 15-0
W1
RAM 1
D0 15-0
Adr0 9-0
Q0 15-0
W0
C
Adr1 9-0
D1 15-0
Q1 15-0
W1
MUL
A17-0
P37-0
B17-0
MUL
A17-0
P37-0
B17-0
MUL
A17-0
P37-0
B17-0
ADD
A15-0
S 15-0
B15-0
ADD
A15-0
S 15-0
B15-0
CONTR
C
A0 8-0
A1 8-0
D 15-0
Q 15-0
Хост
RAM
Contr
A0 8-0
Adr0 9-0
W1 T-0
A1 8-0
Adr1 9-0
W0 T-0
MX
A15-0
D 15-0
Q15-0
V
ГЛИБОКІ НЕЙРОННІ МЕРЕЖІ ТА ЕЛЕМЕНТИ ЇХ РЕАЛІЗАЦІЇ В FPGA
Комп’ютерні засоби, мережі та системи. 2015, № 14 139
Для ефективної роботи з змінними форматами рецептивних полів і проміж-
них шарів глибинних нейронних мереж необхідний оптимальний вибір парамет-
ра T, рівний або кратний найбільш часто використовуваному розміру формату.
Тоді формати більші за вибраний будуть оброблятися за кілька проходів, а мен-
ші – із застосуванням маскування зайвих входів нульовими значеннями на ви-
ходах відповідних блоків пам'яті.
Контролер СONTR забезпечує необхідну послідовність адрес і дозвільних
рівнів на входах запису відповідних блоків пам'яті. Найбільш економічним рі-
шенням для формування зазначених послідовностей є використання додаткових
блоків керуючої пам'яті для незалежного зберігання та видачі адрес і дозвільних
рівнів запису. У функції власне контролера тоді входить формування істотно
більш простих циклічних підпослідовностей адрес для читання і запису великих
областей керуючої пам'яті, а також ініціалізація всієї пам'яті нейромережі і ви-
вантаження результатів обчислень.
Слід зазначити, що рівномірне використання з одного боку розподілених по
комірках LUT ресурсів для побудови пірамідального суматора, а з іншого – ви-
ділених блоків пам'яті і помножувачів, забезпечує досить високий коефіцієнт
використання площі кристала ПЛІС.
Функціональні можливості ПЛІС Spartan3 різних модифікацій, використо-
вуваної в інструментальному модулі Spartan-3 Starter Board, характеризуються
наступними показниками:
– наявність двох видів внутрішньої оперативної пам'яті: розподіленої
Distributed RAM, яка реалізується на базі 4-входових таблиць перетворення
(LookUp Table, LUT) конфігурованих логічних блоків, і вбудованої блокової
пам'яті Block RAM, яка може бути організована як двопортовий ОЗП;
– достатній для реалізації нейромережі середнього розміру обсяг внутріш-
ньої розподіленої пам'яті Distributed RAM і вбудованої блочної пам'яті Block
SelectRAM;
– застосування чотирьох цифрових блоків управління синхронізацією
(DCM), що виконують функції множення, ділення і зсуву фаз тактових частот, і
забезпечують розширені можливості керування тактовими сигналами не тільки
всередині кристала, а й на рівні друкованої плати проектованої системи;
– висока продуктивність, що допускає реалізацію проектів з системними ча-
стотами до 326 МГц;
– використання глобальної мережі тактових сигналів надає можливість роз-
поділу сигналів синхронізації всередині кристалів з малими розходженнями
фронтів;
– можливість реалізації швидких внутрішніх інтерфейсів до зовнішніх висо-
копродуктивних елементів пам'яті (ОЗП або ПЗП);
– застосування спеціальної логіки прискореного перенесення для виконання
високошвидкісних арифметичних операцій;
– наявність вбудованих апаратних помножувачів, призначених для обчис-
лення добутку двох 18-розрядних операндів;
Т.А. САМОЛЮК
Комп’ютерні засоби, мережі та системи. 2015, № 14 140
– наявність ланцюжків каскадування забезпечує можливість реалізації фун-
кцій з великою кількістю вхідних змінних;
– підтримка передачі даних з подвоєною швидкістю Double Data Rate
(DDR), що відкриває широкі можливості для реалізації високошвидкісних при-
строїв цифрової обробки сигналів;
– використання технології Select I/O дозволяє підтримувати 17 однополюс-
них і 6 диференціальних цифрових сигнальних стандартів введення-виведення,
зокрема, LVTTL, LVCMOS12, GTL, SSTL2 (II), HSTL (III), PCI 3.3, AGP, CTT;
– повна підтримка протоколу периферійного сканування відповідно до ста-
ндартів IEEE Std 1149.1 (JTAG) і IEEE Std 1532;
– підтримка 5 режимів конфігурування ПЛІС (Master Serial, Slave Serial,
Master Parallel, Slave Parallel, JTAG).
Висновки. Таким чином, розробка і побудова нейронних мереж у ПЛІС
FPGA дозволяє значно прискорити процеси їх функціонування і навчання за ра-
хунок використання можливості паралельної обробки від сотень до декількох
тисяч обчислювальних потоків. Запропоновані варіанти структури нейронної
мережі відрізняються високим коефіцієнтом використання кристала і можливі-
стю застосування для реалізації глибинних нейронних мереж.
1. Geoffrey E. Hinton. Learning multiple layers of representation // TRENDS in Cognitive Scienc-
es. – 2007. – Vol. 11, N 10. – P. 428 – 434.
2. Зотов В. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР
WebPack ISE. – М.: Горячая линия – Телеком, 2003. – 624 с.
3. Заенцев И.В. Нейронные сети: основные модели. – Воронеж, 1999. – 74 с.
Одержано 05.10.2015
|