비선형으로 — 신경망과 역전파

2026-05-08

5편의 선형회귀는 강력했지만, 그을 수 있는 건 직선(초평면)뿐이었습니다. 현실의 관계가 휘어 있으면 근본적으로 못 담았죠. 그런데 1편에서 이미 예고한 더 깊은 문제가 있습니다 — 선형변환은 아무리 쌓아도 여전히 선형이라는 벽. 층을 백 개 쌓아도 한 층과 표현력이 같다면, 어떻게 휘어진 세상을 담을까요.

규칙 — 선형만으로는 직선밖에 못 그린다. 층 사이에 비선형을 끼워야 휘어진 세상을 담고, 그 깊은 함수를 학습하는 법이 연쇄법칙, 곧 역전파다.

이 편에서 그 벽을 넘고, 넘어선 함수를 어떻게 학습하는지까지 끝까지 유도합니다. 시리즈의 두 번째 큰 종합입니다.

왜 선형만으론 안 되는가 — 벽의 증명

먼저 벽을 정확히 봅니다. 층이 선형변환 xWx\mathbf{x} \mapsto W\mathbf{x}뿐이라면, 두 층을 쌓은 것은

W2(W1x)=(W2W1)x=WxW_2(W_1\mathbf{x}) = (W_2 W_1)\mathbf{x} = W'\mathbf{x}

입니다. 두 행렬의 곱 W=W2W1W' = W_2 W_1도 그냥 하나의 행렬이죠. 즉 두 층이 한 층과 똑같습니다. 층을 백 개 쌓아도 결과는 어떤 단일 선형변환 하나로 붕괴해요. 깊이가 표현력을 전혀 못 늘립니다.

이게 왜 치명적인지는 고전적인 XOR 문제가 보여 줍니다 — 네 점 (0,0),(1,1)(0,0), (1,1)은 한 부류, (0,1),(1,0)(0,1), (1,0)은 다른 부류로 가르는 문제요. 이 둘을 직선 하나로는 절대 못 나눕니다. 선형 모델의 원리적 한계죠. 세상엔 직선으로 못 가르는 관계가 널려 있고, 선형 합성으로는 거기서 한 발도 못 나아갑니다.

규칙 회수 — 선형변환의 합성은 다시 선형변환(W2W1W_2W_1도 행렬 하나)이라, 깊이가 표현력을 못 늘린다. 직선으로 못 가르는 XOR조차 선형으론 풀 수 없다.

비선형 활성화 — 벽을 넘는 한 조각

해법은 놀랄 만큼 단순합니다. 선형변환 사이에 비선형 함수 σ\sigma를 끼우는 것.

h=σ(Wx+b)\mathbf{h} = \sigma\bigl(W\mathbf{x} + \mathbf{b}\bigr)

σ\sigma를 **활성화 함수(activation)**라 하고, 각 성분에 따로 적용합니다. 이제 두 층을 쌓으면 W2σ(W1x+b1)+b2W_2\,\sigma(W_1\mathbf{x} + \mathbf{b}_1) + \mathbf{b}_2가 되는데, 중간의 σ\sigma 때문에 이건 더 이상 하나의 행렬로 붕괴하지 않아요. 진짜로 새로운, 휘어진 함수가 됩니다. 대표적인 활성화는 셋입니다.

σsig(z)=11+ez,tanh(z),ReLU(z)=max(0,z)\sigma_{\text{sig}}(z) = \frac{1}{1 + e^{-z}}, \qquad \tanh(z), \qquad \operatorname{ReLU}(z) = \max(0, z)

  • 시그모이드는 값을 (0,1)(0,1)로 눌러 확률처럼 다루기 좋지만, 양 끝에서 기울기가 0에 가까워 그래디언트가 죽는 약점이 있습니다.
  • tanh(1,1)(-1,1)로 눌러 0을 중심에 두지만 같은 약점이 있고요.
  • ReLU는 음수는 0, 양수는 그대로 두는 극단적 단순함인데도, 양수 구간에서 기울기가 1로 살아 있어 그래디언트가 잘 안 죽습니다. 그래서 오늘날 딥러닝의 기본 활성화죠.

