지노랩 /JinoLab

19. 활성화 함수(Activation Function) 본문

프로그래밍/C언어를 이용한 Deep Learning

19. 활성화 함수(Activation Function)

지노랩/JinoLab 2025. 8. 14. 09:02

 

1. 활성화 함수가 왜 필요할까?

  1. 선형 함수의 한계
    • 입력값 xx와 가중치 ww를 곱하고 더하면 언제나 “직선” 모양의 결과만 나와요.
    • 예를 들어,        y=2x,  y=x+3   이런 식만 표현할 수 있죠.
  2. 비선형 패턴 학습
    • 현실 세계의 데이터(이미지, 음성, 글자 등)는 아주 복잡해요.
    • “직선”만으로는 사람 얼굴의 곡선, 음성의 억양 같은 복잡한 패턴을 배우기 어려워요.
    • 그래서 **활성화 함수(Activation Function)**로 입력을 곡선 형태로 변환해야, 여러 층(layer)을 쌓았을 때 다양한 곡선 모양을 만들 수 있어요.
  3. 역전파(Backpropagation)를 위한 미분 가능성
    • 학습 과정에서 “실제값과 예측값의 차이”를 줄이려고 가중치 ww를 업데이트할 때, 미분(derivative)이 필요해요.
    • 활성화 함수는 미분하기 쉬운(non‑linear but differentiable) 함수여야 합니다.

2. 대표적인 활성화 함수 3가지

2.1 시그모이드(Sigmoid)

  • 공식

  • 특징
    • 출력값이 항상 01 사이
    • S자 곡선
  • 장단점
    • 장점: 결과를 “확률”처럼 해석할 수 있어요.
    • 단점: 입력값이 크면 기울기가 0에 가까워져(평평해져) 학습 속도가 느려지는 소실 기울기 문제가 생겨요.

2.2 하이퍼볼릭 탄젠트(Tanh)

  • 공식

  • 특징
    • 출력값이 −11 사이
    • 시그모이드보다 중앙(0 근처)에서 더 가파른 기울기
  • 장단점
    • 장점: -1~1 범위라 평균이 0에 가까워 학습이 조금 더 안정적일 수 있어요.
    • 단점: 여전히 큰 입력에서 평평해지는 기울기 소실이 남아요.

2.3 ReLU(Rectified Linear Unit)

  • 공식

  • 특징
    • 음수 구간은 0, 양수 구간은 직선 상승
    • 계산이 매우 간단해 대규모 신경망에서 효율적
  • 장단점
    • 장점: 기울기 소실 문제 거의 없고 학습이 빠름
    • 단점: 음수 구간에서 기울기가 0이 되어 죽은 뉴런이 생길 수 있어요 (한번 0이 되면 계속 0)

3. 수식으로 보는 도함수(미분)

  • 학습(역전파) 때, 이 도함수를 사용해 “오차가 어떻게 변하는지” 를 계산합니다.

4. 언제 어떤 함수를 쓸까?

  • 은닉층(Hidden Layer): 대부분 ReLU를 씁니다. 빠르고 계산도 간단해요.
  • 출력층(Output Layer):
    • 이진 분류 → Sigmoid
    • 다중 분류 → Softmax (여기선 다루지 않음)
    • 회귀(regression) → 항등 함수(Identity): f(z)=z

마무리

  1. 선형만으로는 복잡한 패턴을 못 배우니, 비선형 활성화 함수가 필요해요.
  2. Sigmoid, Tanh, ReLU의 모양장단점을 이해하세요.
  3. 미분 가능해야 역전파 학습이 가능해요.

이제 활성화 함수의 개념을 잡았으니, 다음 시간에는 직접 코드로 구현해 보고, 신경망이 학습할 수 있도록 만들어 봅시다!