신경망 기초 -- 뉴런에서 네트워크로
퍼셉트론, 활성화 함수, 경사하강법
기계가 판단을 배운다는 것
은행 심사역은 수백 건의 대출 심사를 거치면서 "이 고객은 상환할 것이다"라는 직관을 형성합니다. 소득, 부채비율, 신용등급 같은 여러 지표를 동시에 고려하되, 어떤 지표에 더 무게를 두는지는 경험에 따라 달라집니다.
신경망(neural network)은 바로 이 과정을 수학으로 모방합니다. 입력 신호에 각각 가중치(weight)를 곱하고, 합산 결과가 기준을 넘으면 "예", 넘지 않으면 "아니오"를 출력합니다. 처음에는 가중치가 엉터리지만, 데이터를 반복 학습하면서 점점 정확해집니다.
이 장에서는 하나의 뉴런부터 시작해서, 활성화 함수, 경사하강법, 다층 네트워크까지 신경망의 핵심 구조를 직접 조작하고 실험하면서 이해합니다.
하나의 뉴런: 가중합과 활성화
생물학적 뉴런은 수상돌기로 신호를 받고, 신호의 총합이 임계값을 넘으면 축삭을 통해 다음 뉴런으로 전달합니다. 인공 뉴런은 이것을 단순화한 수학 모델입니다.
a = sigma(z) = 1 / (1 + e-z)
시그모이드 함수: z가 크면 1에 가깝고, z가 작으면 0에 가까운 값을 출력
뉴런은 여러 위원이 투표하는 위원회와 같습니다. 각 위원(입력)이 의견(값)을 내놓되, 모든 위원의 영향력이 같지 않습니다. 경력 많은 위원(높은 가중치)의 의견은 더 크게 반영되고, 신입 위원(낮은 가중치)의 의견은 덜 반영됩니다. 이 가중 투표의 합계가 임계값(편향)을 넘으면 "통과", 넘지 않으면 "불통과"입니다. 학습이란 "어떤 위원의 영향력을 높이고, 어떤 위원은 줄여야 더 정확한 판단이 나오는가"를 데이터로부터 알아내는 과정입니다.
실습 1: 단일 뉴런 놀이터
하나의 뉴런이 2차원 평면을 어떻게 분류하는지 직접 확인합니다. 가중치와 편향을 조절하면 결정 경계(decision boundary)가 실시간으로 이동합니다.
활성화 함수: 왜 비선형이 필요한가
만약 활성화 함수가 없다면(또는 단순히 f(z) = z라면), 뉴런을 아무리 많이 쌓아도 결국 하나의 선형 변환과 같습니다. 비선형 활성화 함수가 있어야 네트워크가 곡선, 영역, 복잡한 패턴을 표현할 수 있습니다.
Sigmoid: f(z) = 1 / (1 + e-z)
Tanh: f(z) = (ez - e-z) / (ez + e-z)
ReLU: f(z) = max(0, z)
실습 2: 활성화 함수 탐색기
네 가지 활성화 함수의 형태와 기울기(도함수)를 비교합니다. 입력값 슬라이더를 움직여 각 함수의 출력이 어떻게 달라지는지 관찰하세요.
활성화 함수 출력
도함수 (기울기)
손실 함수: 얼마나 틀렸는가
뉴런이 출력한 예측값 a와 실제 정답 y 사이의 차이를 수치화한 것이 손실(loss)입니다. 학습이란 이 손실을 최소화하는 가중치를 찾아가는 과정입니다.
L = -[ y * log(a) + (1 - y) * log(1 - a) ]
y=1일 때 a가 1에 가까우면 손실이 작고, y=0일 때 a가 0에 가까우면 손실이 작다
w := w - lr * (dL/dw)
lr = 학습률(learning rate), dL/dw = 손실의 가중치에 대한 기울기
실습 3: 경사하강법 시각화
2차원 손실 곡면 위에서 경사하강법이 어떻게 최솟값(초록 점)을 찾아가는지 관찰합니다. 색이 진할수록 손실이 높은 지점입니다.
역전파: 오류를 거꾸로 전달하다
다층 네트워크에서는 출력층의 오차를 이전 층까지 "역방향"으로 전달하여 모든 가중치를 업데이트합니다. 이것이 역전파(backpropagation)입니다.
완제품에서 불량이 발견되었을 때, 어떤 공정 단계가 원인인지 역추적하는 것과 같습니다. 조립 단계의 문제인지, 부품 가공의 문제인지, 원자재의 문제인지를 뒤에서부터 하나씩 점검하면서 각 단계의 기여도를 파악합니다.
보편 근사 정리(Universal Approximation Theorem): 은닉층이 하나 이상이고 뉴런이 충분히 많으면, 신경망은 어떤 연속 함수든 원하는 정밀도로 근사할 수 있습니다. 쉽게 말하면, 충분히 큰 네트워크는 어떤 패턴이든 학습할 수 있다는 뜻입니다.
실습 4: 은닉층으로 XOR 해결하기
단일 뉴런으로 불가능했던 XOR 문제를 2층 네트워크(입력 -> 은닉 -> 출력)로 해결합니다. "학습 시작" 버튼을 누르면 네트워크가 XOR 패턴을 학습하는 과정을 실시간으로 관찰할 수 있습니다.
결정 경계
손실 곡선
실습 5: 처음부터 만드는 신경망 -- 이진 분류
두 개의 클러스터로 이루어진 2차원 데이터를 신경망으로 분류합니다. 은닉층의 뉴런 수를 바꾸면서 네트워크 용량이 결정 경계에 미치는 영향을 관찰하세요.
결정 경계
손실 곡선
- 인공 뉴런은 입력의 가중합에 활성화 함수를 적용하는 수학 모델이다.
- 단일 뉴런은 선형 경계만 만들 수 있으므로 XOR 같은 비선형 문제를 풀 수 없다.
- 활성화 함수(Sigmoid, ReLU, Tanh)는 네트워크에 비선형성을 부여한다.
- 경사하강법은 손실 함수의 기울기를 따라 가중치를 반복 조정하는 최적화 방법이다.
- 학습률이 너무 작으면 느리고, 너무 크면 발산한다.
- 은닉층을 추가하면 비선형 결정 경계를 만들 수 있어 복잡한 패턴을 학습할 수 있다.
- 보편 근사 정리: 충분한 뉴런이 있으면 어떤 함수든 근사할 수 있다.
다음 장 예고: 이 장에서 수동으로 구현한 것을 실무에서는 프레임워크(TensorFlow, PyTorch)로 처리합니다. 다음 장에서는 더 깊은 네트워크 구조와 학습 기법을 살펴봅니다.