Deep Learning (DL)
활성화 함수 - 계단 함수 (Step function) 란?
심전코
2022. 10. 29. 01:57
활성화 함수(Activation function)
활성화 함수는 가중 합의 출력 값이 입력되었을 때, 그대로 출력 하지 않고
값을 증폭 시키거나, 감소 시키는 등 얼마 만큼의 신호로 출력 할 지 정해주는 함수이다.
활성화 함수는
크게 4가지 종류가 있다.
1. 계단 함수 ( Step function )
입력 값이 임계값을 넘기면 1, 그렇지 않으면 0 을 출력하는 함수이다.
주로,
생물체의 전기적인 신호를 보낸다=1, 보내지 않는다=0 의 형태로 대화하기 때문에
이를 모사하기 위하여 계단 함수가 고안되었다.
임계값이란?
귀무가설 하 검정 통계량의 분포에서
귀무가설을 기각해야 하는 값의 집합을 정의하는 점 이다.
이 집합은 임계 또는 기각 영역이라고 한다.
(예시 이미지의 그래프 에서는 임계값이 0 으로 주어져 있다.)
Step function
위 그래프를 토대로 출력 값(==가중 합 == 0.5)을 입력 해 보면,
1 이 출력 됨을 알 수 있다.
코드 예시
###python 코드
# 필요한 패키지를 import 해줍니다.
import numpy as np
import matplotlib.pyplot as plt
import math
# 입력할 샘플 데이터를 만들고 확인합니다.
x = np.array([-1, 1, 2])
print("input : ", x)
# 입력 값이 임계값(0)을 넘기는지 판단합니다.
y = x>0
print("Logic : ", y)
# 논리(boolean)형태를 정수형으로 바꾸어 0과 1로 나타냅니다.
y = y.astype(np.int)
print("Boolean : ", y)
>>> input : [-1 1 2]
>>> Logic : [False True True]
>>> Boolean : [0 1 1]
### 함수
def step_function(x):
return np.array(x>0, dtype=np.int)
# 함수가 제대로 만들어 졌는지 값을 출력해봅니다.
print(step_function(-1)) # 0
print(step_function(0.5)) # 1
print(step_function(500000)) # 1
# 구현한 계단 함수의 값을 바탕으로 그래프를 그려봅시다.
x = np.linspace(-1, 1, 100)
plt.step(x, step_function(x))
plt.show()