DeepLearning/딥러닝 기초

[딥러닝 기초] 활성 함수(Activation Function) 정의 및 종류

헬로희 2024. 12. 5. 20:15
728x90

: 뉴런의 출력값을 결정하는데 사용


1. 역할

  • 비선형성 추가
    - 입력과 출력의 관계를 비선형으로 만들어 신경망이 복잡한 데이터 분포를 학습할수 있게 만듦
    - 비선형 함수가 없으면 여러 층의 뉴런이 선형적으로 결합되어 단순 선형 모델과 동일
  • 특정 값을 강조하거나 억제
    - 출력값을 제한하거나 특정 범위로 스케일링하여 모델의 학습을 안정화함
  • 계산 효율성 향상
    - 간단한 계산으로 모델의 효율성 유지
  •  

2. 종류

1) 출력층에서 사용

  • 선형 활성 함수(Linear Activation Function)

Linear

  • 회귀문제의 출력층
  • 입력을 그대로 출력으로 전달
  • 간단하고 비용이 적음
  • 비선형성이 없어 다층 신경망의 장점을 살릴 수 없음
  • 가중치 갱신효과가 동일하여 학습이 어려움

  • 시그모이드 함수(Sigmoid Function)

Sigmoid

  • 이진분류문제의 출력층
  • 출력 범위 [0, 1]
  • 확률과 같은 값을 출력하는 데 유용
  • Vanishing Gradient Problem (입력이 크거나 작으면 기울기가 0에 가까워져 학습이 멈추는 것)
  • 출력값이 0또는 1로 치우쳐 학습속도 저하 가능성 있음

  • Softmax

Softmax

  • 다중 클래스 분류문제의 출력층
  • 입력값을 확률 분포로 변환 (출력값 합이 총 1)
  • 모든 클래스의 확률을 계산해야 하므로 비용 증가

2) 은닉층에서 사용

  • 하이퍼볼릭 탄젠트 함수(Tanh Function)

Tanh

  • 은닉층에서 시그모이드 대신 사용가능
  • 출력 범위 [-1, 1]
  • Sigmoid 보다 중앙앖이 0에 가까워져 학습이 더 빠름
  • Vanishing Gradient Problem 발생

  • ReLU(Rectified linear Unit)

ReLU

  • 은닉층에서 사용
  • 음수 입력은 0 반환, 양수 입력은 그대로 반환
  • 계산이 간단하며 학습속도가 빠른
  • Vanishing Gradient Problem 발생가능성을 줄임
  • Dead Neuron Problem : 음수 입력은 0으로 반환하기때문에 음수입력에서 뉴런이 죽어버릴 가능성이 있음

  • Leaky ReLU

Leaky ReLU

  • ReLU 사용시 뉴런 소실 문제 발생할 때 사용
  • 음의 영역에도 작은 기울기를 가짐: 적절한 기울기 값을 설정해야 함
  • Dead Neuron Problem 문제 완화

  • Parametric ReLU (PReLU)

PReLU

  • Leaky ReLU를 개선한 함수
  • 기울기를 학습가능한 파라미터로 설정
  • 데이터 특성에 따라 음의 영역 조정 가능
  • 계산 비용증가

3. Task 별 활성화 함수

1) Object Detection

  • ReLU, Leaky ReLU, PReLU
    - 은닉층
    - CNN에서 사용
    - 빠른 계산, Vanishing Gradient 문제 해결
  • Sigmoid
    - 출력층
    - Bounding Box 존재 유무, 이진값을 나타낼 때
    - Yolo에서 객체 유무 예측시
  • Softmax
    - 출력층
    - 여러 클래스 분류할 떄 확률 분포로 출력
    - 객체 탐지 모델 클래스 예측시

2) Segmentation

  • ReLU, Leaky ReLU
    - 은닉층
    - 특징추출과 활성화에 사용
    - 자주 사용됨 ***
  • Softmax
    - 출력층
    - 여러 클래스 중 하나 선택해야할 때 사용
    - 출력값: 각 클래스에 대한 확률분포
  • Sigmoid
    - 출력층
    - 픽셀 별 객체 존재 여부를 나타낼 때
    - U-Net, Mask R-CNN의 이진 분할 출력
  • Dice Loss, Binary Cross-Entropy 손실함수가 Sigmoid 활성함수와 함께 사용
  • Categorical Cross-Entropy 손실함수가 Softmax 활성함수와 함께 사용
 

손실 함수(Loss function) 정의 및 유형 별 종류

: 머신러닝과 딥러닝에서 모델의 예측값과 실제값 사이의 차이를 측정하는 함수 모델 학습의 핵심은 이 손실 값을 최소화하는 방향으로 가중치와 편향을 조정하는 것이다.1. 손실함수의 역할오

hello-heehee.tistory.com


3) Generation

  • Tanh
    - 출력층
    - 출력범위 [-1, 1]로 정규화
    - GAN의 생성기(generator) 출력층에서 사용
  • Sigmoid
    - 출력층
    - 출력범위 [0, 1]로 정규화
    - VAE decoder에서 이미지 재구성
  • ReLU 계열
    - 은닉층
    - 특징 학습 및 생성과정에서 사용
    - 계산 효율성과 학습 안정성

 

728x90