Skip to content
PART 6 · 31장

신경망 기초 -- 뉴런에서 네트워크로

퍼셉트론, 활성화 함수, 경사하강법

기계가 판단을 배운다는 것

은행 심사역은 수백 건의 대출 심사를 거치면서 "이 고객은 상환할 것이다"라는 직관을 형성합니다. 소득, 부채비율, 신용등급 같은 여러 지표를 동시에 고려하되, 어떤 지표에 더 무게를 두는지는 경험에 따라 달라집니다.

신경망(neural network)은 바로 이 과정을 수학으로 모방합니다. 입력 신호에 각각 가중치(weight)를 곱하고, 합산 결과가 기준을 넘으면 "예", 넘지 않으면 "아니오"를 출력합니다. 처음에는 가중치가 엉터리지만, 데이터를 반복 학습하면서 점점 정확해집니다.

이 장에서는 하나의 뉴런부터 시작해서, 활성화 함수, 경사하강법, 다층 네트워크까지 신경망의 핵심 구조를 직접 조작하고 실험하면서 이해합니다.

하나의 뉴런: 가중합과 활성화

생물학적 뉴런은 수상돌기로 신호를 받고, 신호의 총합이 임계값을 넘으면 축삭을 통해 다음 뉴런으로 전달합니다. 인공 뉴런은 이것을 단순화한 수학 모델입니다.

인공 뉴런의 구조: 입력값(x1, x2, ...)에 각각 가중치(w1, w2, ...)를 곱한 뒤 모두 더합니다. 여기에 편향(bias, b)을 더한 것이 가중합 z입니다. 이 z를 활성화 함수에 통과시키면 최종 출력 a가 됩니다. 쉽게 말하면, 뉴런은 "입력들의 가중 평균이 기준을 넘는가?"를 판단하는 장치입니다.
z = w1 * x1 + w2 * x2 + b
a = sigma(z) = 1 / (1 + e-z)
시그모이드 함수: z가 크면 1에 가깝고, z가 작으면 0에 가까운 값을 출력
비유: 투표하는 위원회
뉴런은 여러 위원이 투표하는 위원회와 같습니다. 각 위원(입력)이 의견(값)을 내놓되, 모든 위원의 영향력이 같지 않습니다. 경력 많은 위원(높은 가중치)의 의견은 더 크게 반영되고, 신입 위원(낮은 가중치)의 의견은 덜 반영됩니다. 이 가중 투표의 합계가 임계값(편향)을 넘으면 "통과", 넘지 않으면 "불통과"입니다. 학습이란 "어떤 위원의 영향력을 높이고, 어떤 위원은 줄여야 더 정확한 판단이 나오는가"를 데이터로부터 알아내는 과정입니다.

실습 1: 단일 뉴런 놀이터

하나의 뉴런이 2차원 평면을 어떻게 분류하는지 직접 확인합니다. 가중치와 편향을 조절하면 결정 경계(decision boundary)가 실시간으로 이동합니다.




정확도
-
데이터셋
AND
직접 해보기: AND 데이터에서 가중치를 조절해 100% 정확도를 달성하세요. 그 다음 XOR 데이터를 선택하고, 아무리 조절해도 100%가 불가능한 이유를 생각해보세요.
핵심 발견: 단일 뉴런의 결정 경계는 언제나 직선입니다. AND와 OR는 직선 하나로 분류할 수 있지만(선형 분리 가능), XOR는 직선으로는 절대 분류할 수 없습니다(선형 분리 불가능). 이 한계를 극복하려면 뉴런을 여러 층으로 쌓아야 합니다.

활성화 함수: 왜 비선형이 필요한가

만약 활성화 함수가 없다면(또는 단순히 f(z) = z라면), 뉴런을 아무리 많이 쌓아도 결국 하나의 선형 변환과 같습니다. 비선형 활성화 함수가 있어야 네트워크가 곡선, 영역, 복잡한 패턴을 표현할 수 있습니다.

쉽게 말하면 -- 통과/불통과를 결정하는 문턱: 활성화 함수는 뉴런의 가중합이 "충분히 강한 신호인지" 판단하는 문턱입니다. 수도꼭지를 생각해보세요. 물의 압력(가중합)이 일정 이상이면 물이 나오고(활성화), 그 이하이면 물이 나오지 않습니다(비활성화). 이 문턱이 있어야 뉴런이 단순한 전달이 아닌 "판단"을 할 수 있고, 여러 층을 쌓았을 때 직선이 아닌 복잡한 경계를 만들어낼 수 있습니다.
Step: f(z) = z > 0 ? 1 : 0
Sigmoid: f(z) = 1 / (1 + e-z)
Tanh: f(z) = (ez - e-z) / (ez + e-z)
ReLU: f(z) = max(0, z)

