입력 신호의 총합을 출력신호로 변환하는 함수.
활성화 함수에 따라 출력값이 결정된다.
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)
이진분류(binary classification)에 주로 사용되는 함수이다.
출력값이 0~1의 값이며, 이는 확률로 표현 가능하다.
이 공식에 대입하여 아래와 같이 시그모이드 함수를 파이썬으로 구현할 수 있다.
위 자료는
x = np.arange(-5,5,0.01) 배열을 입력값으로 받으며,
y1 = sigmoid(x)는 'r-' 빨간 실선으로 표시하고
y2 = step_function_for_numpy(x)는 'b--' 파란색 점선으로 표시하여
matplot함수로 시각화한 그래프이다.
가장 많이 사용되는 함수 중 하나이다.
Rectified란 '정류된'이라는 뜻으로
x가 0이하일 때 차단되어 아무값도 출력하지 않고 0을 출력하는 정류된 선형 함수이다.
위 공식에 대입하여 파이썬으로 구현할 수 있다.
x = 5 이면 5를 출력되고
x = -5 이면 0이 출력되는 것을 확인할 수 있다.
회귀(Regression)문제에서 주로 사용되며 출력층의 활성화 함수로 활용된다.
y = x
입력값 그대로 출력하기 때문에 굳이 정의할 필요는 없지만 신경망 중간 레이어 흐름과 통일하기 위해 사용한다.
항등 함수는 위와 같이 파이썬으로 구현할 수 있다.
시그모이드 : 이진 분류 모델의 마지막 활성화 함수
소프트맥스 : 다중 분류 모델의 마지막 활성화 함수
ReLU : 기본적으로 은닉층에 사용하는 활성화 함수