활성화 함수

_찬·2022년 11월 21일
0

ai 이론

목록 보기
4/4
post-thumbnail

활성화 함수

편향을 명시한 퍼셉트론에서 h(x)라는 함수를 썼었는데 이처럼 입력 신호의
총합을 출력신호로 변환하는 함수를 일반적으로
활성화 함수라고 한다.


활성화는 말 그대로 식이 2개로 나뉘는데, 가중치가 곱해진 입렭신호의 총합을 계산하고 그 합을 활성화 함수에 입력해 결과를 내는 2단계로 처리된다.

활성화 함수 식


a = b + w1x1 + w2x2
y = h(a)

출처 : https://url.kr/pwlcbx

가중치가 달린 입력신호와 총합을 a라 할때, 활성화 함수의 처리과정

활성화 함수는 임계값을 경계로 출력이 바뀌는데, 이런 함수를 계단함수라 한다.


계단함수

시그모이드 함수

신경망에서 자주 이용하는 활성화 함수인 시그모이드 함수를 나타낸 식

e(-x)에서 e는 자연상수로 2.7182... 의 값을 가지는 실수이다.
예를 들어 시그모이드 함수에 1.0과 2.0을 입력하면
h(1.0) = 0.731..., h(2.0) = 0.880... 과 같은 특정 값을 출력한다.

계단 함수 구현

import numpy as np
import matplotlib.pylab as plt


def step_function(x):
    return np.array(x > 0, dtype=np.int)

X = np.arange(-5.0, 5.0, 0.1)
Y = step_function(X)
plt.plot(X, Y)
plt.ylim(-0.1, 1.1)  # y축의 범위 지정
plt.show()


시그모이드 함수 구현

import numpy as np
import matplotlib.pyplot as plt

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# x = np.array([-1.0, 1.0, 2.0])
# sigmoid(x)
# >> ([0.26894142, 0.73105858, 0.88079708])

x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()


계단 함수와 시그모이드 함수 차이

위 그림을 보면 알겠지만 가장 큰 차이점은 매끄러움일 것이다.
계단 함수는 0과 1 중 하나의 값만 돌려주는 반면 시그모이드 하수는 실수 (7.930, 6.001)를 돌려준다.

계단 함수와 시그모이드 함수 공통점

둘 다 입력이 작을 때의 출력은 0에 가깝고, 입력이 커지면 1에 가까워지는 구조이다.
또한 계단 함수와 시그모이드 함수는 비선형 함수이다.

ReLU 함수

활성화 함수에는 ReLU라는 함수도 있다.
최근들어 가장 많이 사용되는 함수라고 한다.


출처 : https://url.kr/naj32c

ReLU 함수는 입력이 0을 넘으면 그 입력을 그대로 출력하고 0 이하이면 0을 출력하는 함수이다.

수식으로는 아래와 같이 쓸 수 있다.

profile
꾸준한 사람이 되길!

0개의 댓글