You are on page 1of 11

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ БУДІВНИЦТВА І АРХІТЕКТУРИ

Кафедра автоматизації технологічних процесів


Функції активації
З дисципліни « Сучасні підходи до створення інтелектуальних систем»
На тему: « Leaky Rectified Linear Unit»

Розробив студент групи: АТП-1М


Дяченко А.Л.
Перевірила:
Ас. Соболевська Л.Г.

Київ 2023р
1. Зміст

1. Зміст........................................................................................................................2
2. Вступ......................................................................................................................3
3. Функція активації LReLU.....................................................................................4
4. Переваги та недоліки функції..............................................................................6
5. Реалізація коду......................................................................................................8
6. Список джерел інформації.................................................................................10

2
2. Вступ
Згорткові нейронні мережі (CNN) все частіше використовуються в
багатьох сферах комп'ютерного зору. Вони особливо привабливі завдяки своїй
здатності "поглинати" великі обсяги маркованих даних з безліччю параметрів.
Розробка функцій активації, які дозволяють швидко навчати точні глибокі
нейронні мережі, є популярним напрямком досліджень.
За останні десятиліття нейронні мережі стали ключовою технологією в
обчисленнях і штучному інтелекті. Вони здатні вирішувати різноманітні
завдання, включаючи візуальне розпізнавання, мовленнєвий аналіз, автономне
керування та багато інших. Проте однією з найважливіших складових
нейронних мереж є активаційні функції.
Активаційні функції визначають вихід нейронів у нейронних мережах і
впливають на їх здатність навчатися та вирішувати завдання. Однією з
ключових активаційних функцій є "Rectified Linear Unit" або ReLU, яка широко
використовується завдяки своєму простому обчислювальному вигляду та
ефективності. Проте існують і інші активаційні функції, такі як Leaky ReLU,
Sigmoid та Tanh, кожна з яких має свої переваги та недоліки.
У цьому контексті робота на тему активації в нейронних мережах
досліджує різні активаційні функції, їхні властивості та вплив на
продуктивність нейронних мереж. Вона також вивчає способи оптимізації та
вибору активаційних функцій в залежності від конкретного завдання.
Дослідження в цій області має велике практичне застосування в сферах,
де нейронні мережі використовуються для розв'язання завдань штучного
інтелекту. Вивчення та розвиток активаційних функцій допомагає покращити
продуктивність нейронних мереж і робить їх більш ефективними в різних
областях, включаючи комп'ютерне бачення, обробку природної мови та багато
інших. Таким чином, робота на цю тему відкриває нові можливості для
вдосконалення та розширення застосувань нейронних мереж в сучасному світі
технологій.

3
3. Функція активації LReLU
Leaky Rectified Linear Unit, або Leaky ReLU - це тип функції активації,
заснований на ReLU (рис 1.), але вона має невеликий нахил для від'ємних
значень замість плоского нахилу. Коефіцієнт нахилу визначається перед
тренуванням, тобто він не вивчається під час тренування. Цей тип функції
активації популярний у задачах, де ми можемо зіткнутися з розрідженими
градієнтами, наприклад, при навчанні генеративних нейронних мереж.[1]

ƒ(x) = max(ax,x)
Формула 1. Формула ReLU. Де x — вхідний сигнал, a – коефіцієнт константа.

Розглянемо (формулу 1.). Коли x додатне, функція Leaky ReLU


поводиться як функція ReLU, повертаючи x. Однак, коли x є від’ємним,
функція Leaky ReLU повертає невелике від’ємне значення, пропорційне
вхідному значенню x.

Рисунок. 1 Діапазон функції LRELU

Це допомагає уникнути проблеми «вмирання ReLU» зі стандартною