핵심은 함수의 종류가 아니라 존재입니다 — 비선형이 하나라도 끼면, 합성이 비로소 표현력을 얻는다.

층을 쌓다 — 다층 퍼셉트론

이 선형-비선형 블록을 여러 겹 쌓은 것이 **다층 퍼셉트론(MLP)**입니다. 층 ll의 계산을 이렇게 씁니다(입력은 h0=x\mathbf{h}_0 = \mathbf{x}).

zl=Wlhl1+bl,hl=σ(zl)\mathbf{z}_l = W_l\,\mathbf{h}_{l-1} + \mathbf{b}_l, \qquad \mathbf{h}_l = \sigma(\mathbf{z}_l)

여기서 zl\mathbf{z}_l은 활성화 직전의 값(pre-activation), hl\mathbf{h}_l은 그 층의 출력입니다. 이걸 LL번 반복하면 신경망 전체는 함수의 합성이에요.

y^=fLfL1f1(x)\hat{\mathbf{y}} = f_L \circ f_{L-1} \circ \cdots \circ f_1(\mathbf{x})

flf_l이 "행렬 곱하고, 치우침 더하고, 비선형 씌우기"인 것이죠. 1편에서 "층 쌓기는 변환의 합성"이라 한 그 말이, 비선형을 얻어 이제 진짜 힘을 냅니다.

그리고 놀라운 사실 하나 — **만능근사정리(universal approximation theorem)**는, 은닉층이 하나뿐이어도 뉴런을 충분히 두면 임의의 연속함수를 원하는 정밀도로 근사할 수 있음을 말합니다. 이론적으로 신경망은 사실상 무엇이든 표현할 수 있는 거죠. 그런데도 얕고 넓게가 아니라 깊게 쌓는 이유는, 같은 표현력을 깊이로 얻으면 폭으로 얻는 것보다 훨씬 적은 뉴런으로 충분하기 때문입니다(깊이가 지수적으로 효율적일 수 있습니다). '딥'러닝의 '딥'이 여기서 옵니다.

규칙 회수 — 신경망은 선형-비선형 블록을 합성한 함수다. 만능근사정리로 표현력은 충분하고, 깊이는 그 표현력을 더 적은 뉴런으로 얻는 효율의 문제다.

순전파와 학습의 과제

입력 x\mathbf{x}를 넣어 위 식을 차례로 계산해 예측 y^\hat{\mathbf{y}}와 손실 LL까지 내려가는 것을 **순전파(forward pass)**라 합니다. 손실은 앞 편에서 세운 그대로예요 — 회귀면 5편의 MSE, 분류면 3편의 크로스 엔트로피.

이제 4편의 경사하강으로 이 손실을 줄이고 싶습니다. 그러려면 모든 가중치에 대한 손실의 그래디언트 LWl\frac{\partial L}{\partial W_l}이 필요하죠. 그런데 신경망은 함수를 수십 겹 합성한 것이라, 이 미분을 어떻게 구할지가 막막합니다. 여기서 4편에서 심어 둔 씨앗 — 연쇄법칙 — 이 수확됩니다.

역전파 — 연쇄법칙을 거슬러

핵심 아이디어는 이렇습니다. 손실 LL은 층 ll의 값 zl\mathbf{z}_l에, 오직 다음 층 zl+1\mathbf{z}_{l+1}을 통해서만 영향을 받습니다(zl+1=Wl+1σ(zl)+bl+1\mathbf{z}_{l+1} = W_{l+1}\sigma(\mathbf{z}_l) + \mathbf{b}_{l+1}이니까요). 그러니 연쇄법칙으로, 뒤 층의 미분을 알면 앞 층의 미분을 구할 수 있어요. 각 층의 "오차 신호"를 δl=Lzl\boldsymbol{\delta}_l = \frac{\partial L}{\partial \mathbf{z}_l}로 정의합니다.

출발점은 맨 끝, 출력층의 오차입니다.

δL=LzL\boldsymbol{\delta}_L = \frac{\partial L}{\partial \mathbf{z}_L}

