기계학습에서 ReLU란?
정의
기계학습에서, 다음의 함수를 정류 선형 단위Rectified Linear Unit(ReLU), 렐루라 한다.
$$ f(x) = x^{+} := \max \left\{ 0, x \right\} $$

설명
전기전자공학에서는 이를 램프 함수ramp function라 한다. 머신러닝에서 활성화함수로서의 관점이 아닌, 함수 그 자체에 대한 설명이나 성질(여러가지 정의 방법, 도함수 등)은 램프 함수 문서를 참고하자.
'정류'rectification라는 이름은 전기공학에서 다이오드가 교류 신호의 양의 성분만 통과시키는 정류에서 따온 것이다. $\operatorname{ReLU}$도 입력이 양수면 그대로 통과시키고 음수면 $0$으로 잘라내므로, 정류기와 똑같이 동작한다.
역사
정류 꼴의 활성화는 신경망 연구 초기부터 등장했다. Fukushima는 1969년 시각 특징 추출을 위한 다층 신경망에서 음수 입력을 $0$으로 잘라내는 활성화를 사용했다1. ‘정류 선형 단위’라는 이름은 Nair와 Hinton이 2010년 ICML에서 발표한 논문에서 비롯되었다2. 이들은 제한 볼츠만 머신restricted Boltzmann machine의 은닉 유닛을 정류 선형 유닛으로 바꾸면 성능이 개선됨을 보였다. 이듬해 Glorot, Bordes, Bengio는 시그모이드나 하이퍼볼릭 탄젠트 대신 정류 활성화를 쓰면, 당시 깊은 신경망 학습에 필수처럼 여겨지던 비지도 사전학습 없이도 심층신경망을 잘 학습시킬 수 있음을 보였다3.
활성화함수로서의 쓰임
$\operatorname{ReLU}$가 활성화함수로 널리 쓰이는 이유는 다음과 같이 정리된다.
기울기 소실 완화: 시그모이드 함수는 도함수의 최댓값이 $1/4$이고 입력의 절댓값이 크면 기울기가 $0$에 가까워지는 포화가 일어나므로, 층을 깊게 쌓으면 기울기 소실이 필연적으로 발생한다. 반면 $\operatorname{ReLU}$는 양수 영역에서 도함수가 항상 $1$이므로 기울기가 층을 지나며 줄어들지 않고, 덕분에 훨씬 깊은 신경망을 학습시킬 수 있다.
계산 효율: 지수 함수 계산 없이 비교 연산 하나로 끝나므로 순전파와 역전파 모두 시그모이드 계열보다 훨씬 저렴하다. 참고로 $0$에서 미분이 불가능하다는 점은 실전에서 문제가 되지 않는다. 구현에서는 그 점의 기울기를 그냥 $0$이나 $1$로 두면 된다.
희소성: 출력의 상당 부분이 정확히 $0$이 되어 희소한 표현을 만든다. 이것이 실제 뉴런의 발화 방식과 닮았고 학습에도 유리하다는 것이 Glorot 등의 주장이다3.
죽은 $\operatorname{ReLU}$와 변형
물론 단점도 있다. 음수 영역에서는 기울기가 아예 $0$이므로, 학습 중에 어떤 뉴런의 입력이 항상 음수가 되어 버리면 그 뉴런은 더 이상 갱신되지 않는다. 이를 죽은 $\operatorname{ReLU}$dying ReLU 문제라 한다. 이를 보완하기 위해 음수 영역에 작은 기울기 $\alpha$ (보통 $0.01$)를 남겨 둔 $\operatorname{LeakyReLU}$가 제안되었고4, 그 기울기 $\alpha$ 자체를 학습하는 $\operatorname{PReLU}$parametric ReLU도 뒤따랐다5.
$$ \operatorname{LeakyReLU}(x) := \begin{cases} x & x \gt 0 \\ \alpha x & x \le 0 \end{cases} $$
$0$에서도 미분가능한 부드러운 변형으로는 소프트플러스와 $\operatorname{GELU}$Gaussian error linear unit가 있다. $\operatorname{GELU}$는 표준정규분포의 누적분포함수 $\Phi$를 써서 다음과 같이 정의되며6, BERT나 GPT 같은 트랜스포머 계열 모델에서 표준처럼 쓰인다.
같이보기
Fukushima, Kunihiko. Visual feature extraction by a multilayered network of analog threshold elements. IEEE Transactions on Systems Science and Cybernetics 5.4 (1969): 322-333. ↩︎
Nair, Vinod, and Geoffrey E. Hinton. Rectified linear units improve restricted Boltzmann machines. Proceedings of the 27th International Conference on Machine Learning (ICML). 2010. ↩︎
Glorot, Xavier, Antoine Bordes, and Yoshua Bengio. Deep sparse rectifier neural networks. Proceedings of the 14th International Conference on Artificial Intelligence and Statistics (AISTATS). 2011. ↩︎ ↩︎
Maas, Andrew L., Awni Y. Hannun, and Andrew Y. Ng. Rectifier nonlinearities improve neural network acoustic models. ICML Workshop on Deep Learning for Audio, Speech and Language Processing. 2013. ↩︎
He, Kaiming, et al. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. Proceedings of the IEEE International Conference on Computer Vision (ICCV). 2015. ↩︎
Hendrycks, Dan, and Kevin Gimpel. Gaussian error linear units (GELUs). arXiv preprint arXiv:1606.08415 (2016). $$ \operatorname{GELU}(x) := x \Phi (x) $$ ↩︎

저희들의 저서 「줄리아 프로그래밍」이 2024 세종도서 학술부문에 선정되었습니다!

