Выпрямленная линейная функция активации (RELU) представляет собой кусочно-линейную функцию, которая, если вход положителен, скажем, x, выход будет равен x. в противном случае он выводит ноль.

Математическое представление функции ReLU:

Также читайте:

Логика кодирования для функции ReLU проста,

if input_value > 0:
  return input_value
else:
  return 0

Простая функция Python для имитации функции ReLU выглядит следующим образом:

def ReLU(x):
  data = [max(0,value) for value in x]
  return np.array(data, dtype=float)

Производная ReLU,

Простая функция Python для имитации производной функции ReLU выглядит следующим образом:

def der_ReLU(x):
  data = [1 if value>0 else 0 for value in x]
  return np.array(data, dtype=float)

ReLU широко используется в настоящее время, но у него есть некоторые проблемы. скажем, если у нас есть ввод меньше 0, то он выводит ноль, и нейронная сеть не может продолжить алгоритм обратного распространения. Эта проблема широко известна как Dying ReLU. Чтобы избавиться от этой проблемы, мы используем импровизированную версию ReLU, которая называется Leaky ReLU.

Код Python

import numpy as np
import matplotlib.pyplot as plt
# Rectified Linear Unit (ReLU)
def ReLU(x):
  data = [max(0,value) for value in x]
  return np.array(data, dtype=float)
# Derivative for ReLU
def der_ReLU(x):
  data = [1 if value>0 else 0 for value in x]
  return np.array(data, dtype=float)
# Generating data for Graph
x_data = np.linspace(-10,10,100)
y_data = ReLU(x_data)
dy_data = der_ReLU(x_data)
# Graph
plt.plot(x_data, y_data, x_data, dy_data)
plt.title('ReLU Activation Function & Derivative')
plt.legend(['ReLU','der_ReLU'])
plt.grid()
plt.show()

подробнее о функциях активации — ссылка.

Первоначально опубликовано в vidyasheela.