실습 2: 활성화 함수 탐색기

네 가지 활성화 함수의 형태와 기울기(도함수)를 비교합니다. 입력값 슬라이더를 움직여 각 함수의 출력이 어떻게 달라지는지 관찰하세요.

활성화 함수 출력

도함수 (기울기)

Sigmoid 출력
-
ReLU 출력
-
Tanh 출력
-
Step 출력
-
기울기 소실 문제 (Vanishing Gradient): Sigmoid와 Tanh는 입력이 극단적으로 크거나 작을 때 기울기가 거의 0이 됩니다. 이 상태에서는 학습이 사실상 멈춥니다. ReLU는 양수 영역에서 기울기가 항상 1이므로 이 문제를 크게 완화합니다. x를 -5나 5 근처로 옮기고 각 함수의 도함수 값을 비교해보세요.

손실 함수: 얼마나 틀렸는가

뉴런이 출력한 예측값 a와 실제 정답 y 사이의 차이를 수치화한 것이 손실(loss)입니다. 학습이란 이 손실을 최소화하는 가중치를 찾아가는 과정입니다.

이진 교차 엔트로피 손실:
L = -[ y * log(a) + (1 - y) * log(1 - a) ]
y=1일 때 a가 1에 가까우면 손실이 작고, y=0일 때 a가 0에 가까우면 손실이 작다
경사하강법(Gradient Descent)의 직관 -- 안개 낀 산에서 가장 낮은 곳 찾기: 짙은 안개가 낀 산에 서 있다고 상상하세요. 앞이 보이지 않아서 전체 지형을 알 수 없습니다. 할 수 있는 것은 발밑의 경사를 느끼는 것뿐입니다. "이쪽이 내리막이네" -- 그 방향으로 한 걸음 내딛습니다. 다시 발밑을 느끼고, 다시 내리막 방향으로 한 걸음. 이것을 반복하면 결국 골짜기(손실의 최솟값)에 도달합니다.
학습률은 "걸음 크기"입니다: 한 걸음을 크게 내디디면(높은 학습률) 빠르게 내려가지만 골짜기를 지나칠 수 있습니다. 한 걸음을 아주 작게 내디디면(낮은 학습률) 정확하지만 도착까지 시간이 너무 오래 걸립니다. 너무 크면 지나치고, 너무 작으면 도착 못 합니다. 적절한 학습률을 찾는 것이 신경망 학습의 핵심 기술 중 하나입니다.
가중치 업데이트 규칙:
w := w - lr * (dL/dw)
lr = 학습률(learning rate), dL/dw = 손실의 가중치에 대한 기울기

실습 3: 경사하강법 시각화

2차원 손실 곡면 위에서 경사하강법이 어떻게 최솟값(초록 점)을 찾아가는지 관찰합니다. 색이 진할수록 손실이 높은 지점입니다.

사용 방법: (1) 아래 등고선 그래프에서 원하는 출발점을 클릭하세요 (파란 점이 찍힙니다). (2) 학습률을 조절하세요 (작으면 천천히, 크면 빠르지만 불안정). (3) "하강 시작" 버튼을 누르면 빨간 경로가 최솟값을 향해 이동합니다. 출발점을 지정하지 않으면 랜덤 위치에서 시작합니다.
0.050
현재 손실
-
스텝 수
0
w1
-
w2
-
실험 과제: (1) 학습률을 0.01로 설정하고 하강을 실행하세요. 천천히 수렴합니다. (2) 학습률을 0.5로 높여보세요. 큰 보폭으로 빠르게 접근하지만 진동할 수 있습니다. (3) 학습률을 0.95 이상으로 올려보세요. 발산하여 최솟값을 벗어나는 것을 관찰하세요.
학습률의 딜레마: 너무 작으면 학습이 지나치게 느리고, 너무 크면 최적점을 건너뛰며 발산합니다. 실무에서는 학습률을 점진적으로 줄이는 "학습률 스케줄링"이나 Adam 같은 적응적 최적화 알고리즘을 사용합니다.

역전파: 오류를 거꾸로 전달하다

다층 네트워크에서는 출력층의 오차를 이전 층까지 "역방향"으로 전달하여 모든 가중치를 업데이트합니다. 이것이 역전파(backpropagation)입니다.