функцією ReLU, коли нейрон із негативним зміщенням може ніколи не
активуватися та стати «мертвим».
Основна перевага Leaky ReLU перед стандартною функцією ReLU
полягає в тому, що вона може допомогти покращити продуктивність глибоких
нейронних мереж шляхом вирішення проблеми ReLU, яка вмирає . Вводячи
невеликий нахил для від’ємних значень x, Leaky ReLU гарантує, що всі
нейрони в мережі можуть сприяти виходу, навіть якщо їхні вхідні дані
від’ємні .

4
Однак варто зазначити, що вибір константи витоку a є гіперпараметром,
який потрібно ретельно налаштовувати , оскільки занадто високе значення
може призвести до того, що функція Leaky ReLU буде поводитися надто як
лінійна функція, тоді як встановлення занадто низького значення може
недостатньо для ефективного вирішення вмираючої проблеми ReLU.[2]
Тепер, коли ми розглянули математичні позначення для функції Leaky
ReLU, давайте подивимося на графік функції, щоб зрозуміти її глибше (рис. 2).
Припустимо що ми використовуємо невелике постійне значнення для змінної
alpha. У цьому випадку всі від'ємні значення на осі х, що представляють вхідні
дані функції, відображаються близько до нуля, тоді як додатні значення
залишаються незмінними. Значення константи alpha визначається тільки на
початку навчання, тобто не змінюється під час навчання моделі.

Рисунок. 2 Графік функції LRELU.

5
4. Переваги та недоліки функції
Переваги:
1. Уникнення проблеми "вмирання градієнта": Однією з головних
переваг LReLU є її здатність уникати проблеми вимирання градієнта, яка
може виникати в звичайному ReLU. У звичайному ReLU, якщо вхід до
нейрона стає від'ємним, градієнт стає нульовим, і нейрон перестає
навчатися. У LReLU для від'ємних значень використовується невеликий
нахил, що дозволяє градієнту і нейрону залишатися активними.
2. Збереження нелінійності: LReLU залишає нелінійні властивості ReLU,
що є важливим для вирішення складних завдань. Водночас вона зменшує
можливість виникнення проблеми вимирання градієнта, що робить її
вибором за замовчуванням для багатьох архітектур нейронних мереж.
3. Відносно проста обчислювальна форма: LReLU зберігає простоту
обчислювальної форми ReLU. Це важливо для ефективної роботи
нейронних мереж на обчислювальних пристроях.
4. Збалансований вибір коефіцієнта нахилу: Коефіцієнт нахилу (alpha) у
LReLU може бути налаштованим під час навчання для оптимальної
продуктивності. Це дозволяє регулювати активацію нейронів залежно від
потреб конкретного завдання.
Недоліки:
1. Додаткові параметри для налаштування: У LReLU є ще один
гіперпараметр (параметр alpha), який потрібно налаштовувати під час
навчання. Це додає додатковий рівень складності до процесу
налаштування нейронних мереж і може вимагати додаткового часу та
зусиль.
2. Неоднозначність параметра alpha: В LReLU, параметр alpha визначає
нахил функції для від'ємних значень. Вибір величини alpha не є
тривіальним завданням, і його оптимальне значення може варіюватися в
залежності від конкретного завдання. Якщо alpha вибрати надто великим,
то LReLU може втратити частину своїх переваг над звичайним ReLU.
Невірний вибір alpha може призвести до неефективного навчання мережі.
3. Зменшена дискретність: В деяких випадках, використання LReLU може
призвести до меншої дискретності виходу, оскільки вона дозволяє
значенням функції бути у діапазоні від нуля до нескінченності. Це може
призвести до більших обчислювальних витрат та меншої чіткості
розділення між активованими та неактивованими нейронами.

6
4. Інші функції активації можуть бути кращими: У деяких завданнях і
для певних архітектур LReLU може бути менш ефективною в порівнянні
з іншими активаційними функціями, такими як Parametric ReLU (PReLU)
або Exponential Linear Unit (ELU). Вибір оптимальної функції активації
залежить від конкретного завдання та архітектури мережі.

