콘텐츠로 이동

신경망은 많은 층을 쌓아 만든 복잡한 함수입니다. 하지만 아무리 복잡해 보여도 결국은 작은 연산들이 순서대로 연결된 구조입니다. 계산그래프는 이 구조를 눈에 보이게 정리하는 도구이고, backprop은 그 구조를 거꾸로 따라가며 gradient를 효율적으로 계산하는 방법입니다. 현대 AI 학습이 가능한 이유는 이 세 가지가 맞물려 있기 때문입니다.

먼저 알아둘 말

  • 신경망: 선형변환과 비선형 활성화를 여러 층 쌓아 만든 합성함수다.
  • 층: 입력을 받아 새로운 표현으로 바꾸는 한 단계 연산이다.
  • 활성화함수: 선형층 뒤에 비선형성을 넣어 표현력을 키우는 함수다.
  • 계산그래프: 연산과 값의 흐름을 그래프 형태로 표현한 구조다.
  • backprop: 출력에서 시작해 gradient를 뒤로 전파하며 각 파라미터의 미분을 계산하는 알고리즘이다.
  • 체인룰: 합성함수의 미분을 단계별 미분의 곱으로 연결하는 규칙이다.

이 강의에서 답할 질문

  • 왜 신경망은 층을 여러 개 쌓을까?
  • 계산그래프는 복잡한 계산을 어떻게 단순화해 보여 줄까?
  • backprop은 왜 수많은 파라미터의 gradient를 현실적으로 계산할 수 있게 할까?

먼저 떠올릴 장면

  • 선형변환만 여러 번 해도 결국 하나의 선형변환과 다르지 않다.
  • 중간에 비선형함수를 넣으면 단순한 직선이나 평면으로는 표현하기 어려운 구조도 표현할 수 있다.
  • 출력에서 생긴 오차를 뒤로 보내면, 각 층과 각 가중치가 그 오차에 얼마나 책임이 있는지 계산할 수 있다.

즉 신경망 학습은 "값을 앞으로 계산하는 일"과 "그 값이 잘못된 정도를 뒤로 전파하는 일"의 조합입니다.

생각의 순서

  • 먼저 신경망을 층의 합성으로 본다.
  • 그다음 왜 비선형성이 필요한지 본다.
  • 이어서 계산그래프가 어떤 역할을 하는지 본다.
  • 마지막으로 체인룰과 backprop이 어떻게 연결되는지 본다.

본문

1. 신경망은 층을 쌓은 합성함수다

가장 단순한 한 층은 입력 x를 받아 선형변환을 합니다.

$$ h = Wx + b $$

여기서

$$ W $$

는 가중치 행렬이고,

$$ b $$

는 편향입니다.

하지만 신경망은 여기서 멈추지 않습니다. 이 출력을 다음 층의 입력으로 넘기고, 다시 선형변환과 활성화를 반복합니다. 따라서 전체 모델은 여러 함수가 차례로 합성된 구조가 됩니다.

즉 신경망은 "하나의 거대한 공식"이 아니라, 작은 함수들을 차례로 연결한 합성함수입니다.

2. 왜 비선형성이 꼭 필요할까

선형층만 여러 번 쌓아도 결국 전체는 하나의 선형변환과 같습니다. 즉 깊게 쌓았다는 사실만으로는 표현력이 늘지 않습니다.

그래서 각 층 사이에 활성화함수를 넣습니다. 예를 들어 어떤 중간 표현 h에 비선형함수

$$ \phi(h) $$

를 적용합니다.

이 비선형성이 들어가야 모델이 복잡한 결정경계와 풍부한 패턴을 표현할 수 있습니다. 즉 신경망이 강력한 이유는 층을 많이 쌓아서가 아니라, 선형변환과 비선형변환을 반복적으로 결합하기 때문입니다.

3. 계산그래프는 복잡한 함수를 작은 연산으로 나눈다

신경망이 복잡하다고 해도, 실제 계산은 행렬곱, 덧셈, 활성화 함수, 손실 계산 같은 작은 연산들의 연쇄입니다. 계산그래프는 이 연산들을 노드와 간선으로 표현합니다.

  • 노드: 하나의 연산 또는 값
  • 간선: 값이 다음 연산으로 전달되는 흐름

이렇게 보면 복잡한 신경망도 "어떤 값이 어디서 만들어지고, 어디로 전달되는가"가 명확해집니다. 그래서 계산그래프는 단지 시각화 도구가 아니라, 자동미분과 backprop을 위한 구조적 기반이 됩니다.

4. forward는 값을 계산하는 과정이다

신경망에서 먼저 하는 일은 입력에서 출력까지 값을 계산하는 것입니다. 이를 forward pass라고 합니다.