역전파의 핵심 -- 결과에서 거꾸로 추적하여 누구의 책임인지 찾기: 시험 성적이 나빴다고 가정해봅시다. "왜 성적이 나빴지?" -- 시험 당일 컨디션이 안 좋았기 때문. "왜 컨디션이 안 좋았지?" -- 전날 잠을 못 잤기 때문. "왜 잠을 못 잤지?" -- 늦게까지 게임을 했기 때문. 이렇게 결과에서 원인을 거꾸로 추적하는 것이 역전파의 핵심입니다. 미적분의 연쇄 법칙(Chain Rule)을 활용하여, 출력층의 오차를 이전 층으로 거슬러 올라가면서 "이 가중치가 최종 오차에 얼마나 기여했는가?"를 정확히 계산합니다.
비유: 제조 공정의 품질 관리
완제품에서 불량이 발견되었을 때, 어떤 공정 단계가 원인인지 역추적하는 것과 같습니다. 조립 단계의 문제인지, 부품 가공의 문제인지, 원자재의 문제인지를 뒤에서부터 하나씩 점검하면서 각 단계의 기여도를 파악합니다.

보편 근사 정리(Universal Approximation Theorem): 은닉층이 하나 이상이고 뉴런이 충분히 많으면, 신경망은 어떤 연속 함수든 원하는 정밀도로 근사할 수 있습니다. 쉽게 말하면, 충분히 큰 네트워크는 어떤 패턴이든 학습할 수 있다는 뜻입니다.

실습 4: 은닉층으로 XOR 해결하기

단일 뉴런으로 불가능했던 XOR 문제를 2층 네트워크(입력 -> 은닉 -> 출력)로 해결합니다. "학습 시작" 버튼을 누르면 네트워크가 XOR 패턴을 학습하는 과정을 실시간으로 관찰할 수 있습니다.

2.0

결정 경계

손실 곡선

에포크
0
현재 손실
-
정확도
-
관찰 포인트: 학습 초기에는 결정 경계가 직선처럼 보이지만, 에포크가 진행될수록 경계가 휘어지면서 XOR 패턴에 맞는 비선형 영역이 형성됩니다. 이것이 은닉층의 역할입니다. 은닉 뉴런들이 입력 공간을 "접어서" 선형 분리가 가능한 새로운 표현을 만듭니다.

실습 5: 처음부터 만드는 신경망 -- 이진 분류

두 개의 클러스터로 이루어진 2차원 데이터를 신경망으로 분류합니다. 은닉층의 뉴런 수를 바꾸면서 네트워크 용량이 결정 경계에 미치는 영향을 관찰하세요.

0.50

결정 경계

손실 곡선

에포크
0
손실
-
정확도
-
은닉 뉴런
4
실험 과제: (1) 은닉 뉴런 1개로 클러스터 데이터를 학습시켜보세요. 직선 경계밖에 만들지 못합니다. (2) 뉴런 수를 4, 8로 늘리면서 경계가 어떻게 복잡해지는지 관찰하세요. (3) 나선형 데이터를 선택하고, 최소 몇 개의 뉴런이 필요한지 실험하세요.
과적합 주의: 뉴런이 너무 많으면 훈련 데이터의 잡음까지 외워버립니다. 결정 경계가 지나치게 구불구불해지면 새로운 데이터에 대한 예측력이 떨어집니다. 이 장에서는 다루지 않지만, 이후 장에서 정규화와 검증 기법을 배웁니다.
이 장의 핵심
  • 인공 뉴런은 입력의 가중합에 활성화 함수를 적용하는 수학 모델이다.
  • 단일 뉴런은 선형 경계만 만들 수 있으므로 XOR 같은 비선형 문제를 풀 수 없다.
  • 활성화 함수(Sigmoid, ReLU, Tanh)는 네트워크에 비선형성을 부여한다.
  • 경사하강법은 손실 함수의 기울기를 따라 가중치를 반복 조정하는 최적화 방법이다.
  • 학습률이 너무 작으면 느리고, 너무 크면 발산한다.
  • 은닉층을 추가하면 비선형 결정 경계를 만들 수 있어 복잡한 패턴을 학습할 수 있다.
  • 보편 근사 정리: 충분한 뉴런이 있으면 어떤 함수든 근사할 수 있다.

다음 장 예고: 이 장에서 수동으로 구현한 것을 실무에서는 프레임워크(TensorFlow, PyTorch)로 처리합니다. 다음 장에서는 더 깊은 네트워크 구조와 학습 기법을 살펴봅니다.