OrangeDataMining

뉴런과 활성 함수(Sigmoid, ReLU, Tanh, Softmax)

learningflix 2025. 5. 1. 16:00
반응형

뉴런과 활성 함수(Sigmoid, ReLU, Tanh, Softmax)

딥러닝을 시작한다면 꼭 이해해야 할 첫 개념,
바로 '뉴런과 활성 함수'입니다.
이걸 모르고는 아무리 멋진 AI 모델도 제대로 다룰 수 없어요.

안녕하세요!
오늘은 딥러닝의 가장 기본이자 핵심이 되는 뉴런(Neuron)활성 함수(Activation Function)에 대해 이야기해보려 해요. 뉴런은 인간의 뇌를 모방한 구조로, 입력된 데이터를 바탕으로 판단을 내리는 아주 작은 계산 단위예요. 그리고 이 뉴런의 출력을 결정짓는 역할을 하는 게 바로 활성 함수랍니다. 이번 글에서는 Sigmoid, ReLU, Tanh, Softmax 등 대표적인 활성 함수들을 차근차근 설명드릴게요. 특히 초보자 분들도 이해하기 쉽도록 실제 예제와 함께 설명하니 끝까지 함께 해보세요!

1. 뉴런이란 무엇인가요? 🧠

딥러닝의 핵심은 '신경망(Neural Network)'이고, 그 신경망을 구성하는 기본 단위는 뉴런입니다. 이 뉴런은 생물학적 뉴런을 모방한 인공적인 수학적 모델이에요. 데이터를 입력받아 계산을 수행하고, 그 결과를 다음 뉴런에게 전달해요. 이 과정을 반복하면서 복잡한 패턴을 학습하는 거죠.

🧩 인공 뉴런의 구조

  • 입력값(Input): 예측에 필요한 데이터
  • 가중치(Weight): 각 입력값의 중요도를 결정하는 숫자
  • 편향(Bias): 출력에 일정한 영향을 더해주는 상수
  • 활성 함수(Activation Function): 최종 출력을 결정하는 함수

이 모든 걸 수식으로 정리하면 아래와 같아요:

z = (w1 * x1) + (w2 * x2) + ... + (wn * xn) + b  
output = activation(z)

결국 이 계산을 수천, 수만 개의 뉴런이 동시에 수행하면서 복잡한 문제도 해결할 수 있게 되는 거죠!

📊 표로 보는 인공 뉴런의 요소

구성 요소 설명
입력값 (Input) 모델이 받아들이는 숫자 데이터
가중치 (Weight) 입력값의 영향력을 조절하는 값
편향 (Bias) 출력값을 조정하는 상수값
활성 함수 결과 값을 출력 범위 내로 제한하는 함수

이제 다음 단계에서는 이 뉴런의 출력을 결정하는 핵심 요소, 활성 함수에 대해 더 깊이 들어가 볼게요. Sigmoid부터 ReLU까지, 각 함수의 특성과 역할을 하나씩 차근차근 설명해 드릴게요!

2. 활성 함수란? 왜 필요한가요? ⚙️

사실 딥러닝에서 활성 함수(Activation Function)가 없다면, 아무리 많은 층을 쌓아도 선형 회귀와 다를 게 없어요. 복잡한 비선형 문제를 해결하기 위해선 '비선형성'이 반드시 필요하고, 그 역할을 해주는 게 바로 이 활성 함수랍니다.

🔎 활성 함수의 주요 역할

  • 비선형성 부여: 신경망이 단순한 선형 모델을 넘어 복잡한 문제를 해결할 수 있게 해줘요.
  • 출력값 조절: 뉴런의 출력이 너무 크거나 작지 않도록 제한해줘요.
  • 계산 효율 향상: 기울기 소실/폭주 문제를 완화시켜 학습을 더 빠르고 안정적으로 만들어요.

예를 들어볼게요. "나는 이 메일이 스팸인지 아닌지 구분하고 싶다"는 문제를 푼다고 해봐요. 이건 명백히 0과 1 중 하나를 골라야 하는 이진 분류 문제죠. 이때 단순히 숫자를 입력받아 계산하는 걸로는 부족하고, 그 결과를 0~1 사이의 확률로 바꿔줘야 해요. 바로 여기서 활성 함수가 등장합니다!

📌 주요 활성 함수 미리보기

함수 특징 사용 예시
Sigmoid 0~1 사이의 값 출력, 이진 분류에서 활용 이메일 스팸 필터
Tanh -1~1 범위, 중심이 0이라 학습에 유리 신경망 중간층에서 사용
ReLU 0 이하 무시, 간단하고 빠름 딥러닝 대부분의 모델
Softmax 확률 분포 출력, 다중 분류에서 사용 이미지 분류 (고양이/개/토끼)

