딥러닝/Notions
Activation Function : Step/Linear Function
Jooyoung Lee
2022. 12. 27. 19:30
활성화 함수 (Activation Function)는 신경망의 출력을 결정하는 식이다.
기존 Perceptron 수식
$$ y= \begin{cases} 0 \quad (w_1x_1 + w_2x_2 \leq \theta) \\ 1 \quad (w_1x_1 + w_2x_2 > \theta) \end{cases} $$
변형된 Perceptron 수식
$$ X = w_1x_1 + w_2x_2 + b $$
$$ h(x) = \begin{cases} 0 \quad x \leq 0 \\ 1 \quad x>0 \end{cases} $$
- 입력 신호의 합 \(h(x)\)를 거쳐 변환되어 \(y\)를 출력.
- \(h(x)\) 함수는 입력 값이 0을 초과하면 1을 리턴하고, 0을 초과하지 않으면 0을 리턴한다.
\(X\) : Perceptron 결과
\(y\) : 출력 값
\(h(x)\) : 활성화 함수
Step Function
$$ h(x) = \begin{cases} 0 \quad x \leq 0 \\ 1 \quad x>0 \end{cases} $$
import numpy as np
import matplotlib.pyplot as plt
def step_function1(x):
if x <= 0:
return 0
else x > 0:
return 1
def step_function2(x):
y = x > 0
return y.astype(np.int)
- 임계치를 기준으로 출력해주는 함수이며, Perceptron algorithm에서 Activation function으로 사용한다.
- 다중 분류 문제 같은 문제에서 다중 출력이 불가하다.
- 신경 세포의 전달 방법을 묘사한 기법이며, 출력되는 결과값이 갖는 정보가 희석된다는 단점이 존재한다.
Linear Function
$$ h(x) = cx \quad(c: 상수) $$
def Linearfunction(x, c):
return c*x
장점
- 다중 출력이 가능하다.
단점
- 역전파 (Backpropagation) 사용이 불가하다.
역전파는 활성화 함수를 미분하여 이것을 이용해서 손실값을 줄이기 위한 과정이다.
선형함수의 미분값은 상수이기에 입력값과 상관없는 결과를 얻는다.
- 은닉층을 무시하고 얻을 수 있는 정보를 제한한다.
활성화 함수를 여러 층을 통하여 얻고자 하는 것은 필요한 정보를 얻기 위함이다.
선형 함수를 여러번 사용하는 것은 마지막에 선형 함수를 한번 쓰는것과 같다.
\( h(x) = cx \) 일 때, \( h(h(h(x))) = c'x \) 이기 때문이다.