ReLU 활성화 함수란?
정류 선형 유닛(Rectified Linear Unit), 줄여서 ReLU는 현대 신경망에서 가장 널리 쓰이는 활성화 함수 중 하나입니다. 정의는 \(f(x) = \max(0, x)\)로, 입력이 양수이면 그 값을 그대로 반환하고 음수이면 0을 반환합니다. 이 단순한 구간별 선형(piecewise-linear) 규칙은 신경망에 비선형성을 더해 주면서도 계산 비용이 매우 적고 미분도 간단하다는 장점이 있습니다.
계산기 사용 방법
세 가지 값을 입력하세요. 스윕을 시작할 x의 초기값, 한 번 반복할 때마다 x가 변하는 증분(스텝 크기), 그리고 생성할 점의 개수(반복 횟수)입니다. 계산기는 각 x 값에서 ReLU를 평가해 (x, f(x)) 데이터 표를 완성하고, 원점에서 꺾이며 처음엔 평평하다가 이후 상승하는 ReLU 특유의 형태를 선 그래프로 그려 줍니다.
공식 자세히 보기
ReLU는 \(f(x) = \max(0, x)\)로 정의되며, 이는 "x > 0이면 x, 그렇지 않으면 0"과 같습니다. 스윕은 \(k = 0\)부터 (반복 횟수 - 1)까지에 대해 다음 규칙으로 생성됩니다.
$$f(x_k) = \max\left(0,\; x_k\right), \quad x_k = \text{Start }x + k \cdot \text{Step}, \quad k = 0,1,\dots,\text{Count}-1$$따라서 마지막 x 값(endX)은 \(\text{startX} + (\text{반복 횟수} - 1) \cdot \text{stepX}\)가 됩니다. 함수는 모든 음수 입력에서 0으로 평평하게 유지되다가, 양수 입력에서는 기울기 1로 일정하게 상승합니다.
예제로 확인하기
기본값인 \(\text{startX} = -5\), \(\text{stepX} = 0.1\), 반복 횟수 = 101을 사용하면, 스윕은 x를 \(-5\)부터 \(-5 + 100 \cdot 0.1 = +5\)까지 양 끝점을 포함한 101개 점에 걸쳐 다룹니다. \(x = -2.0\)일 때 \(f = \max(0, -2.0) = 0\), \(x = 0\)일 때 \(f = 0\), \(x = 0.1\)일 때 \(f = 0.1\), \(x = 2.5\)일 때 \(f = 2.5\), \(x = 5.0\)일 때 \(f = 5.0\)이 됩니다. 그려진 곡선은 음수 구간 내내 0에 머물다가 (5, 5)까지 선형으로 올라갑니다.
자주 묻는 질문
ReLU는 0에서 미분 가능한가요? 아니요. ReLU는 \(x = 0\)에서 꺾이는 점(킹크)이 있어 그 지점에서는 미분할 수 없습니다. 도함수는 \(x < 0\)일 때 0, \(x > 0\)일 때 1이며, 관례상 \(x = 0\)에서의 도함수는 흔히 0으로 둡니다.
스텝을 음수로 설정할 수 있나요? 네. 음수 스텝은 x를 아래쪽으로 스윕합니다. 스텝이 0이면 모든 x가 시작값과 같아져 상수 열만 나오는 퇴화(degenerate) 형태가 됩니다.
ReLU는 왜 이렇게 인기가 많나요? 양수 입력에 대해 시그모이드나 tanh에서 나타나는 기울기 소실(vanishing gradient) 문제를 피할 수 있고, 계산이 거의 부담 없으며, 희소 활성화(sparse activation)를 만들어 내는 경향이 있어 학습 속도를 높여 주는 경우가 많기 때문입니다.