Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

ReLU (Rectified Linear Unit)

ReLU(정류 선형 유닛)는 max(0, x)를 출력하여 양수 입력은 그대로 통과시키고 음수 입력은 0으로 만듭니다. 그래디언트, 죽은 ReLU, 변형 및 PyTorch 코드를 다룹니다.

정류 선형 유닛(ReLU)은 활성화 함수 f(x) = max(0, x)입니다. 양수 입력은 변경 없이 전달하고 나머지 입력에는 0을 출력합니다. 이 간단한 비교 연산만으로도 신경망(NN)은 곡선 형태의 패턴을 학습하는 데 필요한 비선형성을 거의 추가 연산 없이 얻습니다. Vinod Nair와 Geoffrey Hinton이 2010년에 ReLU를 사용하고 ReLU를 기반으로 한 합성곱 신경망(CNN) AlexNet이 2012년 ImageNet 대회에서 우승한 뒤, ReLU는 딥러닝의 기본 은닉 계층 활성화 함수가 되었습니다. SiLU와 GELU 같은 최신 활성화 함수도 여전히 ReLU를 기준으로 평가합니다.

ReLU의 작동 방식#

ReLU의 도함수는 양수 입력에서 1, 음수 입력에서 0입니다. 정확히 0일 때 도함수는 정의되지 않으며 PyTorch와 같은 프레임워크에서는 0을 사용합니다. 이 두 값이 ReLU의 주요 특성을 설명합니다.

  • 계산 비용이 낮음: 순전파는 0과 비교하는 연산이고 역전파는 마스크 연산이므로, 시그모이드나 tanh처럼 지수 연산이 필요하지 않습니다.
  • 양수 입력에서 포화되지 않음: 기울기가 정확히 1인 활성 유닛은 기울기를 그대로 전달하므로, 오차 신호가 여러 계층을 거슬러 올라가도 줄어들지 않습니다. 이는 포화 함수가 일으키는 기울기 소실 문제를 완화합니다.
  • 희소 활성화: 모든 음수 입력은 정확히 0이 되므로 특정 시점에는 계층의 일부만 활성화됩니다. 무작위로 초기화한 가중치에서는 주어진 입력에 대해 계층 유닛의 약 절반이 0을 출력합니다.
  • 구간별 선형: ReLU로 구성된 네트워크는 입력에 대해 구간별 선형 함수를 계산하며, 유닛이 켜지거나 꺼지는 지점에서 여러 선형 영역이 연결됩니다.

아래 PyTorch 예제는 nn.ReLU를 적용하고 autograd를 사용해 같은 지점의 기울기를 계산합니다.

import torch
from torch import nn

relu = nn.ReLU()

# Inputs on both sides of zero, tracked so PyTorch can compute gradients
x = torch.tensor([-2.0, -0.5, 0.0, 0.5, 2.0], requires_grad=True)
y = relu(x)

# Backpropagate a gradient of 1 from each output to its input
y.sum().backward()

print(f"Output:   {y.tolist()}")
print(f"Gradient: {x.grad.tolist()}")

출력 [0.0, 0.0, 0.0, 0.5, 2.0]과 기울기 [0.0, 0.0, 0.0, 1.0, 1.0]을 표시합니다. 양수 입력은 기울기를 그대로 유지한 채 통과하며, 음수 입력과 0에는 기울기가 전혀 전달되지 않습니다. 이 특성이 ReLU의 희소성과 주요 실패 원인의 바탕입니다.

Dying ReLU 문제#