7
5. Реалізація коду
Для даної функції активації було використано мову програмування
Python. В даному коді ми розглянемо спосіб використання функції з
прикладами, та графіками. Нижче вказано програму для функції активації.[3]
import numpy as np
import matplotlib.pyplot as plt

В даному фрагменті відбуваєть додавання бібліотек, функції яких будуть


використовуватися в коді. Numpy — розширення мови Python, що додає
підтримку великих багатовимірних масивів і матриць, разом з великою
бібліотекою високорівневих математичних функцій для операцій з цими
масивами. Matplotlib — бібліотека на мові програмування Python для
візуалізації даних двовимірною 2D графікою. Отримувані зображення можуть
бути використані як ілюстрації в публікаціях.

plt.style.use('seaborn')
plt.figure(figsize=(8,4))

Наступним кроком відбуваєть ініціалізаця графіка. А саме вибір стилю та


розміру виведення графіку.

def LReLU(arr):
lst=[]
for i in arr:
if i>=0:
lst.append(i)
else:
lst.append(0.01*i)
return lst

Це наша основна фунцкія def LreLU(). Якій передається значення рядку,


зі зімінними. Посилаючись на формулу 1 та рисунок 1, з цього виходить що
якщо значення більше або дорівює 0, воно добавить цеж значення в тимчасвоий
масив (lst). В протилежному випадку ми застосовуємо наш коефіцієнт alpha,
який дорівнює 0,01 та добавить це значення в тимчасовий масив. В кінці після
обробки всіх значень ми повертаємо наш змінений список.

arr = np.linspace(-10, 50,num = 100)


plt.plot(arr, LReLU(arr))
plt.title('Leaky ReLU Activation Function')
plt.show()

Наступний крок це виведедння інформації у вигляді графіку, завдяки


якому ми візуально можемо побачити вихфдний результат функції.Завядки
функції np.linspace(-10, 50,num = 100), ми вказуємо діапазон значень та їх
кількість. Ось на рис. 3 ми бачимо результат нашої програми.
8
Рисунок. 3 Результат виконна програми.

Загальний код програми:


import numpy as np
import matplotlib.pyplot as plt

plt.style.use('seaborn')
plt.figure(figsize=(10,6))
def LReLU(arr):
lst=[]
for i in arr:
if i>=0:
lst.append(i)
else:
lst.append(0.01*i)
return lst
arr = np.linspace(-10, 50,num = 100)
plt.plot(arr, LReLU(arr))
plt.title('Leaky ReLU Activation Function')
plt.show()

Як результат нашої програми ми отримали графік, в якому є діапазон


чисел від -10 до 50. Всі числа що менше 0, виокристовували додаткову функію.
На графіку видно, що вони близькі до 0. Всі додатні числа залишилися
незмінними.
Загалом, LReLU є ефективною та досить надійною активаційною
функцією, яка дозволяє нейронним мережам вирішувати проблему вимирання
градієнта та забезпечує їхню здатність навчатися на широкому спектрі завдань.
Вибір функції активації, включаючи LReLU, повинен бути обгрунтованим в

9
контексті конкретного завдання та враховувати переваги та недоліки кожної
функції відповідно до його потреб.

10
6. Список джерел інформації

1. Електронний ресурс,
https://python.hotexamples.com/ru/examples/keras.layers.advanced_activation
s/LRelu/-/python-lrelu-class-examples.html
2. Електронний ресурс,
https://www.digitalocean.com/community/tutorials/relu-function-in-python
3. Електронний ресурс,
https://www.analyticsvidhya.com/blog/2022/01/activation-functions-for-
neural-networks-and-their-implementation-in-python/?
social=google&next=https%3A%2F%2Fwww.analyticsvidhya.com%2Fblog
%2F2022%2F01%2Factivation-functions-for-neural-networks-and-their-
implementation-in-python%2F
4. Електронний ресур https://matplotlib.org/stable/tutorials/pyplot.html

11

You might also like