각 층은 이전 층의 출력을 받아 새로운 표현을 만들고, 마지막에는 예측값과 손실을 계산합니다. 이 과정에서 중간값들이 차례로 생성됩니다.

이 중간값들은 나중에 미분을 계산할 때도 필요합니다. 즉 forward는 단순히 출력만 만드는 과정이 아니라, backward를 위한 정보도 함께 준비하는 과정입니다.

5. backprop은 체인룰을 계산그래프 전체에 적용한 것이다

backprop의 핵심은 매우 단순합니다. 출력 오차가 각 중간값과 파라미터에 얼마나 민감한지를 뒤에서 앞으로 전파하는 것입니다.

이 원리는 체인룰에서 나옵니다. 예를 들어 손실이

$$ L $$

이고, 중간값이

$$ h $$

이며, h가 다시 x에 의존한다면

$$ \frac{\partial L}{\partial x} = \frac{\partial L}{\partial h}\frac{\partial h}{\partial x} $$

가 됩니다.

즉 현재 노드의 gradient는 "뒤쪽에서 온 gradient"와 "현재 연산의 국소 미분"을 곱해서 얻을 수 있습니다. 이 원리를 층 전체에 반복 적용하면, 전체 신경망의 미분이 계산됩니다.

6. backprop이 효율적인 이유는 중간 계산을 재사용하기 때문이다

만약 각 파라미터에 대해 미분을 따로 처음부터 다시 계산한다면 비용이 엄청 커집니다. 하지만 backprop은 forward에서 만든 중간값을 저장해 두고, backward에서 이를 재사용합니다.

그래서 공통되는 미분 계산을 반복하지 않고 공유할 수 있습니다. 이 점 때문에 파라미터가 매우 많은 신경망에서도 학습이 현실적으로 가능해집니다.

즉 backprop은 단순히 "뒤로 미분한다"는 개념이 아니라, 계산을 재사용해 미분 비용을 크게 줄이는 알고리즘입니다.

7. 신경망 학습은 forward와 backward의 반복이다

전체 학습 절차를 보면 다음과 같습니다.

  • forward에서 예측값과 손실을 계산한다.
  • backward에서 gradient를 계산한다.
  • optimizer가 그 gradient를 이용해 파라미터를 업데이트한다.

이 과정이 반복되면서 모델은 손실을 줄이는 방향으로 조금씩 바뀝니다. 따라서 신경망 학습은 단순히 "많은 행렬곱"이 아니라, "앞으로 계산하고 뒤로 책임을 전파하는 반복 과정"입니다.

8. AI에서는 왜 핵심인가

신경망이 깊어질수록 수식은 사람이 직접 다루기 어렵습니다. 하지만 계산그래프와 backprop 관점으로 보면, 아무리 복잡한 모델도 작은 연산들의 합성으로 분해됩니다.

그래서 이 강의의 핵심은 다음입니다.

  • 신경망은 합성함수다.
  • 계산그래프는 그 합성을 구조로 보여 준다.
  • backprop은 그 구조 위에서 체인룰을 효율적으로 실행한다.

이 세 가지가 합쳐져 현대 딥러닝 학습이 가능해집니다.

예제

  1. 비선형성의 필요 문제: 왜 선형층만 여러 번 쌓아서는 충분하지 않은가? 풀이: 여러 선형변환의 합성은 결국 하나의 선형변환과 같기 때문이다. 해설: 표현력을 키우려면 활성화함수 같은 비선형성이 필요하다.

  2. 계산그래프의 장점 문제: 계산그래프는 왜 유용한가? 풀이: 복잡한 계산을 작은 연산들로 나눠 forward와 backward를 구조적으로 정리할 수 있기 때문이다. 해설: 자동미분과 backprop이 가능해지는 기본 구조를 제공한다.

  3. backprop의 의미 문제: backprop은 무엇을 뒤로 보내는가? 풀이: 손실이 각 중간값과 가중치에 얼마나 민감한지를 나타내는 gradient를 뒤로 전파한다. 해설: 각 파라미터가 오차에 얼마나 기여했는지를 계산하게 해 준다.

스스로 점검

연습 문제

  1. 신경망이 합성함수라는 뜻을 설명하라.
  2. 활성화함수가 왜 필요한지 설명하라.
  3. 계산그래프와 체인룰의 관계를 설명하라.
  4. backprop이 학습에서 맡는 역할을 설명하라.

복습 질문

  1. 신경망은 어떤 구조의 함수인가?
  2. 계산그래프는 무엇을 정리해 보여 주는가?
  3. backprop은 왜 효율적인가?

체크포인트

  1. 신경망을 층의 합성으로 설명할 수 있다.
  2. 비선형성의 필요를 이해한다.
  3. 계산그래프의 역할을 설명할 수 있다.
  4. 체인룰과 backprop의 관계를 말할 수 있다.