💡 활성함수란?

입력 신호의 총합을 출력신호로 변환하는 함수.
활성화 함수에 따라 출력값이 결정된다.

✔️ 종류

1. Step Function(계단함수)

y 값이 0에서 0.9 사이에서는 반응이 발생하지 않는다.
y=1이 되었을 때 반응이 발생한다.

계단 함수를 위와 같이 구현해보았을 때,
x>0 이면 1을 리턴해주고 x<=0 이면 0을 리턴하게 되어 있다.
출력 결과 0일때 0, -1일때 0, 0.1일때 1이라는 결과값이 도출된다.

리스트로 입력값을 받으면,
a = np.array([5,3,-4,2,0])는 def step_function_for_nump(x)의 x값이며
y = x > 0 으로 계산되어 return y.astype(np.int) 결과로 도출된다.
return값은 int 정수형으로 1 또는 0이 된다.
x = 5, y = True(=1)
x = 3, y = True(=1)
x = -4, y = False(=0)
x = 2, y = True(=1)
x = 0, y = False(=0)

2.Sigmoid Function(시그모이드 함수)

이진분류(binary classification)에 주로 사용되는 함수이다.
출력값이 0~1의 값이며, 이는 확률로 표현 가능하다.

  • 이진분류란? 예를 들면 개와 고양이를 분류할때 값이 정확하게 나눠지지 않고 애매한 위치에 분포한 데이터들이 존재한다. 이때 선명하게 분류하기 위해 시그모이드 함수가 사용된다. 변별력을 높여주는 역할을 하기 때문에 중간층에서 사용하지 않고 마지막 층에서 확실하게 분류할 때 사용한다.

이 공식에 대입하여 아래와 같이 시그모이드 함수를 파이썬으로 구현할 수 있다.

  • 계단 함수와 시그모이드 함수 비교

위 자료는
x = np.arange(-5,5,0.01) 배열을 입력값으로 받으며,
y1 = sigmoid(x)는 'r-' 빨간 실선으로 표시하고
y2 = step_function_for_numpy(x)는 'b--' 파란색 점선으로 표시하여
matplot함수로 시각화한 그래프이다.

3. ReLU(Rectified Linear Unit) 함수

가장 많이 사용되는 함수 중 하나이다.

Rectified란 '정류된'이라는 뜻으로
x가 0이하일 때 차단되어 아무값도 출력하지 않고 0을 출력하는 정류된 선형 함수이다.

위 공식에 대입하여 파이썬으로 구현할 수 있다.

x = 5 이면 5를 출력되고
x = -5 이면 0이 출력되는 것을 확인할 수 있다.

4. Identity Function(항등 함수)

회귀(Regression)문제에서 주로 사용되며 출력층의 활성화 함수로 활용된다.

y = x

입력값 그대로 출력하기 때문에 굳이 정의할 필요는 없지만 신경망 중간 레이어 흐름과 통일하기 위해 사용한다.

항등 함수는 위와 같이 파이썬으로 구현할 수 있다.

💡 정리

시그모이드 : 이진 분류 모델의 마지막 활성화 함수
소프트맥스 : 다중 분류 모델의 마지막 활성화 함수
ReLU : 기본적으로 은닉층에 사용하는 활성화 함수

profile
MS AI School2 Student

0개의 댓글