뉴런과 신경망
인공 뉴런은 놀랄 만큼 단순하다. 입력과 가중치의 내적에 편향을 더하고, 그 결과를 구부러진 함수 하나에 통과시킨다. 그게 전부다. 그런데 이 단순한 부품을 층층이 쌓으면 원 안팎을 가르고, 나선을 풀고, 이론적으로는 어떤 연속 함수든 흉내 낼 수 있다. 이 장에서는 직선 하나밖에 못 긋는 퍼셉트론에서 출발해, 은닉층이 공간을 '접어서' 문제를 쉽게 만드는 과정을 직접 보고, 브라우저 안에서 실제 역전파로 신경망을 학습시킨다.
- 인공 뉴런 \(y=\varphi(\mathbf w\cdot\mathbf x + b)\)의 구성과 생물 뉴런과의 유사점·차이를 설명할 수 있다.
- 퍼셉트론의 결정 경계가 직선(초평면)인 이유와 퍼셉트론 학습 규칙을 이해하고, XOR가 왜 풀리지 않는지 안다.
- step·sigmoid·tanh·ReLU·GELU·SiLU의 모양과 도함수, 포화 영역의 의미를 비교할 수 있다.
- 은닉층이 입력 공간을 휘고 접어 선형 분리 가능하게 만드는 원리를 설명할 수 있다.
- 보편 근사 정리의 의미를 ReLU 조각 합으로 이해하고, 깊이와 너비의 역할 차이를 안다.
- 출력층(회귀·분류, 로짓, 소프트맥스, 교차 엔트로피)을 구성하고 MLP의 파라미터 수를 직접 셀 수 있다.
생물 뉴런과 인공 뉴런
사람의 뇌에는 약 860억 개의 뉴런이 있고, 각 뉴런은 수천 개의 다른 뉴런과 시냅스(synapse)로 연결된다. 뉴런은 가지돌기(dendrite)로 신호를 받아 세포체(soma)에서 모으고, 모인 전위가 문턱을 넘으면 축삭(axon)을 따라 전기 펄스(활동 전위)를 내보낸다. 시냅스마다 신호를 얼마나 세게 전달할지가 다르고, 학습은 이 연결 강도가 바뀌는 과정이다.
1943년 McCulloch와 Pitts는 이 구조를 극도로 단순화한 수학 모델을 제안했다. 입력 \(x_i\)마다 연결 강도 \(w_i\)(가중치)를 곱해 더하고, 편향(bias) \(b\)를 더한 뒤, 활성화 함수(activation function) \(\varphi\)를 통과시킨다.
현대 신경망은 뇌의 시뮬레이션이 아니다. 실제 뉴런은 시간에 따라 펄스를 내고, 수상돌기 자체가 비선형 계산을 하며, 학습 규칙도 역전파와 다르다. 인공 뉴런은 "가중합 + 비선형"이라는 계산 단위로 이해하는 편이 정확하다. 이름만 생물학에서 빌렸을 뿐, 이 책의 나머지는 순수하게 선형대수와 미적분이다.
퍼셉트론: 결정 경계는 직선이다
1958년 Rosenblatt의 퍼셉트론(perceptron)은 활성화 함수로 계단 함수를 쓰는 뉴런 하나다. \(z = \mathbf w\cdot\mathbf x + b\)가 0 이상이면 클래스 +1, 아니면 −1로 분류한다. 그러면 두 클래스를 가르는 경계는 \(\mathbf w\cdot\mathbf x + b = 0\)인 점들의 집합, 곧 2차원에서는 직선, \(d\)차원에서는 초평면(hyperplane)이다.
기하학적으로 \(\mathbf w\)는 경계에 수직인 법선 벡터이고 '+1 쪽'을 가리킨다. \(b\)는 경계를 원점에서 얼마나 떨어뜨릴지 정한다(원점에서 경계까지 거리 \(=|b|/\lVert\mathbf w\rVert\)). 한 점의 \(z\) 값은 그 점이 경계에서 법선 방향으로 얼마나 떨어져 있는지(× \(\lVert\mathbf w\rVert\))를 나타낸다.
퍼셉트론 학습 규칙
Rosenblatt의 학습 규칙은 놀랍도록 단순하다. 잘못 분류된 점 \((\mathbf x, y)\)(\(y\in\{-1,+1\}\))을 하나 골라 가중치를 그 점 쪽으로(또는 반대쪽으로) 조금 민다.
퍼셉트론: 경계선을 직접 돌리거나 학습시키기
경계선의 ● 손잡이를 끌면 평행 이동, 화살표(법선 w) 끝을 끌면 회전한다.
XOR 문제와 선형 분리 불가능성
두 입력이 0 또는 1일 때 AND와 OR은 퍼셉트론 하나로 쉽게 표현된다. 예를 들어 AND는 \(\mathbf w=(1,1), b=-1.5\), OR은 \(\mathbf w=(1,1), b=-0.5\)다. 그런데 "둘 중 정확히 하나만 1"일 때 1을 내는 XOR은 다르다. 네 점 (0,0), (1,1)은 한 클래스, (0,1), (1,0)은 다른 클래스인데, 대각선으로 엇갈려 있어 어떤 직선으로도 나눌 수 없다.
증명도 간단하다. 퍼셉트론이 XOR을 푼다면 \(b\lt0\)((0,0) → 0), \(w_1+b\ge0\), \(w_2+b\ge0\)((1,0), (0,1) → 1), \(w_1+w_2+b\lt0\)((1,1) → 0)이어야 한다. 가운데 두 식을 더하면 \(w_1+w_2+2b\ge0\), 곧 \(w_1+w_2+b\ge -b\gt0\)이 되어 마지막 식과 모순이다.
해법은 뉴런을 여러 층으로 쌓는 것이다. XOR = (OR) AND NOT (AND)이므로, 첫 층에서 OR 뉴런과 AND 뉴런을 만들고 둘째 층에서 이 둘을 조합하면 된다. 문제는 오랫동안 "여러 층의 가중치를 어떻게 학습시키느냐"였고, 그 답이 1986년 Rumelhart·Hinton·Williams가 널리 알린 역전파다(3장). 그런데 층을 쌓기만 해서는 안 된다. 활성화 함수가 반드시 비선형이어야 한다.
활성화 함수 없이 두 층을 쌓으면 \(W_2(W_1\mathbf x+\mathbf b_1)+\mathbf b_2 = (W_2W_1)\mathbf x + (W_2\mathbf b_1+\mathbf b_2)\)로, 행렬 하나짜리 층과 똑같다. 100층을 쌓아도 직선 하나만 긋는다. 1장에서 본 대로 선형 변환의 합성은 선형 변환이기 때문이다. 비선형 함수가 끼어야 비로소 공간을 '구부릴' 수 있다.
활성화 함수: 비선형의 재료
활성화 함수는 신경망에 비선형성을 주는 유일한 부품이다. 역사적으로 여러 함수가 쓰였고, 각각 학습 속도와 안정성에 영향을 준다. 핵심 기준은 도함수다. 3장의 역전파에서 기울기는 층을 거꾸로 지나며 각 층 활성화 함수의 도함수를 곱해 간다. 도함수가 0에 가까운 포화 영역(saturation)이 넓으면 기울기가 사라져 학습이 멈춘다.
| 함수 | 식 | 도함수 범위 | 특징·사용처 |
|---|---|---|---|
| 계단 (step) | \(\mathbb 1[z\ge0]\) | 0 (z ≠ 0) | 퍼셉트론. 기울기가 없어 역전파 불가 |
| sigmoid | \(\sigma(z)=\dfrac{1}{1+e^{-z}}\) | (0, 0.25] | 출력 (0,1) → 확률. 은닉층에선 포화로 기울기 소실 |
| tanh | \(\tanh z = 2\sigma(2z)-1\) | (0, 1] | 0 중심 출력. RNN·LSTM 내부 |
| ReLU | \(\max(0,z)\) | {0, 1} | 계산이 싸고 양수 쪽 포화 없음. 2012년 이후 CNN의 표준. 음수 쪽 '죽은 뉴런' 문제 |
| GELU | \(z\,\Phi(z)\) | 약 −0.13 ~ 1.13 | 매끄러운 ReLU. BERT·GPT-2·GPT-3 |
| SiLU / Swish | \(z\,\sigma(z)\) | 약 −0.1 ~ 1.1 | Llama·Mistral 계열 FFN의 SwiGLU 게이트 |
sigmoid의 도함수 \(\sigma'(z)=\sigma(z)(1-\sigma(z))\)는 최댓값이 \(z=0\)에서 0.25다. 10층을 지나면 기울기는 최대 \(0.25^{10}\approx 10^{-6}\)배로 줄어든다. ReLU는 양수 영역에서 도함수가 정확히 1이라 이런 감쇠가 없다. 이것이 깊은 신경망이 실용화된 결정적 요인 중 하나였다. GELU와 SiLU는 0 근처를 매끄럽게 하고 음수 쪽에 작은 음의 값을 허용해, 대규모 Transformer에서 약간 더 좋은 성능을 보인다.
활성화 함수 탐색기: 값, 도함수, 포화 영역
은닉층은 공간을 휘고 접는다
층 하나 \(\mathbf h = \varphi(W\mathbf x+\mathbf b)\)가 하는 일을 기하학으로 보자. 먼저 \(W\mathbf x+\mathbf b\)는 1장의 선형 변환(+평행 이동)이다. 격자를 돌리고, 늘이고, 기울인다. 그다음 ReLU가 성분마다 음수를 0으로 바꾼다. 이것은 공간에서 각 좌표축의 음수 쪽 영역을 축 위로 눌러 접는 것이다. 원래 공간에서 보면, 은닉 뉴런 \(j\)마다 직선 \(\mathbf w_j\cdot\mathbf x+b_j=0\)이 '접는 선'이 된다.
접힌 공간에서는 원래 멀리 떨어져 있던 점들이 겹치기도 하고, 꼬여 있던 클래스가 한쪽으로 모이기도 한다. 그러면 다음 층은 접힌 공간 위에 다시 직선을 긋기만 하면 된다. 은닉층의 역할은 마지막 층이 직선 하나로 풀 수 있는 공간을 만들어 주는 것이다. 아래 시뮬레이터는 2 → 2(ReLU) 변환을 나란히 보여 준다. 오른쪽 은닉 공간에서 점선은 로지스틱 회귀로 찾은 최적 직선이다.
공간 접기: 입력 공간 → 은닉 공간 (2 → 2, ReLU)
신경망 플레이그라운드: 브라우저에서 학습시키기
이제 여러 은닉층을 쌓은 다층 퍼셉트론(MLP, Multi-Layer Perceptron)을 실제로 학습시켜 보자. 구조는 입력 2개 → 은닉층 1~3개 → 출력 1개(sigmoid, 클래스 1일 확률)이고, 손실은 이진 교차 엔트로피다. 기울기는 역전파로 정확히 계산하며, 최적화는 Adam 또는 SGD로 미니배치(10개)마다 갱신한다. 역전파와 Adam의 원리는 3장에서 자세히 다룬다. 여기서는 '학습되는 모습'에 집중하자.
신경망 플레이그라운드 (실제 역전파 학습)
보편 근사 정리: ReLU 조각으로 무엇이든
은닉층 하나짜리 신경망은 얼마나 강력할까? 보편 근사 정리(Universal Approximation Theorem)는 놀라운 답을 준다. 비다항식 활성화 함수를 쓰는 은닉층 하나짜리 신경망은, 뉴런 수만 충분하면 유계 구간 위의 어떤 연속 함수든 원하는 정확도로 근사할 수 있다(Cybenko 1989, Hornik 1991, Leshno 외 1993).
ReLU로 보면 직관이 명확하다. 은닉 뉴런 하나 \(a\cdot\mathrm{ReLU}(x - t)\)는 \(x=t\)에서 꺾이는 '경첩'이다. 이런 경첩을 여러 개 더하면, 꺾이는 점마다 기울기가 바뀌는 꺾은선이 된다. 꺾은선은 점을 충분히 촘촘히 찍으면 어떤 연속 곡선이든 따라갈 수 있다.
ReLU 조각으로 함수 근사 (최소제곱)
보편 근사 정리는 '존재'만 보장할 뿐, 필요한 뉴런 수가 얼마나 될지, 학습으로 그 가중치를 찾을 수 있을지는 말해 주지 않는다. 얕은 신경망은 꺾은선 조각을 하나하나 따로 만들어야 하지만, 깊은 신경망은 접기를 반복해 조각 수를 층마다 곱으로 늘릴 수 있다. 폭 \(n\)인 ReLU 층 \(L\)개는 많게는 \(n^L\) 수준의 선형 조각을 만든다(Montúfar 외 2014). 종이를 반으로 \(L\)번 접고 한 번 자르면 \(2^L\)개의 조각이 나오는 것과 비슷하다.
출력층: 회귀, 분류, 로짓, 소프트맥스
마지막 층은 문제의 종류에 맞춰 설계한다. 값 하나를 맞히는 회귀(regression)라면 활성화 없이 \(\hat y = \mathbf w\cdot\mathbf h + b\)를 그대로 출력하고 평균제곱오차(MSE)로 학습한다. 두 클래스 분류라면 sigmoid로 (0, 1) 확률을 내고 이진 교차 엔트로피를 쓴다(앞의 플레이그라운드). \(K\)개 클래스 중 하나를 고르는 다중 분류에서는 출력 뉴런을 \(K\)개 두고, 각각의 실수 출력 \(z_k\)를 로짓(logit)이라 부른다. 로짓을 확률로 바꾸는 함수가 소프트맥스(softmax)다.
로짓 → 소프트맥스 → 교차 엔트로피
왼쪽 막대를 위아래로 끌면 로짓이 바뀌고, 클래스 이름(또는 오른쪽 막대)을 누르면 정답이 바뀐다. '기울기 방향으로 1스텝'은 z ← z − 1.0·(p − y)를 적용한다. 학습이 로짓을 어떻게 움직이는지 볼 수 있다.
깊이 vs 너비, 그리고 파라미터 수 세기
신경망의 크기는 너비(층당 뉴런 수)와 깊이(층 수)로 정해진다. 너비는 한 층이 동시에 표현할 수 있는 특징의 수, 깊이는 특징을 조합하는 단계의 수다. 이미지 분류 CNN의 앞 층은 모서리, 중간 층은 질감·부품, 뒤 층은 물체 전체에 반응하는 식으로, 깊은 망은 단순한 특징을 계층적으로 조합한다. 같은 파라미터 예산이라면 대개 적당히 깊은 망이 넓고 얕은 망보다 효율적이지만, 너무 깊으면 기울기가 전달되기 어려워진다. 이를 해결한 잔차 연결이 6장에서 등장한다.
완전연결층 \(d_\text{in}\to d_\text{out}\)의 파라미터 수는 가중치 \(d_\text{in}\times d_\text{out}\)에 편향 \(d_\text{out}\)을 더한 것이다. 층 크기 목록 \([n_0, n_1, \dots, n_L]\)인 MLP 전체는
이 공식이 Transformer에서도 그대로 통한다. GPT-2와 Llama의 각 블록에 있는 FFN(Feed-Forward Network)은 다름 아닌 은닉층 하나짜리 MLP다. GPT-2 small은 [768, 3072, 768]에 GELU를 쓰고, Llama 3 8B는 [4096, 14336, 4096]에 SiLU 게이트를 곱하는 SwiGLU를 써서 행렬이 3개다(\(W_\text{down}(\mathrm{SiLU}(W_\text{gate}\mathbf x)\odot W_\text{up}\mathbf x)\), 편향 없음). 모델 파라미터의 대부분이 바로 이 MLP들에 있다. 아래 계산기로 확인해 보자.
MLP 파라미터 계산기
핵심 정리
- 인공 뉴런은 \(y=\varphi(\mathbf w\cdot\mathbf x+b)\): 입력과 가중치 패턴의 내적에 편향을 더해 비선형 함수에 통과시킨다.
- 퍼셉트론의 결정 경계 \(\mathbf w\cdot\mathbf x+b=0\)은 직선(초평면)이고 \(\mathbf w\)는 그 법선이다. 퍼셉트론 규칙은 선형 분리 가능한 데이터에서 반드시 수렴하지만 XOR은 풀 수 없다.
- 활성화 함수가 없으면 층을 아무리 쌓아도 선형 변환 하나다. sigmoid·tanh는 포화로 기울기가 사라지기 쉽고, ReLU는 양수 쪽 도함수가 1이라 깊은 망을 가능하게 했다. GELU·SiLU는 대규모 Transformer의 표준이다.
- 은닉층은 공간을 선형 변환한 뒤 ReLU로 접어, 마지막 층이 직선 하나로 풀 수 있는 표현을 만든다.
- MLP는 역전파와 경사하강(Adam 등)으로 학습하며, 깊이와 너비가 표현력을 정한다. 깊이는 접기를 거듭해 조각 수를 곱으로 늘린다.
- 보편 근사 정리: 은닉층 하나로도 충분히 넓으면 어떤 연속 함수든 근사할 수 있다. ReLU 합은 꺾은선이다.
- 다중 분류 출력층은 로짓 → 소프트맥스 → 교차 엔트로피이며 기울기는 \(\mathbf p-\mathbf y\)다. 파라미터 수는 \(\sum(n_{l-1}n_l+n_l)\)이고, Transformer의 FFN이 바로 이 MLP다.
확인 퀴즈
1. 퍼셉트론 \(\mathbf w=(2,-1), b=1\)에 대한 설명으로 옳은 것은?
2. 활성화 함수 없이 Linear 층 10개를 쌓은 신경망의 표현력은?
3. sigmoid 도함수의 최댓값과, 그것이 깊은 망에서 의미하는 바는?
4. 편향을 포함한 MLP [784, 256, 10]의 파라미터 수는?
5. 로짓 (3, 1, 0)에 모든 원소에 10을 더한 (13, 11, 10)의 소프트맥스 결과는?
6. Llama 3 8B의 FFN(d = 4096, 은닉 14,336, SwiGLU, 편향 없음) 한 블록의 파라미터 수에 가장 가까운 것은?