딥러닝 딥러닝 만드는 핵심! 6가지 활성화 함수 완벽 해부 (시그모이드, ReLU 등)
활성화 함수, 왜 필요하고 뭐가 있을까?
이번 시간에는 딥러닝에서 활성화 함수가 왜 중요한지, 그리고 어떤 종류가 있는지 쉽게 알아볼 거야.
활성화 함수, 없으면 딥러닝이 아니라고?
결론부터 말하면, 활성화 함수가 없으면 딥러닝은 그냥 똑똑하지 않은 계산기가 돼버려. 아무리 복잡하게 층을 쌓아도 결국엔 단순한 계산밖에 못 하게 되지.
활성화 함수는 뉴런에서 계산된 결과를 다음 뉴런으로 보낼지 말지, 그리고 어떤 형태로 보낼지 결정하는 역할을 해. 마치 신호등처럼 말이야.
입력이 들어오면 가중치랑 편향을 곱하고 더해서 계산한 다음에, 이 결과를 활성화 함수를 거쳐서 다음 층으로 보내는 거지.
왜 활성화 함수가 필요할까?
만약 활성화 함수가 없다면 어떻게 될까? 아무리 층을 많이 쌓아도 결국엔 하나의 선형 함수랑 똑같아져. 복잡한 패턴을 전혀 학습할 수 없게 되는 거야.
그래서 활성화 함수의 가장 중요한 역할은 바로 비선형성을 만들어주는 거야. 이 비선형성 덕분에 딥러닝은 복잡한 문제들을 풀 수 있게 되는 거지.
딥러닝에서 자주 쓰이는 활성화 함수들
이제 딥러닝에서 많이 쓰이는 활성화 함수들을 하나씩 살펴볼게.
1. 시그모이드 (Sigmoid) 함수
- 특징: 출력값이 0과 1 사이로 나와서 확률처럼 해석할 수 있어.
- 주로 사용: 합격/불합격, 참/거짓처럼 딱 두 가지로만 나누는 이진 분류 문제의 출력 부분에서 많이 써.
- 단점: 입력값이 너무 커지면 기울기가 거의 0이 돼서 학습이 잘 안될 수 있어.
2. 하이퍼볼릭 탄젠트 (Hyperbolic Tangent) 함수 (tanh)
- 특징: 출력 범위가 -1에서 1 사이고, 시그모이드보다 0에 가까워서 학습이 좀 더 안정적일 수 있어.
- 단점: 시그모이드처럼 기울기 소실 문제가 발생할 수 있어. 그래서 요즘은 은닉층에서는 잘 안 쓰고, 렐루(ReLU) 함수를 더 많이 써.
3. 렐루 (ReLU - Rectified Linear Unit) 함수
- 특징: 정말 정말 중요하고 단순해! 입력이 0보다 작으면 0, 0보다 크면 그대로 출력돼.
- 장점: 계산이 빠르고 깊은 신경망에서도 학습이 잘 돼. 그래서 현재 딥러닝에서 은닉층의 기본 활성화 함수로 많이 사용돼.
- 개선 버전: 리키 렐루 (Leaky ReLU)는 렐루의 단점을 보완해서 음수 영역에서도 조금은 학습하게 만든 함수야.
4. 소프트맥스 (Softmax) 함수
- 특징: 여러 개의 출력값을 확률처럼 바꿔주는 함수야. 모든 출력값이 0과 1 사이가 되고, 모든 확률의 합이 항상 1이 돼.
- 주로 사용: 고양이/개/새처럼 여러 가지 중에 하나를 고르는 다중 분류 문제의 출력 부분에서 많이 써.
코드로 보는 활성화 함수
실제로 코드를 보면 이렇게 뉴런 수를 정하고 활성화 함수를 지정해줘.
# 예시 코드 (실제 코드는 다를 수 있음)
# 은닉층에서는 렐루를 사용하는 경우
Dense(32, activation='relu')
# 출력층에서 다중 분류를 위해 소프트맥스를 사용하는 경우
Dense(3, activation='softmax')
여기서 Dense(32, activation='relu')는 뉴런 32개를 만들고 활성화 함수로 렐루를 쓰겠다는 뜻이야.
출력층에서는 문제 유형에 따라 활성화 함수를 다르게 설정해야 해. 다중 분류 문제라면 소프트맥스를, 이진 분류라면 시그모이드를 쓰는 식이지.
최종 정리
- 활성화 함수: 신경망에 비선형성을 부여해서 복잡한 문제를 풀 수 있게 해주는 핵심 요소야. 이게 없으면 딥러닝은 의미가 없어!
- 렐루 (ReLU): 은닉층에서 가장 많이 쓰이는 표준 활성화 함수야.
- 시그모이드, 소프트맥스: 문제 유형에 맞게 출력층에서 주로 사용돼.
다음 시간에는 예측 결과가 얼마나 틀렸는지 판단하는 손실 함수에 대해 알아볼 거야. 오늘도 수고 많았어!