ReLU 함수는 최근에 많이 이용되는 활성화 함수입니다. ReLU 함수의 특징은 입력
값이 0을 넘으면 그대로 출력하고, 0 이하이면, 0을 출력합니다. 식으로 표현하면
h(x) = { x (x>0), 0 (x ≤ 0) }으로 표현이 가능할 것 같습니다. 코드로도 간단히 아래와 같이 표현해 볼 수 있습니다.
def relu(x):
return np.maximum(0, x)
ReLU 함수가 등장하게 된 배경은 앞에 설명한 Sigmoid함수와 관계가 있습니다.
바로 Sigmoid함수가 BackPropagation이 적용되는 딥러닝의 Hidden Layer가 깊어질 수록 미분값이 0에 가까워 지면서 제대로 학습이 되지 않는 현상이 나타나기 때문입니다. ReLU 함수의 그래프는 아래와 같습니다.
출처 : http://nmhkahn.github.io/NN
ReLU 함수는 복잡한 Hidden Layer가 깊어져도 Sigmoid와 다르게 학습이 명확히
이루어진다고 합니다. 하지만, 0이상의 값은 무한히 커질 수 있기 때문에, 표현 범위를 제한하고자 한다면, 정규화라는 과정을 통해 일정 범위의 값이 나오도록 조정해 주는게 필요하다고 합니다. 이부분은 제가 직접 해보지 않은 부분이라 나중에 추가적으로 더 설명드리도록 하겠습니다. 오늘도 감사합니다.
======================================================
2017/09/21 - [ML & DL] - 혼자 해보는 머신러닝 (5) 활성화 함수 - Sigmoid
2017/09/20 - [ML & DL] - 혼자 해보는 머신러닝 (4) 퍼셉트론에서 신경망으로
2017/09/20 - [ML & DL] - 혼자 해보는 머신러닝 (3) 다층 퍼셉트론과 XOR
'ML & DL' 카테고리의 다른 글
혼자 해 보는 머신러닝 딥러닝 (7) 신경망의 구현 (0) | 2017.09.23 |
---|---|
혼자 해 보는 머신러닝 딥러닝 (5) 활성화 함수 - Sigmoid (0) | 2017.09.21 |
혼자 해 보는 머신러닝 딥러닝 (4) 퍼셉트론에서 신경망으로 (0) | 2017.09.20 |
혼자 해 보는 머신러닝 딥러닝 (3) 다층 퍼셉트론과 XOR (0) | 2017.09.20 |
혼자 해 보는 머신러닝 딥러닝 (2) 단층 퍼셉트론의 구현 (0) | 2017.09.19 |