Python에서 ReLU 함수 파생

Migel Hewage Nimesha 2023년10월10일
  1. Python에서 ReLU 기능 구현
  2. Python에서 ReLU 함수 파생
  3. 결론
Python에서 ReLU 함수 파생

ReLU는 Rectified Linear Activation Function의 약자로 딥 러닝 범위에서 활성화 함수의 가장 인기 있는 대안입니다. ReLU는 입력 값이 양수이면 입력을 동일하게 출력하는 선형 함수의 일부입니다. 그렇지 않으면 출력이 0이 됩니다.

이 기사는 Python 프로그래밍 언어를 사용하여 ReLU 함수의 파생물을 수행하는 방법을 설명합니다.

Python에서 ReLU 기능 구현

수학 함수로서 ReLU 함수를 다음과 같이 정의할 수 있습니다.

f(x) = max(0,x)

이 함수는 x에 대해 선형이며 모든 음수 값에 대해 0을 출력합니다.

다음 의사 코드는 ReLU 함수를 나타냅니다.

if input > 0:
    return input
else:
    return 0

위의 의사 코드와 같이 ReLU 함수 구현을 다음과 같이 빌드할 수 있습니다.

import numpy as nm


def relu_func(x):
    return nm.maximum(0, x)


print(relu_func(2))
print(relu_func(0))
print(relu_func(0.1))
print(relu_func(-3))

이 예를 고려하여 x 매개변수를 사용하여 relu_func 함수를 정의했습니다. 이 함수는 ReLU 함수를 고려한 출력을 반환합니다.

relu_func 함수에 한 번에 하나의 정수를 인수로 전달했습니다.

maximum() 함수는 가장 높은 값을 반환합니다. 정수가 0보다 크면 입력과 동일한 정수를 인쇄합니다. 그렇지 않으면 0을 인쇄합니다.

따라서 위의 코드에서 구현한 ReLU 함수는 모든 단일 정수와 함께 작동합니다. numpy 배열도 있습니다.

다음과 같이 출력을 얻을 수 있습니다.

relu 함수

Python에서 ReLU 함수 파생

그렇지 않으면 ReLU 함수의 파생물은 ReLu의 그래디언트를 호출합니다. 함수의 미분은 기울기입니다.

예를 들어 y= ReLu(x)와 같은 그래프를 만들고 x가 0보다 큰 경우 그래디언트는 1입니다.

x가 0보다 작으면 기울기는 0입니다. x = 0인 경우 미분은 존재하지 않습니다.

ReLu 함수의 수학적 도함수는 다음과 같이 정의할 수 있습니다.

f'(x) = 1, x >= 0
	  = 0, x < 0

ReLu 함수의 도함수를 그래프에 적용할 수 있습니다. 그럼, 다음 예를 봅시다.

# %matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

# define relu function


def relu_func(z):
    return np.maximum(0, z)


z = np.arange(-3, 5, 1)
print(z)
Y = relu_func(z)
print(Y)
plt.plot(z, Y, "o-")
plt.xlabel("X")
plt.ylabel("F(x)")
plt.grid()

위의 코드를 고려하여 z 매개변수를 전달하는 relu_func으로 정의됩니다. 이 함수에서 relu 함수와 x축 범위를 가져오기 위해 정의된 z 변수를 반환합니다.

매개 변수와 함께 relu_func를 전달하도록 정의된 Y 변수도 정의됩니다. relu_func(Z) 함수는 모든 z 값에 대한 reLU를 계산합니다.

따라서 모든 음수 값은 0을 나타냅니다. x축 플롯은 X이고 y축 플롯은 F(x)입니다.

다음 플롯은 위 코드에서 얻은 출력입니다.

파생 relu 함수

앞서 언급한 바와 같이 미분은 특정 지점에서 그래프의 기울기를 의미합니다. 따라서 x=1의 기울기는 1입니다.

0보다 큰 다른 모든 점은 기울기가 1입니다. 그러나 x=-3의 기울기는 무엇입니까?

해당 지점에 경사가 없음을 알 수 있습니다.

0보다 작은 다른 모든 점은 기울기가 0임을 의미하는 기울기 없음을 얻습니다. 그래서 이것을 ReLu 함수의 파생 내장 Python 프로그래밍 언어라고 합니다.

결론

이 기사는 Python에서 ReLu 함수를 구현하는 방법을 설명하고 주로 ReLu 파생 함수를 구현하는 방법에 대해 설명합니다. ReLU 함수는 딥러닝에서 자주 사용됩니다.

그러나 몇 가지 문제가 있습니다. 예를 들어 입력 값이 0보다 작으면 출력은 0이 됩니다.

따라서 신경망은 일부 작업을 계속할 수 없습니다. 이에 대한 해결책으로 Leaky ReLU 기능을 주로 사용합니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.