그리고 연쇄법칙을 적용하면, 오차 신호가 뒤에서 앞으로 거슬러 전파되는 점화식이 나옵니다(\odot는 성분별 곱, σ\sigma'는 활성화의 도함수).

δl=(Wl+1δl+1)σ(zl)\boldsymbol{\delta}_l = \bigl(W_{l+1}^\top \boldsymbol{\delta}_{l+1}\bigr) \odot \sigma'(\mathbf{z}_l)

읽어 보면 직관이 보입니다 — 다음 층의 오차 δl+1\boldsymbol{\delta}_{l+1}을 가중치로 되돌려 받고(Wl+1W_{l+1}^\top로), 이 층 활성화의 기울기 σ(zl)\sigma'(\mathbf{z}_l)를 곱해 걸러 내는 것. 오차가 출력에서 입력 쪽으로 역방향으로 흐르죠. 그래서 '역전파(backpropagation)'입니다. 이 오차 신호만 있으면, 우리가 진짜 원한 가중치 그래디언트는 곧바로 나옵니다.

LWl=δlhl1,Lbl=δl\frac{\partial L}{\partial W_l} = \boldsymbol{\delta}_l\, \mathbf{h}_{l-1}^\top, \qquad \frac{\partial L}{\partial \mathbf{b}_l} = \boldsymbol{\delta}_l

여기에 역전파의 진짜 위력이 있습니다 — 순전파 때 저장해 둔 중간값 hl,zl\mathbf{h}_l, \mathbf{z}_l을 재활용해, 모든 층의 그래디언트를 순전파 한 번과 맞먹는 비용으로 한꺼번에 얻습니다. 가중치가 수십억 개여도요. 각 가중치를 따로따로 수치 미분했다면 감당 못 할 계산이, 연쇄법칙을 한 번 거슬러 내려가는 것으로 끝나는 겁니다. 역전파는 새로운 원리가 아니라, 4편의 연쇄법칙을 영리하게 재사용하는 알고리즘이에요.

규칙 회수 — 역전파는 출력의 오차 신호를 연쇄법칙으로 층층이 거슬러 전파해(δl=(Wl+1δl+1)σ(zl)\boldsymbol{\delta}_l = (W_{l+1}^\top\boldsymbol{\delta}_{l+1})\odot\sigma'(\mathbf{z}_l)), 모든 그래디언트를 순전파 한 번의 비용으로 한꺼번에 구한다.

학습 루프 — 모든 조각이 모이다

이제 시리즈의 모든 도구가 하나의 반복 속에 모입니다.

  1. 순전파: 입력을 넣어 예측과 손실을 계산한다(1편 행렬, 3편·5편 손실).
  2. 역전파: 연쇄법칙을 거슬러 모든 그래디언트를 구한다(4편 연쇄법칙).
  3. 갱신: 경사하강으로 가중치를 한 걸음 내린다(4편 SGD).

WlWlηLWlW_l \leftarrow W_l - \eta\,\frac{\partial L}{\partial W_l}

  1. 1로 돌아가 반복한다.

이 네 줄이 선형회귀부터 거대 언어 모델까지 모든 딥러닝의 심장입니다. 규모와 층의 종류만 다를 뿐, 골격은 이것 하나예요. 벡터로 데이터를 놓고(1편), 거리로 손실을 재고(2편), 확률로 손실의 모양을 정하고(3편), 경사하강으로 내려가며(4편), 선형회귀로 삼박자를 익힌(5편) 모든 것이 여기서 만납니다.

왜 이것이 AI의 바닥인가 — 조망

  • 모든 딥러닝이 이 골격이다. CNN·RNN·트랜스포머도 결국 "선형변환 + 비선형 + 역전파 + 경사하강"의 변주입니다. 층의 연결 방식만 다를 뿐이죠.
  • 자동미분이 역전파를 대신 해 준다. 딥러닝 프레임워크는 우리가 순전파만 정의하면 위 점화식을 자동으로 적용해 그래디언트를 뽑습니다.
  • 다음 편의 트랜스포머도 여기 선다. 어텐션이라는 새 블록이 들어올 뿐, 그것도 이 학습 루프 안에서 역전파로 배웁니다.

정직하게 — 깊어질수록 커지는 그늘

벽을 넘었지만, 넘어선 자리엔 새 그늘이 있습니다.

  • 손실이 비볼록이다. 4편에서 짚었듯, 비선형을 끼운 순간 손실은 비볼록이 됩니다. 경사하강이 도달한 곳이 전역 최소라는 보장은 사라지고, 국소최소·안장점이 널려요. "잘 되더라"는 경험이지 정리가 아닙니다.
  • 그래디언트가 소실되고 폭발한다. 역전파의 점화식은 층마다 WW^\topσ\sigma'곱합니다. 층이 깊으면 이 곱이 길어져, 작은 값이 쌓이면 그래디언트가 0으로 사라지고(앞쪽 층이 안 배움), 큰 값이 쌓이면 폭발하죠. 시그모이드가 밀려나고 ReLU가 표준이 된 것, 잔차 연결·정규화·세심한 초기화가 나온 것이 모두 이 곱을 길들이려는 노력입니다.
  • 만능근사는 학습 가능성이 아니다. 정리는 원하는 함수가 "존재한다"고만 말할 뿐, 경사하강이 그걸 "찾아낸다"고 보장하지 않습니다. 표현할 수 있다는 것과 데이터로부터 배울 수 있다는 것은 다른 문제예요.
  • 투명함을 잃는다. 5편의 선형회귀는 각 가중치가 "그 특징의 영향"이라 읽혔지만, 수십 층을 지난 신경망의 가중치는 그런 해석을 잃습니다. 강력해진 대가로 블랙박스가 되고, 게다가 이 표현력을 채우려면 많은 데이터가 필요합니다.

이 넷을 알고 쓰면, 신경망은 휘어진 세상을 담는 가장 보편적인 도구가 됩니다 — 한계를 알기에 오히려 잘 쓸 수 있는.

정리 — 벽을 넘어, 거슬러 배우다

  • : 선형변환의 합성은 다시 선형(W2W1W_2W_1). 깊이가 표현력을 못 늘리고, XOR도 못 푼다.
  • 비선형: 층 사이에 활성화 σ\sigma(시그모이드·tanh·ReLU)를 끼우면 합성이 진짜 새 함수가 된다. ReLU가 기본.
  • MLP·만능근사: 선형-비선형 블록의 합성. 표현력은 충분하고, 깊이는 효율의 문제.
  • 순전파: 입력에서 손실까지 계산(zl=Wlhl1+bl\mathbf{z}_l = W_l\mathbf{h}_{l-1}+\mathbf{b}_l, hl=σ(zl)\mathbf{h}_l=\sigma(\mathbf{z}_l)).
  • 역전파: 오차 신호를 연쇄법칙으로 거슬러(δl=(Wl+1δl+1)σ(zl)\boldsymbol{\delta}_l = (W_{l+1}^\top\boldsymbol{\delta}_{l+1})\odot\sigma'(\mathbf{z}_l)), 모든 그래디언트를 순전파 한 번의 비용으로.
  • 학습 루프: 순전파 → 역전파 → 경사하강 갱신 → 반복. 1~5편이 여기 모인다.
  • 정직하게: 비볼록·국소최소, 그래디언트 소실·폭발, 만능근사≠학습가능, 블랙박스와 데이터 굶주림.

다음 편에서는 이 골격 위에 마지막 블록을 올립니다 — 어텐션. 어느 정보에 주목할지를 1편의 내적으로 정하는 연산으로, 오늘의 신경망을 트랜스포머로 끌어올립니다. 시리즈가 처음 세운 벡터·내적이, 마지막에 주인공으로 돌아옵니다.

핵심 한 줄 — 선형만으론 직선뿐이지만, 비선형을 끼워 층을 쌓으면 휘어진 세상을 담는다. 그 깊은 함수는 역전파 — 출력의 오차를 연쇄법칙으로 거슬러 모든 그래디언트를 한 번에 구하는 것 — 로 배우고, 경사하강이 그 방향으로 한 걸음씩 내려간다.