학습 데이터의 모든 예제에서 입력이 음수인 ReLU 유닛은 0을 출력하고 기울기도 0을 받으므로 가중치가 더 이상 바뀌지 않아 사실상 죽은 상태가 됩니다. 유닛은 대개 높은 학습률로 인해 큰 가중치 업데이트가 발생해 편향이 크게 음수가 될 때 죽습니다. 죽은 유닛 몇 개는 영향이 작지만 잘못 조정된 학습 실행은 계층의 상당 부분을 비활성화할 수 있습니다. ReLU 계층의 초기 가중치를 적절히 조정하는 He 초기화와 적절한 학습률 및 배치 정규화를 함께 사용하면 대부분의 유닛을 활성 상태로 유지할 수 있습니다. 기울기가 0에 도달하지 않도록 하는 Leaky 변형은 이 문제를 없앱니다.

ReLU 변형#

  • Leaky ReLU: 음수 입력에 일반적으로 0.01인 작은 고정 기울기를 곱해 비활성 유닛에도 기울기가 전달되도록 합니다.
  • PReLU: 학습 중에 음수 기울기를 학습합니다. Kaiming He와 동료들은 He 초기화를 제안한 논문에서 2015년에 PReLU를 소개했습니다.
  • ReLU6: 출력값을 6으로 제한하는 min(max(0, x), 6)을 사용해 저정밀 연산에서 활성값을 잘 표현할 수 있는 범위로 유지합니다. MobileNetV1과 MobileNetV2에서 사용됩니다.
  • ELU: 음수 영역을 −1에서 포화되는 매끄러운 지수 곡선으로 대체해 활성값의 평균을 0에 가깝게 만듭니다.
  • SiLU 및 GELU: x · σ(x)와 x · Φ(x) 형태의 매끄러운 곡선으로, 큰 입력에서는 ReLU처럼 동작하지만 작은 음수 값은 통과시키며 0에서 꺾이지 않습니다. 요소당 연산 비용은 더 높지만, GELU 논문은 평가한 모든 비전, 언어, 음성 작업에서 ReLU보다 성능이 향상되었다고 보고했습니다.

ReLU, 시그모이드, tanh 비교#

ReLU가 등장하기 전에는 은닉 계층에서 시그모이드나 tanh를 사용했습니다. 두 함수 모두 포화됩니다. 입력값이 큰 양수 또는 음수이면 곡선이 평평해지고 도함수가 0에 가까워집니다. 시그모이드의 도함수는 가장 가파른 지점에서도 0.25를 넘지 않습니다. 이러한 도함수를 여러 계층에서 곱하면 초기 계층에 전달되는 기울기가 부족해집니다. AlexNet 논문에서 ReLU를 사용한 4계층 CNN은 CIFAR-10에서 tanh 유닛을 사용한 동일한 네트워크보다 6배 빠르게 학습 오류율 25%에 도달했습니다. 시그모이드와 tanh는 값의 범위 제한이 중요한 곳에서 계속 사용됩니다. 시그모이드는 출력 계층에서 확률을 나타내거나 순환 셀의 게이트에 사용되며, tanh는 순환 은닉 상태에 사용됩니다.

최신 모델의 ReLU#

ResNet과 같은 시기의 대부분의 CNN은 전체 계층에서 ReLU를 사용하며, 2017년의 원래 Transformer는 피드포워드 계층에서 ReLU를 사용했습니다. 이후 많은 모델이 더 매끄러운 함수를 채택했습니다. BERT와 비전 Transformer는 GELU를, 최신 대규모 언어 모델 다수는 SwiGLU를 사용합니다. 반면 속도와 하드웨어 지원이 중요한 경우에는 여전히 ReLU를 많이 사용합니다. YOLO26은 기본적으로 Conv 블록에서 SiLU를 사용하며, 모델 YAML의 activation: nn.ReLU() 줄은 학습 전에 모든 Conv 블록의 활성화 함수를 ReLU로 바꿉니다. 이는 SiLU가 아닌 ReLU를 기본 지원하는 AMD Zynq UltraScale+ DPU와 같은 가속기에 적합합니다. PyTorch에서 nn.ReLU(inplace=True)은 결과로 입력 텐서를 덮어써 별도의 출력 텐서에 필요한 메모리를 절약합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요