이제부터는 위에서 소개한 각 활성 함수를 하나씩 더 자세히 살펴보겠습니다. 먼저, 오랜 시간 사랑받아온 Sigmoid 함수부터 시작해볼게요!

3. Sigmoid 함수 📈

Sigmoid 함수는 가장 오래된 활성 함수 중 하나예요. 출력값을 0과 1 사이로 제한해주는 특성 때문에, 확률처럼 해석할 수 있어서 이진 분류 문제에 특히 잘 어울립니다. 수식은 다음과 같이 생겼어요:

sigmoid(x) = 1 / (1 + e^-x)

입력값이 아주 크면 1에 가까워지고, 아주 작으면 0에 가까워져요. 이걸 그래프로 그려보면 S자 곡선이 되는데, 이 때문에 '시그모이드(Sigmoid)'라는 이름이 붙었어요.

⚖️ Sigmoid의 장점과 단점

  • 장점: 출력이 확률처럼 0~1 사이여서 분류 문제에 적합해요. 특히 마지막 출력층에서 많이 사용돼요.
  • 단점: 입력값이 크거나 작을 경우 기울기(gradient)가 거의 0이 돼서 학습이 느려지거나 멈출 수 있어요. 이걸 기울기 소실(Vanishing Gradient) 문제라고 해요.

📌 실제 사용 예시: Orange Data Mining에서의 Sigmoid

Orange에서는 Sigmoid를 명시적으로 고르기보다는 Logistic Regression 위젯을 통해 간접적으로 사용해볼 수 있어요. 로지스틱 회귀 모델 자체가 내부적으로 Sigmoid를 기반으로 동작하니까요. 예를 들어 타이타닉 데이터에서 생존 여부를 예측할 때, Orange의 Logistic Regression 위젯을 사용하면 결과가 확률로 출력돼요.

예제 설명
타이타닉 생존자 예측 입력 특성(나이, 성별 등)에 따라 생존 확률 출력
질병 예측 모델 환자의 건강 정보로 병 발병 확률 계산

이처럼 Sigmoid는 초보자도 금방 이해할 수 있고, 다양한 상황에서 유용하게 활용돼요. 하지만 기울기 소실 문제 때문에 은닉층에서는 잘 사용되지 않아요. 그래서 대체로 출력층에서 많이 쓰이죠!

다음 섹션에서는 Sigmoid보다 한 단계 진화한 형태의 활성 함수인 Tanh 함수를 소개할게요!

4. Tanh 함수 🌀

Tanh 함수는 이름 그대로 '쌍곡 탄젠트(Hyperbolic Tangent)' 함수예요. Sigmoid와 비슷한 S자 곡선을 가지지만, 출력 범위가 -1에서 1까지라는 점이 다릅니다. 이 덕분에 출력 평균이 0이 되어 학습 과정에서 좀 더 안정적으로 작동해요.

tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x))

수식이 조금 복잡해 보일 수 있지만, 실제로는 Sigmoid를 변형한 형태입니다. 그리고 Sigmoid보다 기울기 소실 문제가 덜해서 중간층(hidden layer)에서 더 많이 쓰여요.

⚖️ Tanh의 장점과 단점

  • 장점: 출력 중심이 0이라, 각 층의 출력을 더 잘 분산시켜서 학습 속도 향상에 도움을 줘요.
  • 단점: Sigmoid처럼 극단적인 입력값에서는 여전히 기울기 소실 문제가 생길 수 있어요.

📌 실제 사용 예시: Tanh in Orange?

Orange에서는 Neural Network 위젯에서 활성 함수 선택이 직접적으로 제공되진 않지만, 백엔드 라이브러리의 설정을 통해 tanh를 사용하는 모델도 학습할 수 있어요. 하지만 초보자에게는 보통 ReLU 기반 설정이 더 직관적이니, tanh는 이론적으로 이해하고 넘어가도 충분해요.

비교 항목 Sigmoid Tanh
출력 범위 0 ~ 1 -1 ~ 1
평균 중심 0이 아님 0
기울기 소실 심함 덜함

딥러닝 초창기에는 tanh도 널리 쓰였지만, 요즘은 다음에 소개할 ReLU가 대세로 자리잡았죠. 그럼 이제 ReLU를 살펴보러 가볼까요?

5. ReLU 함수 ⚡

ReLU(Rectified Linear Unit)는 현재 가장 널리 쓰이는 활성 함수예요. 이름은 다소 어려워 보여도, 수식은 정말 간단합니다:

