Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу
Нейромережеві системи керування є високотехнологічним напрямком теорії керування та відносяться до класу нелінійних динамічних систем. Висока швидкодія за рахунок розпаралелювання вхідної інформації в поєднанні зі здатністю до навчання нейронних мереж робить цю технологію вельми привабливою для ство...
Saved in:
| Published in: | Проблемы управления и информатики |
|---|---|
| Date: | 2022 |
| Main Authors: | , , , |
| Format: | Article |
| Language: | Ukrainian |
| Published: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2022
|
| Subjects: | |
| Online Access: | https://nasplib.isofts.kiev.ua/handle/123456789/210912 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Journal Title: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Cite this: | Автоматизоване проєктування штучного нейрона для програмова-них логічних інтегральних схем на основі алгебро-алгоритмічного підходу / А.Ю. Дорошенко, В.М. Шимкович, Т.А. Мамедов, О.А. Яценко // Проблеми керування та інформатики. — 2022. — № 5. — С. 61-72. — Бібліогр.: 17 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1860251221437186048 |
|---|---|
| author | Дорошенко, А.Ю. Шимкович, В.М. Мамедов, Т.А. Яценко, О.А. |
| author_facet | Дорошенко, А.Ю. Шимкович, В.М. Мамедов, Т.А. Яценко, О.А. |
| citation_txt | Автоматизоване проєктування штучного нейрона для програмова-них логічних інтегральних схем на основі алгебро-алгоритмічного підходу / А.Ю. Дорошенко, В.М. Шимкович, Т.А. Мамедов, О.А. Яценко // Проблеми керування та інформатики. — 2022. — № 5. — С. 61-72. — Бібліогр.: 17 назв. — укр. |
| collection | DSpace DC |
| container_title | Проблемы управления и информатики |
| description | Нейромережеві системи керування є високотехнологічним напрямком теорії керування та відносяться до класу нелінійних динамічних систем. Висока швидкодія за рахунок розпаралелювання вхідної інформації в поєднанні зі здатністю до навчання нейронних мереж робить цю технологію вельми привабливою для створення пристроїв керування в автоматичних системах. Забезпечення швидкодії мереж у реальному часі здійснюється шляхом їх реалізації на програмованих логічних інтегральних схемах (ПЛІС). Одним із прикладів апаратної реалізації нейронних мереж є проєктування штучного нейрона та його нелінійних функцій активації. Технологія розробки додатків для ПЛІС ґрунтується на поданні алгоритму мовою опису апаратури, наприклад VHDL, і автоматичному перекладі цього опису в специфікацію на рівні логічних таблиць та інших функціональних компонентів інтегральних схем. Програмування мовою VHDL досить складне, тому постає питання про розробку спеціальних засобів автоматизації, які дозволили б ефективно генерувати високопродуктивний програмний код. У статті запропоновано засоби автоматизованого проєктування та генерації програм для ПЛІС, що ґрунтуються на алгебрі алгоритмів. Створені засоби застосовано для проєктування штучного нейрона. Розроблено метод конструювання штучного нейрона з сигмоїдальною функцією активації на ПЛІС, який відрізняється від аналогічних підходів тим, що коефіцієнти кусково-лінійної апроксимації функції активації зберігаються в пам’яті лише для додатних або лише для від’ємних значень аргументів. Це дозволило оптимізувати кількість використовуваних обчислювальних ресурсів і підвищити продуктивність нейронної мережі. Даний підхід застосовано для розробки системи з нейромережевим контролером для балансування кульки на платформі, реалізованим на ПЛІС.
Neural network control systems are a high-tech area of control theory and belong to the class of nonlinear dynamic systems. High performance, achieved by parallel processing of input information, combined with the learning ability of neural networks, makes this technology highly attractive for creating control devices in automatic systems. Ensuring real-time network performance is achieved by implementing them on programmable logic integrated circuits (PLICs). One example of hardware implementation of neural networks is the design of an artificial neuron and its nonlinear activation functions. The technology for developing applications for PLICs is based on representing an algorithm in hardware description languages, such as VHDL, and automatically translating this description into specifications at the level of logic tables and other functional components of integrated circuits. Programming in VHDL is quite complex, which raises the need for developing specialized automation tools that would efficiently generate high-performance software code. The article proposes tools for automated design and code generation for PLICs based on algorithmic algebra. These tools were applied to the design of an artificial neuron. A method for constructing an artificial neuron with a sigmoid activation function on PLICs was developed, which differs from similar approaches by storing the coefficients of piecewise-linear approximations of the activation function in memory only for positive or only for negative argument values. This approach optimized the number of computational resources used and increased the neural network's performance. This method was applied to develop a system with a neural network controller for balancing a ball on a platform, implemented on a PLIC.
|
| first_indexed | 2026-03-21T06:16:51Z |
| format | Article |
| fulltext |
© А.Ю. ДОРОШЕНКО, В.М. ШИМКОВИЧ, Т.А. МАМЕДОВ, О.А. ЯЦЕНКО, 2022
Міжнародний науково-технічний журнал
Проблеми керування та інформатики, 2022, № 5 61
РОБОТИ ТА СИСТЕМИ ШТУЧНОГО ІНТЕЛЕКТУ
УДК 004.4’24, 004.3, 004.89, 004.942
А.Ю. Дорошенко, В.М. Шимкович, Т.А. Мамедов, О.А. Яценко
АВТОМАТИЗОВАНЕ ПРОЄКТУВАННЯ
ШТУЧНОГО НЕЙРОНА ДЛЯ ПРОГРАМОВАНИХ
ЛОГІЧНИХ ІНТЕГРАЛЬНИХ СХЕМ НА ОСНОВІ
АЛГЕБРО-АЛГОРИТМІЧНОГО ПІДХОДУ
Дорошенко Анатолій Юхимович
Інститут програмних систем НАН України, м. Київ,
doroshenkoanatoliy2@gmail.com
Шимкович Володимир Миколайович
Національний технічний університет України «Київський політехнічний інститут
імені Ігоря Сікорського»,
shymkovych.volodymyr@gmail.com
Мамедов Турал Алірзайович
Інститут програмних систем НАН України, м. Київ,
tural.mamedov1@gmail.com
Яценко Олена Анатоліївна
Інститут програмних систем НАН України, м. Київ,
oayat@ukr.net
Нейромережеві системи керування є високотехнологічним напрямком теорії ке-
рування та відносяться до класу нелінійних динамічних систем. Висока швид-
кодія за рахунок розпаралелювання вхідної інформації в поєднанні зі здатністю
до навчання нейронних мереж робить цю технологію вельми привабливою для
створення пристроїв керування в автоматичних системах. Забезпечення швид-
кодії мереж у реальному часі здійснюється шляхом їх реалізації на програмова-
них логічних інтегральних схемах (ПЛІС). Одним із прикладів апаратної реалі-
зації нейронних мереж є проєктування штучного нейрона та його нелінійних
функцій активації. Технологія розробки додатків для ПЛІС ґрунтується на по-
данні алгоритму мовою опису апаратури, наприклад VHDL, і автоматичному
перекладі цього опису в специфікацію на рівні логічних таблиць та інших фун-
кціональних компонентів інтегральних схем. Програмування мовою VHDL до-
сить складне, тому постає питання про розробку спеціальних засобів автомати-
зації, які дозволили б ефективно генерувати високопродуктивний програмний
код. У статті запропоновано засоби автоматизованого проєктування та генерації
програм для ПЛІС, що ґрунтуються на алгебрі алгоритмів. Створені засоби
застосовано для проєктування штучного нейрона. Розроблено метод конс-
труювання штучного нейрона з сигмоїдальною функцією активації на ПЛІС,
який відрізняється від аналогічних підходів тим, що коефіцієнти кусково-
лінійної апроксимації функції активації зберігаються в пам’яті лише для
mailto:doroshenkoanatoliy2@gmail.com
62 ISSN 2786-6491
додатних або лише для від’ємних значень аргументів. Це дозволило оптимізу-
вати кількість використовуваних обчислювальних ресурсів і підвищити продук-
тивність нейронної мережі. Даний підхід застосовано для розробки системи
з нейромережевим контролером для балансування кульки на платформі, реалі-
зованим на ПЛІС.
Ключові слова: автоматизоване проєктування, алгебра алгоритмів, апрок-
симаційні обчислення, генерація програм, нейронна мережа, програмовані
логічні інтегральні схеми, система керування.
Вступ
Керування сучасними технічними системами вимагає розробки нових мето-
дів керування, оскільки модифікація та вдосконалення традиційних підходів не
завжди забезпечує виконання жорстких вимог до показників якості. Нейромере-
жеві системи керування є високотехнологічним напрямком теорії керування та ві-
дносяться до класу нелінійних динамічних систем. Висока швидкодія за рахунок
розпаралелювання вхідної інформації в поєднанні зі здатністю до навчання ней-
ронних мереж робить цю технологію вельми привабливою для створення при-
строїв керування в автоматичних системах. Забезпечення швидкодії мереж в реа-
льному часі здійснюється шляхом їх реалізації на програмованих логічних інтег-
ральних схемах (ПЛІС).
Одним із прикладів апаратної реалізації нейронних мереж є реалізація
штучного нейрона та його нелінійних функцій активації. Існуючі підходи до
реалізації нелінійних функцій використовують різні методи апроксимації [1–3],
такі як ряд Тейлора, табличний метод, кусково-лінійна апроксимація тощо.
Ряди Тейлора потребують численних операцій множення і тому не є оптима-
льними для реалізації на ПЛІС, оскільки блок множення займає багато ресур-
сів. Тому найкращою для реалізації нелінійних функцій активації є кусково-
лінійна апроксимація.
Технологія розробки додатків для ПЛІС грунтується на поданні алгоритму
мовою опису апаратури, наприклад VHDL [4], і автоматичному перекладі цього
опису в специфікацію на рівні логічних таблиць та інших функціональних компо-
нентів ПЛІС. Елементарні функції в ПЛІС зазвичай реалізуються як окремі проєк-
ти або модулі, що містять інформацію про швидкість передачі даних і внутрішню
структуру системи.
Програмування мовою VHDL досить складне, тому постає питання про роз-
робку спеціальних програмних засобів автоматизації, які дозволили б ефективно
генерувати високопродуктивний код для програмованих логічних інтегральних
схем. У даній статті застосовано алгебро-алгоритмічний підхід для автоматизова-
ного проєктування апаратної реалізації нейронної мережі на ПЛІС. Програми про-
єктуються у вигляді високорівневих специфікацій у системах алгоритмічних ал-
гебр Глушкова [5], поданих у природно-лінгвістичній формі. Підхід застосовано
для розробки нейроконтролера, реалізованого на ПЛІС для системи балансування
кульки на платформі.
Підхід, описаний в даній статті, пов’язаний, зокрема, з роботами, присвя-
ченими автоматизованій генерації програм мовою VHDL [6–9]. У [6] запропо-
новано бібліотеку мовою Java для автоматизованої обробки та генерації коду
VHDL. У [7] описано методологію та інструментарій генерації програм для
ПЛІС на основі специфікацій Xilinx System Generator. В [8] запропоновано пі-
дхід до генерації VHDL програм із використанням кінцевого автомата Мура та
графу потоку даних. В роботі [9] представлено генератор коду мовою VHDL на
основі предметно-орієнтованої мови для мережевих пристроїв. Основна від-
мінність даного підходу полягає у використанні природно-лінгвістичного по-
дання схем в системах алгоритмічних алгебр для автоматизованого проєкту-
вання програм для ПЛІС.
Міжнародний науково-технічний журнал
Проблеми керування та інформатики, 2022, № 5 63
Подібні до нашого підходу реалізації штучних нейронів розглядаються в
роботах [10, 11]. У [10] представлено апаратну реалізацію багатовходового
нейрона з нелінійною функцією активації із використанням ПЛІС та VHDL
для опису архітектури системи. Відмінністю даного методу є те, що коефіціє-
нти кусково-лінійної апроксимації функції активації зберігаються в пам’яті
лише для додатних або лише для від’ємних значень аргументів, що дозволяє
оптимізувати кількість використовуваних обчислювальних ресурсів і підви-
щити продуктивність нейронної мережі. У [11] запропоновано реалізацію
штучної нейронної мережі на ПЛІС з використанням мови Verilog. На відміну
від нашої роботи, реалізація функції лінійної активації повільніша та викорис-
товує більше ресурсів ПЛІС.
Контролери на основі нейронних мереж для задачі балансування кульки на
платформі розглянуті в [12–14]. Зокрема, в [12] запропоновано контролер зі зво-
ротним зв’язком на основі нейронної мережі для компенсації помилок, спричине-
них використанням апроксимованої динамічної моделі при проєктуванні контро-
лера. Контролер складається з двох паралельно працюючих субрегуляторів: базо-
вого лінійного контролера та ПІД-компенсатора на основі нейронної мережі.
У [13, 14] для навчання нейронних мереж, що використовуються в контролері, за-
стосовано метод оптимізації роїв частинок.
1. Алгебро-алгоритмічні засоби проєктування програм
Для проєктування програм для ПЛІС у даній роботі використовуються висо-
корівневі схеми, подані в системах алгоритмічних алгебр (САА) Глушкова [5].
Основними об’єктами мови САА є абстракції предикатів (умов) і операторів, що
поділяються на базисні та складені. Базисні предикати та оператори вважаються
первинними, атомарними, неподільними конструкціями в САА-схемах. Складені
предикати та оператори будуються з базисних за допомогою логічних та оператор-
них операцій САА, зокрема:
диз’юнкції: ‘condition 1’ or ‘condition 2’;
кон’юнкції: ‘condition 1’ and ‘condition 2’;
заперечення: not(‘condition’);
послідовного виконання операторів: «operator 1»; «operator 2»;
розгалуження: IF ‘condition’ THEN «operator 1» ELSE «operator 2»;
циклу: WHILE ‘condition’ «operator» END OF LOOP.
Ідентифікатори умов вказуються в одинарних лапках, а оператори — в под-
війних. Суперпозиція операцій та базисних елементів САА називається САА-схе-
мою. Основною відмінністю САА від інших процедурних мов програмування
є можливість проєктувати програми як в алгебраїчній, так і в природно-
лінгвістичній формах, а також виконувати формальні перетворення програм.
Конструкції САА для проєктування програм для ПЛІС детально розгляну-
ті в [15].
Автоматизоване конструювання САА-схем та генерацію відповідних Послі-
довних і паралельних програм цільовими мовами програмування забезпечує Інте-
грований інструментарій проєктування та синтезу програм (Integrated toolkit for
Design and Synthesis of programs — IDS) [5, 15]. Процес розробки програми в да-
ній системі зображено на рис. 1. Основна ідея інструментарію полягає в роз-
робці схем зверху вниз шляхом вибору операцій САА зі списку та додавання їх до
дерева конструювання схеми. Описи конструкцій зберігаються в базі даних ін-
64 ISSN 2786-6491
струментарію. На основі розробленого дерева система автоматично генерує
програмний код однією з цільових мов програмування (C++, C#, Java, VHDL).
Рис. 1
Наведена нижче САА-схема — приклад проєктування логічної схеми для бу-
левого виразу ( ) ( )y a b a b c (рис. 2). Вона складається з опису входів і
виходів проєкту (entity) та його функціонування (architecture) і є основою для ав-
томатичної генерації коду мовою VHDL.
SCHEME BOOL_EXPR
ENTITY bool_expr IS
PORT (
«Input bit signals (a, b, c)»;
«Output bit signal (y)»);
END OF ENTITY;
ARCHITECTURE arch1 of bool_expr IS
(y <= (not(a and b)) and (not(a or b)) and c);
END OF ARCHITECTURE
END OF SCHEME BOOL_EXPR
Рис. 2
У даній роботі інструментарій IDS застосовано для проєктування схеми апа-
ратної реалізації нейрона на ПЛІС.
2. Проєктування штучного нейрона для ПЛІС
У даному розділі розглядається модель нейрона та проєктування його функ-
цій активації на ПЛІС. Проєктування нейрона виконано з використанням
САА-схем з подальшою генерацією коду мовою VHDL.
Модель нейрона працює таким чином. Вхідні сигнали kia надходять на
блоки, що реалізують функцію синапсів, кожен з яких характеризується своїм
Міжнародний науково-технічний журнал
Проблеми керування та інформатики, 2022, № 5 65
ваговим коефіцієнтом (синаптичною вагою). Зважені вхідні сигнали подаються на
лінійний суматор, після чого результат підсумовування потрапляє в блок функції
активації (.)f і після відповідної обробки подається на вихід як сигнал kq . Як
правило, функція активації обмежує вихідний сигнал нейрона в діапазоні [0,1]
або [ ]1,1 . Модель нейрона також містить початкове зміщення kb , яке додається
до вхідного сигналу блоку функції активації. Функціональна схема моделі штуч-
ного нейрона безперервного типу наведена на рис. 3.
З
н
ач
ен
н
я
о
ц
ін
к
а
к
о
еф
іц
іє
н
та
а
1
,1
+ 1
0,1
0
– 0,1
– 0,2
– 0,3
– 0,4
– 1
Рис. 3
Математично модель нейрона описується наступними залежностями:
1
( ) ,
n
k k ki ki k
i
q f S f w a b
де kq — вихідний сигнал k-го нейрона; (.)f — функція активації; kia — вхідні
сигнали нейрона; kiw — синаптична вага; kb — зміщення k-го нейрона.
Функція активації (.)f реалізує нелінійне перетворення, здійснюване нейро-
ном. Найпоширенішим типом функції активації є сигмоїдальна функція. Такі фу-
нкції є монотонно зростаючими, неперервними та диференційованими. Диферен-
ційованість сигмоїдальних функцій — важлива властивість деяких методів на-
вчання та аналізу. Вони також мають універсальні апроксимаційні властивості [1,
3]. Особливістю нейронів з такою функцією активації є те, що вони значно менше
підсилюють сильні сигнали, ніж слабкі, оскільки області сильних сигналів відпо-
відають пологим ділянкам характеристики. Це дозволяє запобігти насиченню від
сильних сигналів.
Сигмоїдальні функції описуються виразом
( , , , , ) ,
1 Tk
c
f x k b T c k
be
(1)
де ,x ,k ,b ,T c — параметри; , ;k b R 0;b , \{0}.T c R
Якщо 0,k 1,c 1b і 1T , то вираз (1) набуде вигляду, що називаєть-
ся «класичним» сигмоїдом:
1
1 1
( , 0,1, 1,1) 0 .
1 1 1x x
f x
e e
(2)
Активною областю визначення функції активації нейрона є область значень
вхідних параметрів, де значення функції суттєво змінюються. Для сигмоїдальної
функції інтервал [– 4; 4] використовується як активна область визначення.
У цьому випадку функція приймає значення в інтервалі (0,018; 0,982), що стано-
вить 96,4 % від усього діапазону значень.
66 ISSN 2786-6491
Пропонуємо наступний метод проєктування функцій активації нейрона на
ПЛІС. Вхідними даними методу є функції, описані виразом (1), або ті, які можна
записати з їх допомогою, а також точність, з якою має бути реалізована функція
активації.
На першому етапі досліджується функція активації щодо симетричності
відносно осей. Розглянемо функцію (2)
1 1 1 1
( ) 1 ( ) 1 1 1 ,
11 1 1 1 11
x x x
x x x x x
x
e e e
f x f x
e e e e e
e
Отримаємо
1 1
1 або 1 ( ) ( ).
1 1x x
f x f x
e e
(3)
Функцію ( )f x можна розглядати лише для додатних аргументів. Для
від’ємних значення можна знайти за формулою (3), що, у свою чергу, прис-
корить обчислення функції та зменшить використовуваний ресурс ПЛІС.
На другому етапі на кожному з інтервалів визначається кусково-лінійна функ-
ція 1 1 2( ; ), ( ; ), ..., ( ; )nx x x x окремою формулою
0 0 1
1 1 1 2
, ,
, ,
( )
, .n n n
k x b x x
k x b x x x
f x
k x b x x
(4)
На третьому етапі ( )f x обчислюється для попередньо розрахованого зна-
чення .x Коефіцієнти k і b вибираються з пам’яті.
Таким чином, на основі лінійних формул можна знайти апроксимацію фу-
нкції сигмоїдального типу для будь-якого аргументу із заданою точністю. Роз-
роблений метод побудови нелінійних функцій активації штучного нейрона на
ПЛІС відрізняється від наведеного в [10] тим, що коефіцієнти кусково-лінійної
апроксимації функції активації зберігаються в пам’яті лише для додатних або
лише для від’ємних значень аргументів, що дозволяє оптимізувати кількість
використовуваного обчислювального ресурсу та підвищити продуктивність
нейронної мережі.
Алгоритм реалізації штучного нейрона з класичною сигмоїдальною функці-
єю складається з таких кроків.
Крок 1. Встановлюються ваги синапсів нейрона. Кожному нейрону надається
блок пам’яті, де зберігаються синаптичні ваги.
Для встановлення ваг використовуються такі сигнали:
• synaddr (synapse address) — вибір синапсу, вага якого буде читатися або за-
писуватися за його номером у двійковому коді;
• synsetw (synapse set weight) — значення ваги, яке буде записане в синапс;
• synwren (synapse write enabled) — коли вхідний сигнал дорівнює 1, нейрон
записує значення з synsetw у вибраний синапс, а коли сигнал дорівнює 0, нічого
не відбувається.
Міжнародний науково-технічний журнал
Проблеми керування та інформатики, 2022, № 5 67
Ці змінні необхідні для навчання нейронів і нейронних мереж.
Крок 2. Значення вхідного вектора подаються на входи штучного нейрона.
Встановлюється змінна, яка дорівнює виходу суматора
1
,
N
i i
i
x w a
де ia — входи нейрона; iw — синаптичні ваги нейрона.
Розрахунок виконується за допомогою чисел з фіксованою комою. Кожне чис-
ло займає 16 біт (9 біт для цілої частини і 7 біт для дробової).
Крок 3. Обчислюється модуль аргументу сигмоїдальної функції. Задається
змінна .x x
Крок 4. Сигмоїдальна функція активації розбивається на лінійні частини,
і визначаються коефіцієнти k та b лінійних рівнянь. Для цього використовується
базова модель кусково-лінійної апроксимації із заданою кількістю лінійних сег-
ментів [16]. Розбиття та похибка показані на рис. 4. Коефіцієнти лінійних рівнянь
визначаються наступним чином:
[0,234;0,500], якщо 0 1;
[0,129; 0,605], якщо 1 2,5;
,
[0,234; 0,500] , якщо 2,5 4;
[0,009; 0,946] , якщо 4.
x
x
k b
x
x
Крок 5. Змінна f визначається за формулою .f k x b
Крок 6. Якщо 0x , значення локальної змінної обчислюються за формулою
1 .f f
Крок 7. Значення вихідного сигналу нейрона встановлюється рівним значен-
ню змінної .f
З
н
ач
ен
н
я
о
ц
ін
к
а
к
о
еф
іц
іє
н
та
а
1
,1
– 6 – 4 – 2 0 2 4 6
х
0,1
0
– 0,1
– 0,2
– 0,3
– 0,4
f (х)
1
0,5
y = 0,1285x + 0,3865
R
2
= 0,9779
y = 0,0092x + 0,9463
R
2
= 0,9563
y = 0,0383x + 0,8327
R
2
= 0,9614
y = 0,1285x + 0,6135
R
2
= 0,9779
y = 0,2338x + 0,5
R
2
= 0,9994
y = 0,0383x + 0,1673
R
2
= 0,9614
y = 0,0092x + 0,0537
R
2
= 0,9563
Рис. 4
На рис. 5 зображено класичну сигмоїдальну функцію (а) за формулою (2) та
функцію, реалізовану на ПЛІС (b) на основі розробленого алгоритму. Реалізова-
ний блок сигмоїдальної функції на ПЛІС відображає функцію з достатньою точні-
стю для подальшої реалізації штучних нейронних мереж.
Блок штучного нейрона з чотирма входами показаний на рис. 6. Він розроб-
лений автоматизованим способом у формі САА-схеми з використанням інструмен-
68 ISSN 2786-6491
тарію IDS, описаного в розд. 1. Схема використана для автоматичної генерації
коду VHDL. Приклад опису сутності (entity) створеного проєкту в САА наве-
дено нижче.
З
н
ач
ен
н
я
о
ц
ін
к
а
к
о
еф
іц
іє
н
та
а
1
,1
6 – 4 – 2 0 2 4 6
a
f (x)
0,1
0
– 0,1
– 0,2
– 0,3
– 0,4
1,0
0,8
0,6
0,4
0,2
0 x
b
Рис. 5
ENTITY neur4sigm IS
PORT (
«Input logic vector signals (x1, x2, x3, x4) of range (15) down to (0)»;
«Input logic vector signal (synaddr) of range (1) down to (0)»;
«Input logic signal (synwren)»;
«Input logic vector signal (synsetw) of range (15) down to (0)»;
«Output logic vector signal (syngetw) of range (15) down to (0)»;
«Output logic vector signal (y) of range (15) down to (0)» )
END OF ENTITY
Рис. 6
3. Результати експериментів
та практичне застосування запропонованого підходу
Реалізація на ПЛІС штучного нейрона з чотирма входами та сигмоїдальною
функцією активації з використанням 16-розрядних чисел із фіксованою комою за-
йняла 672 LUTs (Look Up Tables — вентильні логічні матриці). Продуктивність
(загальна затримка комбінаторної схеми) нейронного блоку 75,6 НС. Абсолютна
похибка ± 0,005, а точність реалізації сигмоїдальної функції була наведена раніше
в розд. 2 (див. рис. 4).
Міжнародний науково-технічний журнал
Проблеми керування та інформатики, 2022, № 5 69
У таблиці наведено порівняння результатів реалізації сигмоїдальної функції
активації нейрона з найбільш подібними відомими аналогами [10, 11] на ПЛІС
Xilinx Spartan 6 та Xilinx Spartan 3. Як видно, реалізація нейронної мережі на
основі розроблених методу й алгоритму є швидшими і потребують менше ресу-
рсів ПЛІС, максимальне відхилення також було зменшене. У даній роботі вико-
ристовуються нелінійні сигмоїдальні функції на відміну від лінійних, викорис-
таних у [10].
Таблиця
Характеристика
реалізації
Стаття [10] Дана робота Стаття [11] Дана робота
Серія ПЛІС Xilinx Spartan 6 Xilinx Spartan 3
Ресурс ПЛІС (LUTs) 108 60 336 75
Продуктивність, НС 22,12 17,5 120,1 30,2
Максимальне
відхилення,
0,50 0,45 0,556 0,45
Запропонований підхід застосовано для розробки нейромережевого конт-
ролера для системи балансування кульки на платформі в режимі реального ча-
су з апаратно-програмною реалізацією на ПЛІС. Платформа регулює поло-
ження кульки для приведення її в стан рівноваги шляхом нахилу по горизон-
тальних осях ( x та y ) за допомогою двох серводвигунів. Положення кульки
фіксується відеокамерою. Спрощене зображення фізичної моделі руху кульки
по платформі наведене на рис. 7, де L — відстань від середини до краю плат-
форми (0,35 м); r — відстань від центру кульки до кінця платформи; α — кут
повороту платформи; d — довжина подовження серводвигуна (0,05 м); θ —
кут його повороту.
Рис. 7
Для керування рухом кульки за кутом нахилу розроблено нейромережеву
систему керування з інверсною моделлю керованого об’єкта та зворотним
зв’язком (рис. 8). Була обрана тришарова штучна нейронна мережа з двома
нейронами у вхідному шарі, вісьмома нейронами у прихованому шарі та двома
нейронами у вихідному шарі, оскільки ця топологія повторює рух кульки з
найменшою похибкою. Початкове навчання нейронної мережі проводилось на
даних, отриманих у [17] при моделюванні ПІД-регулятора.
Результати моделювання, отримані на платформі з контролером нейронної
мережі та традиційними ПІД-регуляторами, представлені на рис. 9 (a — положен-
ня кульки r від часу; б — кута повороту серводвигуна від часу, на платформі
з нейроконтролером (n) та на платформі із звичайними ПІД-регуляторами (p) [17]).
Як показано на графіках, нейроконтролер адаптується та усуває всі припущення
та невизначеності в моделюванні та розрахунках, а також підлаштовується до змін
70 ISSN 2786-6491
в умовах його роботи, наприклад, при зміні параметрів кульки та до внесення в
систему збурюючих впливів. У результаті кулька встановлюється в задану точку
швидше і з меншим відхиленням.
З
н
ач
ен
н
я
о
ц
ін
к
а
к
о
еф
іц
іє
н
та
а
1
,1
r1(15:0)
0,1
0
– 0,1
– 0,2
– 0,3
– 0,4
r2(15:0)
r1(15:0)
r2(15:0)
y1(15:0)
y2(15:0)
u2(15:0)
u1(15:0)
u1(15:0)
u2(15:0)
y1(15:0)
y2(15:0)
y1(15:0)
y2(15:0)
Рис. 8
З
н
ач
ен
н
я
о
ц
ін
к
а
к
о
еф
іц
іє
н
та
а
1
,1
0 5 10 15 20 t, sec
a
0,1
0
– 0,1
– 0,2
– 0,3
– 0,4
r, m
0,3
0,2
0,1
0
x
n
p
0 5 10 15 20 t, sec
θ
0,5
0,3
0,1
– 0,2
б
n
p
Рис. 9
Висновок
Розроблено засоби автоматизованого проєктування та генерації програм
для ПЛІС, що грунтуються на алгебро-алгоритмічних схемах, та застосовано
для автоматизованого проєктування штучного нейрона. Схеми використову-
ються для генерації тексту програми мовою VHDL, який далі виконується на
ПЛІС. Розроблено метод конструювання штучного нейрона з сигмоїдальною
функцією активації на ПЛІС, який відрізняється від аналогічних підходів тим,
що коефіцієнти кусково-лінійної апроксимації функції активації зберігаються
в пам’яті лише для додатних або лише для від’ємних значень аргументів. Це
дозволило оптимізувати обсяг використовуваних обчислювальних ресурсів і
підвищити продуктивність нейронної мережі. Розроблений підхід застосовано
для розробки нейромережевого контролеру для системи балансування кульки
на платформі, реалізованого на ПЛІС.
Міжнародний науково-технічний журнал
Проблеми керування та інформатики, 2022, № 5 71
A. Doroshenko, V. Shymkovych, T. Mamedov, O. Yatsenko
AUTOMATED DESIGN OF AN ARTIFICIAL
NEURON FOR FIELD-PROGRAMMABLE
GATE ARRAYS BASED ON
AN ALGEBRA-ALGORITHMIC APPROACH
Anatoliy Doroshenko
Institute of Software Systems of National Academy of Sciences of Ukraine, Kyiv,
doroshenkoanatoliy2@gmail.com
Volodymyr Shymkovych
National Technical University of Ukraine «Igor Sikorsky Kyiv Polytechnic Institute»,
shymkovych.volodymyr@gmail.com
Tural Mamedov
Institute of Software Systems of National Academy of Sciences of Ukraine, Kyiv,
tural.mamedov1@gmail.com
Olena Yatsenko
Institute of Software Systems of National Academy of Sciences of Ukraine, Kyiv,
oayat@ukr.net
Neural network control systems are a high-tech branch of control theory and be-
long to the class of nonlinear dynamic systems. High speed due to the parallel-
ization of input information combined with the ability to train neural networks
makes this technology very attractive for creating control devices in automatic
systems. The high-speed operation of networks in real time is provided by im-
plementing them on field-programmable gate arrays. An example of the hard-
ware implementation of neural networks is the design of an artificial neuron and
its nonlinear activation functions on an FPGA. The technology of developing
applications for FPGAs is based on the presentation of the algorithm in the
hardware description language, for example, VHDL, and the automatic transla-
tion of this description into a specification at the level of logic tables and other
functional components of the FPGA. Programming in the VHDL language is
quite complex, so the question arises about the development of special software
automation tools that would allow the efficient generation of high-performance
code. The paper proposes the facilities of automated design and generation of
programs for FPGAs based on the algebra of algorithms. The developed tools
are applied for the automated design of an artificial neuron. A method of con-
structing an artificial neuron with a sigmoidal activation function on an FPGA is
developed, which differs from similar approaches in that the coefficients of the
piecewise linear approximation of the activation function are stored in memory
only for positive or only for negative values of the arguments. This made it pos-
sible to optimize the number of utilized computing resources and increase the
performance of the neural network. The developed approach is applied to the
development of a system with a neural controller for balancing a ball on a plat-
form implemented on an FPGA.
Keywords: automated design, algebra of algorithms, approximate computing, con-
trol system, field-programmable gate array, neural network, program generation.
mailto:doroshenkoanatoliy2@gmail.com
mailto:shymkovych.volodymyr@gmail.com
mailto:tural.mamedov1@gmail.com
mailto:oayat@ukr.net
72 ISSN 2786-6491
REFERENCES
1. Barron A.R. Universal approximation bounds for superposition of a sigmoidal function. IEEE
Transactions on Information Theory. 1993. Vol. 39, N 3. P. 930–945. http://doi.org/
https://doi.org/10.1109/18.256500.
2. Jhang J.-Y., Tang K.-H., Huang C.-K., Lin C.-J., Young K.-Y. FPGA implementation of a func-
tional neuro-fuzzy network for nonlinear system control. Electronics. 2018. Vol. 7, N 145. P. 1–22.
http://doi.org/10.3390/electronics7080145.
3. Costarelli D., Spigler R. Approximation results for neural network operators activated by sig-
moidal functions. Neural Networks. 2013. Vol. 44. P. 101–106. http://doi.org/10.1016/
j.neunet.2013.03.015.
4. Godse A.P., Godse D.A. VHDL programming: concepts, modeling styles and programming. Seat-
tle: Amazon Digital Services LLC, 2020. 206 p.
5. Doroshenko A., Yatsenko O. Formal and adaptive methods for automation of parallel programs
construction: emerging research and opportunities. Hershey : IGI Global, 2021. 279 p. http://
doi.org/10.4018/978-1-5225-9384-3.
6. Pohl C., Paiz C., Porrmann M. vMAGIC — automatic code generation for VHDL. International
Journal of Reconfigurable Computing. 2009. Vol. 2009, Article ID 205149. P. 1–9. http://doi.
org/10.1155/2009/205149.
7. Martín P., Bueno E., Rodríguez Fco. J., Machado O., Vuksanovic B. An FPGA-based approach to
the automatic generation of VHDL code for industrial control systems applications: a case study
of MSOGIs implementation. Mathematics and Computers in Simulation. 2013. Vol. 91. P. 178–192.
http://doi.org/10.1016/j.matcom.2012.07.004.
8. de Bulnes D.R.F., Maldonado Y. VHDL code generation as state machine from a data flow graph.
Proc. 2016 IEEE International Autumn Meeting on Power, Electronics and Computing
(ROPEC 2016) (09–11 November 2016, Ixtapa, Mexico). New York : IEEE, 2016. P. 1–6. http://
doi.org/10.1109/ROPEC.2016.7830518.
9. Benáček P., Puš V., Kubátová H., Čejka T. P4-To-VHDL: automatic generation of high-speed in-
put and output network blocks. Microprocessors and Microsystems. 2018. Vol. 56. P. 22–33.
http://doi.org/10.1016/j.micpro.2017.10.012.
10. Goel K., Arun U., Sinha A. K. An efficient hardwired realization of embedded neural controller
on System-On-Programmable-Chip (SOPC). International Journal of Engineering Research &
Technology. 2014. Vol. 3, N 1. P. 276–284.
11. Singh S., Sanjeevi S., Suma V., Talashi A. FPGA implementation of a trained neural network.
IOSR Journal of Electronics and Communication Engineering. 2015. Vol. 10, N 3. P. 45–54.
12. Mohammadi A., Ryu J.-C. Neural network-based PID compensation for nonlinear systems: ball-
on-plate example. International Journal of Dynamics and Control. 2020. Vol. 8. P. 178–188.
http://doi.org/10.1007/s40435-018-0480-5.
13. Shaheer M., Hashmi H., Khan S., Atif M., Shabbir Z., Ali A., Kamal K., Zafar T., Awan A. Con-
trol of a ball-bot using a PSO trained neural network. Proc. 2nd International Conference on
Control, Automation and Robotics (ICCAR 2016) (28–30 April 2016, Hong Kong, China). New
York : IEEE, 2016. P. 24–28. http://doi.org/10.1109/ICCAR.2016.7486692.
14. Han K., Tian Y., Kong Y., Li J.,. Zhang Y. Tracking control of ball and plate system using an im-
proved PSO on-line training PID neural network. Proc. 2012 IEEE International Conference on
Mechatronics and Automation (5–8 August 2012, Chengdu, China). New York : IEEE, 2012.
P. 2297–2302.
15. Doroshenko A., Shymkovych V., Yatsenko O., Mamedov T. Automated software design for
FPGAs on an example of developing a genetic algorithm. Proc. 17th International Conference
«ICT in Education, Research and Industrial Applications. Integration, Harmonization and
Knowledge Transfer» (ICTERI 2021) (28 September – 2 October 2021, Kherson, Ukraine). 2021.
P. 74–85.
16. Camponogara E., Nazari L.F. Models and algorithms for optimal piecewise-linear function ap-
proximation. Mathematical Problems in Engineering. 2015. Vol. 2015, Article ID 876862.
P. 1–9. http://doi.org/10.1155/2015/876862.
17. Shymkovych V., Samotyy V., Telenyk S., Kravets P., Posvistak T. A real time control system for
balancing a ball on a platform with FPGA parallel implementation. Technical Transactions. 2018.
Vol. 5. P. 109–117. http://doi.org/10.4467/2353737XCT.18.077.8559.
Отримано 28.11.2022
|
| id | nasplib_isofts_kiev_ua-123456789-210912 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 0572-2691 |
| language | Ukrainian |
| last_indexed | 2026-03-21T06:16:51Z |
| publishDate | 2022 |
| publisher | Інститут кібернетики ім. В.М. Глушкова НАН України |
| record_format | dspace |
| spelling | Дорошенко, А.Ю. Шимкович, В.М. Мамедов, Т.А. Яценко, О.А. 2025-12-20T14:34:15Z 2022 Автоматизоване проєктування штучного нейрона для програмова-них логічних інтегральних схем на основі алгебро-алгоритмічного підходу / А.Ю. Дорошенко, В.М. Шимкович, Т.А. Мамедов, О.А. Яценко // Проблеми керування та інформатики. — 2022. — № 5. — С. 61-72. — Бібліогр.: 17 назв. — укр. 0572-2691 https://nasplib.isofts.kiev.ua/handle/123456789/210912 004.4’24,004.3,004.89,004.942 10.34229/2786-6505-2022-5-6 Нейромережеві системи керування є високотехнологічним напрямком теорії керування та відносяться до класу нелінійних динамічних систем. Висока швидкодія за рахунок розпаралелювання вхідної інформації в поєднанні зі здатністю до навчання нейронних мереж робить цю технологію вельми привабливою для створення пристроїв керування в автоматичних системах. Забезпечення швидкодії мереж у реальному часі здійснюється шляхом їх реалізації на програмованих логічних інтегральних схемах (ПЛІС). Одним із прикладів апаратної реалізації нейронних мереж є проєктування штучного нейрона та його нелінійних функцій активації. Технологія розробки додатків для ПЛІС ґрунтується на поданні алгоритму мовою опису апаратури, наприклад VHDL, і автоматичному перекладі цього опису в специфікацію на рівні логічних таблиць та інших функціональних компонентів інтегральних схем. Програмування мовою VHDL досить складне, тому постає питання про розробку спеціальних засобів автоматизації, які дозволили б ефективно генерувати високопродуктивний програмний код. У статті запропоновано засоби автоматизованого проєктування та генерації програм для ПЛІС, що ґрунтуються на алгебрі алгоритмів. Створені засоби застосовано для проєктування штучного нейрона. Розроблено метод конструювання штучного нейрона з сигмоїдальною функцією активації на ПЛІС, який відрізняється від аналогічних підходів тим, що коефіцієнти кусково-лінійної апроксимації функції активації зберігаються в пам’яті лише для додатних або лише для від’ємних значень аргументів. Це дозволило оптимізувати кількість використовуваних обчислювальних ресурсів і підвищити продуктивність нейронної мережі. Даний підхід застосовано для розробки системи з нейромережевим контролером для балансування кульки на платформі, реалізованим на ПЛІС. Neural network control systems are a high-tech area of control theory and belong to the class of nonlinear dynamic systems. High performance, achieved by parallel processing of input information, combined with the learning ability of neural networks, makes this technology highly attractive for creating control devices in automatic systems. Ensuring real-time network performance is achieved by implementing them on programmable logic integrated circuits (PLICs). One example of hardware implementation of neural networks is the design of an artificial neuron and its nonlinear activation functions. The technology for developing applications for PLICs is based on representing an algorithm in hardware description languages, such as VHDL, and automatically translating this description into specifications at the level of logic tables and other functional components of integrated circuits. Programming in VHDL is quite complex, which raises the need for developing specialized automation tools that would efficiently generate high-performance software code. The article proposes tools for automated design and code generation for PLICs based on algorithmic algebra. These tools were applied to the design of an artificial neuron. A method for constructing an artificial neuron with a sigmoid activation function on PLICs was developed, which differs from similar approaches by storing the coefficients of piecewise-linear approximations of the activation function in memory only for positive or only for negative argument values. This approach optimized the number of computational resources used and increased the neural network's performance. This method was applied to develop a system with a neural network controller for balancing a ball on a platform, implemented on a PLIC. uk Інститут кібернетики ім. В.М. Глушкова НАН України Проблемы управления и информатики Роботи та системи штучного інтелекту Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу Automated design of anartificial neuron for field-programmable gate arrays based on analgebra-algorithmic approach Article published earlier |
| spellingShingle | Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу Дорошенко, А.Ю. Шимкович, В.М. Мамедов, Т.А. Яценко, О.А. Роботи та системи штучного інтелекту |
| title | Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу |
| title_alt | Automated design of anartificial neuron for field-programmable gate arrays based on analgebra-algorithmic approach |
| title_full | Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу |
| title_fullStr | Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу |
| title_full_unstemmed | Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу |
| title_short | Автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу |
| title_sort | автоматизоване проєктування штучного нейрона для програмованих логічних інтегральних схем на основі алгебро-алгоритмічного підходу |
| topic | Роботи та системи штучного інтелекту |
| topic_facet | Роботи та системи штучного інтелекту |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/210912 |
| work_keys_str_mv | AT dorošenkoaû avtomatizovaneproêktuvannâštučnogoneironadlâprogramovanihlogíčnihíntegralʹnihshemnaosnovíalgebroalgoritmíčnogopídhodu AT šimkovičvm avtomatizovaneproêktuvannâštučnogoneironadlâprogramovanihlogíčnihíntegralʹnihshemnaosnovíalgebroalgoritmíčnogopídhodu AT mamedovta avtomatizovaneproêktuvannâštučnogoneironadlâprogramovanihlogíčnihíntegralʹnihshemnaosnovíalgebroalgoritmíčnogopídhodu AT âcenkooa avtomatizovaneproêktuvannâštučnogoneironadlâprogramovanihlogíčnihíntegralʹnihshemnaosnovíalgebroalgoritmíčnogopídhodu AT dorošenkoaû automateddesignofanartificialneuronforfieldprogrammablegatearraysbasedonanalgebraalgorithmicapproach AT šimkovičvm automateddesignofanartificialneuronforfieldprogrammablegatearraysbasedonanalgebraalgorithmicapproach AT mamedovta automateddesignofanartificialneuronforfieldprogrammablegatearraysbasedonanalgebraalgorithmicapproach AT âcenkooa automateddesignofanartificialneuronforfieldprogrammablegatearraysbasedonanalgebraalgorithmicapproach |