RyanNerd
라덕'Story
RyanNerd
  • 분류 전체보기 (117)
    • Study Note (80)
      • Python (3)
      • R (1)
      • Airflow (7)
      • 통계 (26)
      • Machine Learning (16)
      • Streamlit (9)
      • Django (1)
      • Deep Learning (12)
      • dbt (2)
      • SQL (3)
    • 빅데이터분석기사 (1)
      • 필기 (1)
    • Programmers (28)
      • Python (13)
      • SQL (15)
    • Project (3)
      • Django (3)
    • Mac (2)

블로그 메뉴

  • NaverBlog
  • 홈

최근 글

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
RyanNerd

라덕'Story

Study Note/Deep Learning

비선형 문제를 푸는 열쇠(Activation Function)와 학습의 핵심(Back Propagation)

2026. 1. 6. 13:18

구조를 만들었으니 이제 학습을 시켜야겠죠? 딥러닝 모델이 단순히 계산만 하는 게 아니라 '복잡한 패턴'을 익히고 '스스로 수정'하는 원리를 알아보겠습니다.

 

1. 활성화 함수 (Activation Function): 세상을 곡선으로 보자

퍼셉트론을 수백 층 쌓아도, 단순히 곱하고 더하는(선형 연산) 과정만 반복하면 그 결과는 여전히 딱딱한 '직선'일 뿐입니다. 하지만 세상의 데이터(환자의 질병 유무 등)는 직선으로 깔끔하게 나뉘지 않죠.

이 문제를 해결하기 위해 신경망에 비선형 함수(Non-linear function)를 주입합니다.

 

 

(왼쪽) 시그모이드 함수:

      • 입력된 값을 0과 1 사이의 S자 곡선(Curve)으로 부드럽게 변환해 줍니다.
      • 수식: $y = \frac{1}{1+e^{-x}}$
      • 과거에는 이 함수를 많이 썼지만, 최근에는 층이 깊어지면 학습이 잘 안 되는 문제(기울기 소실) 때문에 ReLU라는 함수도 많이 사용합니다.

(오른쪽) 왜 비선형이 필요한가? (XOR 문제):

    • 점선(직선)으로는 빨간점과 초록점을 완벽하게 나눌 수 없습니다.
    • 하지만 활성화 함수를 통해 곡선(파란 실선)을 그릴 수 있게 되면, 복잡하게 섞인 데이터도 유연하게 분류할 수 있게 됩니다.

2. 오차 역전파 (Back Propagation): 실패에서 배운다

구조를 만들었으니 이제 가중치($w$)를 최적의 값으로 조정하는 '학습'을 해야 합니다.

하지만 층이 깊어지면 고쳐야 할 가중치가 수만 개가 넘는데, 이걸 어떻게 일일이 수정할까요?

 

  • Forward (검정 화살표): 입력부터 출력까지 쭉 계산해서 예측값($\hat{y}$)을 냅니다.
  • Loss 계산: 정답($y$)과 예측값의 차이(오차)를 구합니다.
  • Backward (빨간 화살표): 발생한 오차를 출력층에서 입력층 방향(뒤쪽)으로 전파합니다.
    • 이때 "이 오차에 네가 얼마나 기여했니?"를 따져서 각 가중치를 조금씩 수정합니다. 이것이 바로 오차 역전파입니다.

3. 연쇄 법칙 (Chain Rule): 역전파의 수학적 엔진

"오차를 거꾸로 계산한다"는 것은 수학적으로 미분의 '연쇄 법칙(Chain Rule)'을 사용합니다.

  • 원리: 복잡한 함수의 미분은 각각의 단계별 미분값을 곱한 것과 같습니다.
    • $\frac{\partial Loss}{\partial w} = \frac{\partial Loss}{\partial \hat{y}} \times \frac{\partial \hat{y}}{\partial h} \times \frac{\partial h}{\partial w}$
  • 의미: 출력층 바로 앞의 가중치는 오차를 바로 알 수 있지만, 입력층 근처의 가중치는 오차와 너무 멉니다. 이때 연쇄 법칙을 이용해 뒤쪽에서 구한 미분값들을 차례대로 곱해오면, 아무리 깊은 신경망이라도 입력층 끝까지 효율적으로 가중치를 업데이트할 수 있습니다.

'Study Note > Deep Learning' 카테고리의 다른 글

1. 신경망의 두 가지 갈래 & Linear Layer 해부  (0) 2026.01.07
[딥러닝 이론 1] 뇌를 흉내 낸 기계, 퍼셉트론에서 DNN까지  (0) 2026.01.06
딥러닝 실전! 텐서 곱셈(Matmul) 완벽 정리  (0) 2026.01.05
딥러닝을 위한 '텐서'와 '행렬'의 정체  (1) 2026.01.02
딥러닝을 위한 필수 라이브러리, 의료 데이터로 정복하기  (0) 2026.01.02
    'Study Note/Deep Learning' 카테고리의 다른 글
    • 1. 신경망의 두 가지 갈래 & Linear Layer 해부
    • [딥러닝 이론 1] 뇌를 흉내 낸 기계, 퍼셉트론에서 DNN까지
    • 딥러닝 실전! 텐서 곱셈(Matmul) 완벽 정리
    • 딥러닝을 위한 '텐서'와 '행렬'의 정체
    RyanNerd
    RyanNerd
    라이언 덕후의 일상 스토리~

    티스토리툴바