📈활성 함수의 역할
activation function은 출력값을 변환해주는 역할을 하는 함수입니다.
이렇게 할 경우 input에 대한 결과값을 얼마나 출력할 지를 조절할 수 있습니다.
또한 비선형 함수를 사용하여 여러 개의 층을 쌓을 수 있도록 만들어 줍니다.
📌왜 비선형함수일까?
선형 함수를 사용할 경우 층을 쌓는 의미가 사라집니다.
그 이유를 예를 들어 보겠습니다.
$h(x)=cx$라는 선형함수 식을 활성함수로 사용할 경우
$y(x)=h(h(h(x)))$로 여러 층을 쌓은 결과가 $y=c^3x$가 됩니다.
$c^3$을 $a$로 치환하면 $y=ax$인 선형 함수로 돌아와 버립니다.
따라서 층을 구성하는 의미가 없게 되므로 반드시 비선형함수를 사용해야 합니다.
📈활성 함수의 종류
activation function의 대표적인 종류로 step, sigmoid, tanh, ReLu 등이 있습니다.
1. Step function
def step(x):
if x > 0:
return 1
else:
return 0
계단 함수는 0보다 크면 무조건 1, 작으면 0이 반환되는 것처럼 특정 값을 기준으로 명확하게 값이 분류되는 함수입니다.
2. Sigmoid function
$$y = \frac{1}{(1+e^{-x}))}
$$
시그모이드 함수의 특징은 다음과 같습니다.
- 0과 1사이의 값을 반환
- 함수의 평균값 0.5
- input이 클수록 1에 가깝고, 작을수록 0에 가까워짐
2번의 경우 파라미터 학습 속도를 낮추는 원인이 되고 tanh 함수가 대안으로 나오게 됩니다.
또한 미분 했을 시 0~0.3 값이 나오기 때문에 Gradient vanishing 문제가 발생합니다.
3. Tanh function
$$y = \frac{1-e^{-x}}{1+e^{-x}}$$
하이퍼블릭 탄젠트 함수는 다음의 특징을 가집니다.
- -1과 1사이의 값 출력
- 함수의 평균값 0
- input이 클수록 1, 작을수록 -1에 가까워짐
기울기를 보면 1과 -1로 수렴하는 속도가 Sigmoid보다 빠른 것을 알 수 있습니다.
하지만 미분 했을 경우 0~1 사이의 값을 갖기 때문에 Gradient vanishing 문제는 존재합니다.
4. ReLU function
$$y=max(0,x)$$
ReLU 함수는 기울기 소실 문제를 해결하기 위해 나온 함수입니다.
이 문제를 해결 할 수 있는 이유는 0이상의 값은 그대로 출력하되, 0이하의 값은 0으로 만듭니다.
이상으로 활성함수의 역할과 종류별 특징에 대해 알아보았습니다.
'데이터사이언스' 카테고리의 다른 글
과적합(Overfitting) 방지하기 (0) | 2021.03.08 |
---|---|
구글 플레이 스토어 - 리뷰 데이터 크롤링하기 (21) | 2021.01.14 |
외모지상주의 - 베스트 댓글 크롤링하기 (6) | 2021.01.12 |
Pandas - 데이터프레임 생성/병합/추출하기 (4) | 2021.01.08 |
Pickle과 Write 차이점 + With ... as 구문 (0) | 2020.12.29 |