ReLU(x) = max(0, x)

즉, 음수는 무조건 0으로 바꾸고, 양수는 그대로 출력해요. 이 간단한 처리만으로도 기울기 소실 문제를 효과적으로 해결하고, 학습 속도도 확 빨라집니다. 그래서 요즘 딥러닝 모델 대부분은 ReLU를 기본값처럼 사용하죠.

⚖️ ReLU의 장점과 단점

  • 장점: 계산이 간단해서 빠르고, 기울기 소실 문제가 거의 없어요.
  • 단점: 입력이 음수인 경우 뉴런이 완전히 죽어버리는 죽은 뉴런(Dead Neuron) 현상이 생길 수 있어요.

🛠 Orange 실습 예시: ReLU 기반 모델 만들기

Orange에서는 Neural Network 위젯을 통해 ReLU 기반의 MLP(Multilayer Perceptron) 모델을 만들 수 있어요. 예를 들어, Iris 데이터를 불러와 Neural Network에 연결한 다음, 기본 설정 그대로 실행하면 내부적으로 ReLU 활성 함수가 적용된 다층 신경망이 학습됩니다.

설정 항목 예시 값
은닉층 구성 2개 (100, 50)
활성 함수 ReLU (기본)
학습 반복 횟수 200 epoch

ReLU는 속도와 효율, 성능 면에서 아주 좋은 선택이지만, 죽은 뉴런 문제를 피하고 싶다면 Leaky ReLUELU 같은 변형 함수도 고려해볼 수 있어요.

이제 마지막으로 다중 분류 문제에 강력한 Softmax 함수를 알아볼 시간입니다!

6. Softmax 함수 🎯

마지막으로 소개할 Softmax 함수는 여러 개의 클래스를 분류할 때 아주 유용한 함수입니다. 예를 들어, 이메일이 스팸인지 아닌지 판단하는 이진 분류는 Sigmoid로 충분하지만, 고양이/개/토끼 중 무엇인지 분류해야 할 때는 Softmax가 필요해요.

Softmax(xᵢ) = e^(xᵢ) / Σ e^(xⱼ)

입력된 값들을 지수 함수(e^x)로 바꾼 다음, 전체 합으로 나누면 출력이 전체 합이 1인 확률 분포가 돼요. 즉, 각 클래스가 정답일 확률로 해석할 수 있습니다.

📊 예시로 이해하는 Softmax

클래스 로짓(Logit) Softmax 출력
고양이 2.0 0.65
1.0 0.24
토끼 0.1 0.11

이 예시에서 가장 높은 확률을 가진 '고양이'가 최종 예측 결과가 되겠죠. 바로 이 점이 Softmax의 매력입니다. 모든 클래스에 대한 '확률'을 한 번에 계산해줘서 비교도 쉽고 해석도 명확해요.

🐾 Orange에서 Softmax 활용 예

Orange의 Neural Network 위젯을 이용해 다중 클래스 분류를 수행할 때, 출력층에서는 자동으로 Softmax가 사용돼요. 예를 들어, Iris 데이터처럼 클래스가 3개인 데이터셋을 사용하면 각 클래스별 확률을 출력하고, 가장 높은 확률을 가진 클래스로 예측을 결정합니다.

그니까요, Softmax는 여러 선택지 중 하나를 골라야 할 때 쓰는 딱 맞는 도구예요. 확률 기반 의사결정이 필요한 모든 상황에서 진가를 발휘하죠.

이제까지 배운 내용을 정리하며 마무리해볼게요!

🔚 마무리하며: 활성 함수의 힘을 이해했나요?

지금까지 뉴런의 작동 원리부터 대표적인 활성 함수들(Sigmoid, Tanh, ReLU, Softmax)까지 하나씩 살펴봤어요. 처음엔 생소하고 복잡해 보였던 개념들이, 이제는 어느 정도 감이 오지 않으셨나요? 😊

활성 함수는 신경망이 '생각'하게 만드는 엔진과 같아요. 단순한 선형 연산을 넘어, 복잡한 데이터의 패턴을 구분하고 예측할 수 있게 해주는 원동력이죠. 실전에서 이 함수들을 언제, 어떻게 쓰는지를 감 잡으면 딥러닝 설계의 절반은 끝난 셈입니다.

앞으로 CNN, RNN 같은 더 복잡한 구조로 나아갈 때도 이 기본 개념들이 탄탄하게 받쳐줄 거예요. 그러니 복습하면서 꼭 내 것으로 만들어두세요. 다음 포스팅에서는 인공신경망 내부의 가중치와 편향 이야기를 다뤄볼게요!

반응형