신경망과 딥러닝
서문
신경망은 AI 혁명의 엔진입니다. ChatGPT의 언어 이해부터 자율주행의 이미지 인식까지, 그 뒤에는 모두 신경망이 작동하고 있습니다. 이것은 마법이 아니라, 방대한 데이터를 통해 입력과 출력 간의 매핑 관계를 "학습"하는 정교한 수학적 프레임워크입니다. 기본 원리를 이해하면 AI 도구를 더 잘 사용하고 디버깅할 수 있습니다.
이 글에서 무엇을 배울 수 있을까요?
이 장을 마치면 다음을 얻을 수 있습니다:
- 핵심 개념: 뉴런, 레이어, 순전파, 역전파의 기본 원리 이해
- 네트워크 유형: CNN, RNN, Transformer 등 주요 아키텍처의 특징과 적용 시나리오
- 학습 과정: 모델이 데이터에서 어떻게 "학습"하는지 이해
- 핵심 기법: 과적합, 학습률, 정규화 등 실용적인 개념 습득
- 발전 과정: 퍼셉트론부터 대규모 언어 모델까지의 진화 과정
| 장 | 내용 | 핵심 개념 |
|---|---|---|
| 제 1 장 | 뉴런에서 네트워크로 | 퍼셉트론, 활성화 함수, 순전파 |
| 제 2 장 | 네트워크의 학습 방법 | 손실 함수, 경사 하강법, 역전파 |
| 제 3 장 | 주요 네트워크 아키텍처 | CNN, RNN, Transformer |
| 제 4 장 | 학습의 기술 | 과적합, 정규화, 하이퍼파라미터 튜닝 |
| 제 5 장 | 발전 과정과 최전선 | 퍼셉트론에서 GPT까지 |
1. 뉴런에서 네트워크로
단일 뉴런
신경망의 최소 단위는 뉴런(Neuron)입니다. 이는 생물학적 뉴런의 작동 방식을 모방합니다: 여러 입력 신호를 받아 가중 합을 계산하고, 활성화 함수를 통해 출력을 생성합니다.
입력 x1 ──→ ×w1 ──┐
입력 x2 ──→ ×w2 ──┼──→ Σ(가중 합) + b(편향) ──→ f(활성화 함수) ──→ 출력
입력 x3 ──→ ×w3 ──┘수학적 표현: y = f(w₁x₁ + w₂x₂ + w₃x₃ + b)
활성화 함수: 비선형성이 필요한 이유
활성화 함수가 없다면, 아무리 많은 뉴런 레이어를 쌓아도 결국 하나의 선형 변환(행렬 곱셈)과 동일합니다. 활성화 함수는 비선형성을 도입하여 네트워크가 복잡한 패턴을 학습할 수 있게 합니다.
| 활성화 함수 | 공식 | 특징 | 주요 사용처 |
|---|---|---|---|
| ReLU | max(0, x) | 간단하고 효율적, 학습이 빠름 | 은닉층의 기본 선택 |
| Sigmoid | 1/(1+e⁻ˣ) | 출력 0~1 | 이진 분류 출력층 |
| Tanh | (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ) | 출력 -1~1 | RNN에서 자주 사용 |
| Softmax | eˣᵢ/Σeˣⱼ | 확률 분포 출력 | 다중 분류 출력층 |
뉴런에서 네트워크로
여러 뉴런을 레이어로 구성하고, 여러 레이어를 직렬로 연결하면 신경망이 됩니다:
입력층 은닉층1 은닉층2 출력층
(특징) (저수준 특징 추출) (고수준 특징 추출) (예측 결과)
x1 ──→ [○ ○ ○ ○] ──→ [○ ○ ○] ──→ [○ ○]
x2 ──→ [○ ○ ○ ○] ──→ [○ ○ ○] ──→ 고양이/개
x3 ──→ [○ ○ ○ ○] ──→ [○ ○ ○]| 개념 | 설명 |
|---|---|
| 입력층 | 원시 데이터를 받아들임 (이미지 픽셀, 텍스트 벡터 등) |
| 은닉층 | 중간 처리 레이어, 레이어가 많을수록 네트워크가 더 "깊어짐" (딥러닝의 "딥") |
| 출력층 | 최종 예측 생성 (분류 확률, 회귀 값 등) |
| 순전파 | 데이터가 입력층에서 출력층으로 레이어를 따라 흐르는 과정 |
왜 "딥"러닝이라고 할까요?
전통적인 머신러닝은 보통 1~2개 레이어만 사용합니다. 은닉층 수가 수십에서 수백 개로 늘어나면 "딥"러닝이라고 부릅니다. 더 깊은 네트워크는 더 추상적인 특징을 학습할 수 있습니다: 첫 번째 레이어는 에지를, 두 번째 레이어는 질감을, 세 번째 레이어는 부품을, 더 깊은 레이어는 "이것은 고양이"라는 것을 학습합니다.
2. 네트워크의 학습 방법
신경망의 "학습"은 본질적으로 최적화 문제입니다: 네트워크의 예측이 실제 정답에 최대한 가까워지도록 가중치(w)와 편향(b)의 집합을 찾는 것입니다.
학습 3단계
1. 순전파: 데이터를 입력하여 예측 결과 얻기
2. 손실 계산: 손실 함수로 예측과 실제 값의 차이 측정
3. 역전파: 손실에 기반하여 각 가중치의 기울기를 계산하고 가중치 업데이트
↓
손실이 충분히 작아질 때까지 위 단계 반복손실 함수: "얼마나 틀렸는지" 측정
손실 함수(Loss Function)는 예측값과 실제값 사이의 차이를 정량화합니다. 학습의 목표는 손실을 최소화하는 것입니다.
| 손실 함수 | 공식 요약 | 적용 시나리오 |
|---|---|---|
| MSE (평균 제곱 오차) | 예측값과 실제값 차이의 제곱 평균 | 회귀 문제 |
| Cross-Entropy (교차 엔트로피) | -Σ y·log(ŷ) | 분류 문제 |
| Binary Cross-Entropy | 교차 엔트로피의 이진 분류 버전 | 이진 분류 문제 |
경사 하강법: 가장 낮은 지점 찾기
산 정상에서 눈을 가린 채 가장 낮은 지점으로 걸어간다고 상상해 보세요. 할 수 있는 일은 발밑의 경사를 확인하고, 내리막 방향으로 한 걸음 나아가는 것뿐입니다. 이것이 경사 하강법입니다.
손실값
↑
│ ╱╲
│ ╱ ╲ ← 현재 위치
│ ╱ ╲ ↙ 경사 방향으로 하강
│ ╱ ╲╱ ← 지역 최소값
│╱ ╲╱ ← 전역 최소값
└──────────────→ 가중치 값| 개념 | 설명 |
|---|---|
| 기울기 | 각 가중치에 대한 손실 함수의 편미분, "어느 방향으로 조정해야 손실이 줄어드는지"를 나타냄 |
| 학습률 | 한 걸음에 얼마나 나아갈지. 너무 크면 최저점을 지나치고, 너무 작으면 수렴이 너무 느림 |
| 배치 크기 | 매번 몇 개의 샘플로 기울기를 계산할지. 전체는 너무 느리고, 단일 샘플은 너무 불안정하며, 미니 배치가 절충안 |
역전파: 연쇄 법칙의 승리
역전파(Backpropagation)는 기울기를 효율적으로 계산하는 알고리즘입니다. 미적분의 연쇄 법칙을 활용하여 출력층부터 시작해 각 가중치가 손실에 기여한 정도를 레이어별로 역순으로 계산합니다.
순전파: 입력 → 은닉층1 → 은닉층2 → 출력 → 손실
역전파: 손실 → 출력 → 은닉층2 → 은닉층1 → 모든 가중치 업데이트역전파 직관적으로 이해하기
신경망을 생산 라인이라고 생각해 보세요. 제품(예측)에 문제(손실이 큼)가 생기면, 마지막 공정부터 거꾸로 추적하여 각 공정(각 레이어의 가중치)이 최종 문제에 얼마나 기여했는지 확인하고, 기여도에 따라 조정합니다. 기여도가 큰 것은 많이, 작은 것은 적게 조정합니다.
3. 주요 네트워크 아키텍처
데이터 유형에 따라 적합한 네트워크 아키텍처가 다릅니다. 올바른 아키텍처를 선택하면 절반의 노력으로 두 배의 효과를 얻을 수 있습니다.
units (number of neurons)activationDense(128, activation="relu")3.1 CNN (합성곱 신경망)
CNN은 이미지 처리의 제왕입니다. 핵심 아이디어: 작은 합성곱 커널을 이미지 위에서 슬라이딩하며 지역적 특징을 추출합니다.
입력 이미지 → [합성곱층→활성화→풀링] × N → 완전연결층 → 출력
28×28 에지/질감/형태 추출 분류 결과| 특징 | 설명 |
|---|---|
| 지역 연결 | 각 뉴런은 전체 이미지가 아닌 작은 영역만 봄 |
| 파라미터 공유 | 동일한 합성곱 커널을 전체 이미지에서 재사용하여 파라미터 대폭 감소 |
| 이동 불변성 | 고양이가 이미지 왼쪽에 있든 오른쪽에 있든 인식 가능 |
| 계층적 특징 | 얕은 층은 에지를, 깊은 층은 의미를 학습 |
대표 모델: LeNet, AlexNet, VGG, ResNet, EfficientNet
3.2 RNN (순환 신경망)
RNN은 시퀀스 데이터를 위해 설계되었습니다. 은닉 상태가 다음 시간 단계로 전달되어 네트워크에 "기억" 능력을 부여합니다.
시간 단계 t1 시간 단계 t2 시간 단계 t3
"나" ──→ "는" ──→ "고양이를 좋아한다"
↓ ↓ ↓
[h1] ──→ [h2] ──→ [h3] ──→ 출력
↑ ↑ ↑
은닉 상태가 시간 단계 간에 전달됨 (기억)| 변형 | 해결한 문제 | 핵심 메커니즘 |
|---|---|---|
| 기본 RNN | 기본 시퀀스 모델링 | 단순 순환 연결 |
| LSTM | 긴 시퀀스의 기울기 소실 | 망각 게이트, 입력 게이트, 출력 게이트 |
| GRU | LSTM 파라미터 과다 | 리셋 게이트와 업데이트 게이트로 단순화 |
| 양방향 RNN | 과거만 볼 수 있음 | 순방향과 역방향 동시 처리 |
LSTM의 게이트 메커니즘
LSTM의 정교함은 세 개의 "게이트"에 있습니다: 망각 게이트는 어떤 오래된 기억을 버릴지 결정하고, 입력 게이트는 어떤 새로운 정보를 저장할지 결정하며, 출력 게이트는 어떤 내용을 출력할지 결정합니다. 마치 책을 읽을 때 중요한 줄거리는 선택적으로 기억하고 관련 없는 세부 사항은 잊는 것과 같습니다.
3.3 Transformer: 어텐션이 전부다
2017년 Google이 발표한 "Attention Is All You Need" 논문은 Transformer를 제안하며 AI 분야를 완전히 바꾸었습니다. 순환 구조 대신 셀프 어텐션 메커니즘을 사용하며, GPT, BERT, Claude 등 대규모 모델의 기반이 되었습니다.
입력 시퀀스 → 임베딩 + 위치 인코딩 → [멀티헤드 어텐션 → 피드포워드 네트워크] × N → 출력
↑
각 단어가 다른 모든 단어를 "볼" 수 있음| 장점 | 설명 |
|---|---|
| 병렬 계산 | RNN처럼 단계별 처리가 필요 없이 전체 시퀀스를 병렬 처리 가능 |
| 장거리 의존성 | 임의의 두 위치 간에 거리 제한 없이 직접 연결 수립 |
| 확장성 | 모델이 커지고 데이터가 많을수록 효과가 좋아짐 (Scaling Law) |
셀프 어텐션의 직관: "고양이가 매트 위에 앉아 있다, 왜냐하면 그것이 피곤하기 때문이다"라는 문장을 읽을 때, "그것"은 "고양이"에 주목해야 의미를 이해할 수 있습니다. 셀프 어텐션은 모델이 이러한 연관성을 학습하도록 합니다 — 시퀀스의 모든 단어 쌍에 대해 "연관성 점수"를 계산합니다.
4. 학습의 기술
좋은 아키텍처만으로는 충분하지 않습니다. 학습 과정에서 피해야 할 많은 "함정"이 있습니다.
4.1 과적합 vs 과소적합
| 문제 | 증상 | 원인 | 해결책 |
|---|---|---|---|
| 과적합 | 학습셋 성능은 좋지만 테스트셋 성능은 나쁨 | 모델이 너무 복잡하여 "답을 암기"하고 규칙을 학습하지 못함 | 정규화, Dropout, 데이터 증강, 조기 종료 |
| 과소적합 | 학습셋과 테스트셋 모두 성능이 나쁨 | 모델이 너무 단순하여 규칙을 학습하지 못함 | 모델 용량 증가, 더 오래 학습, 더 나은 특성 |
오차
↑
│ ╲ 학습 오차 테스트 오차 ╱
│ ╲ ╱
│ ╲──────────────────────╱
│ 과소적합 ← 최적점 → 과적합
└──────────────────────────→ 모델 복잡도4.2 주요 하이퍼파라미터
하이퍼파라미터는 학습 전에 사람이 설정해야 하는 파라미터입니다(모델이 스스로 학습하는 것이 아님):
| 하이퍼파라미터 | 역할 | 일반적인 범위 | 튜닝 제안 |
|---|---|---|---|
| 학습률 | 단계별 업데이트 크기 | 1e-5 ~ 1e-1 | 가장 중요한 하이퍼파라미터, 보통 1e-3부터 시작 |
| 배치 크기 | 매번 학습에 사용할 샘플 수 | 16 ~ 512 | 클수록 학습이 안정적이지만 더 많은 메모리 필요 |
| 에포크 (Epoch) | 전체 데이터셋을 순회하는 횟수 | 10 ~ 100+ | 조기 종료와 함께 사용, 검증셋이 더 이상 개선되지 않으면 중단 |
| 옵티마이저 | 기울기 업데이트 전략 | Adam, SGD | Adam이 기본 선택, SGD+모멘텀은 정밀 튜닝에 적합 |
4.3 정규화 기법
과적합을 방지하는 일반적인 방법:
| 기법 | 원리 | 사용 방법 |
|---|---|---|
| Dropout | 학습 시 무작위로 일부 뉴런 비활성화 | 보통 p=0.1~0.5 |
| 가중치 감쇠 | 손실 함수에 가중치 크기에 대한 페널티 추가 | L2 정규화, λ=1e-4 |
| 데이터 증강 | 학습 데이터에 무작위 변환 적용 (뒤집기, 자르기, 회전) | 이미지 작업에 필수 |
| 조기 종료 | 검증셋 손실이 더 이상 감소하지 않으면 학습 중단 | patience=5~10 |
| Batch Normalization | 각 레이어의 입력 분포 정규화 | 수렴 가속, 경미한 정규화 효과 |
학습의 경험 법칙
- 먼저 작은 데이터셋으로 전체 파이프라인을 실행하여 코드에 버그가 없는지 확인하세요
- 처음부터 학습하는 대신 기존 사전 학습 모델에서 미세 조정을 시작하세요
- 학습률은 시간을 들여 튜닝할 가치가 가장 높은 하이퍼파라미터입니다
- 학습 손실이 감소하지 않는다면, 모델을 의심하기 전에 먼저 데이터와 코드를 확인하세요
5. 발전 과정과 최전선
신경망의 발전은 여러 번의 "겨울"과 "부흥"을 겪었으며, 각각의 돌파구는 핵심적인 기술 혁신에서 비롯되었습니다.
| 연대 | 이정표 | 핵심 돌파구 |
|---|---|---|
| 1958 | 퍼셉트론 (Perceptron) | 최초의 신경망 모델, 선형 문제만 처리 가능 |
| 1986 | 역전파 알고리즘 | 다층 네트워크 학습을 가능하게 함 |
| 1998 | LeNet (CNN) | 합성곱 네트워크가 손글씨 숫자 인식에서 대성공 |
| 2012 | AlexNet | 딥 CNN이 ImageNet에서 전통적 방법을 압도, 딥러닝 폭발적 성장 |
| 2014 | GAN (생성적 적대 신경망) | 두 네트워크의 적대적 학습으로 사실적 이미지 생성 |
| 2017 | Transformer | "Attention Is All You Need", 어텐션 메커니즘이 RNN을 대체 |
| 2018 | BERT | 사전 학습+미세 조정 패러다임, NLP 전면적 돌파 |
| 2020 | GPT-3 | 1750억 파라미터, 대규모 모델의 창발적 능력 입증 |
| 2022 | ChatGPT | RLHF 정렬 기술, AI가 대중의 시야에 진입 |
| 2023+ | 멀티모달 대규모 모델 | GPT-4V, Claude 등, 텍스트와 이미지를 동시에 이해 |
현재 트렌드
| 방향 | 설명 |
|---|---|
| 대규모 언어 모델 (LLM) | 파라미터 수가 억에서 조 단위로, 추론·프로그래밍 등 능력 창발 |
| 멀티모달 | 하나의 모델이 텍스트, 이미지, 오디오, 비디오 처리 |
| 효율적 미세 조정 | LoRA, QLoRA 등 기술로 일반 개발자도 대규모 모델 미세 조정 가능 |
| AI 에이전트 | 대규모 모델이 도구를 사용하고 작업을 계획하며 복잡한 목표를 자율적으로 완수 |
| 소형 모델 증류 | 대규모 모델의 지식으로 소형 모델을 학습시켜 엣지 디바이스에 배포 |
개발자를 위한 시사점
신경망을 처음부터 학습시킬 필요는 없습니다. 현대 AI 개발은 API 호출(OpenAI, Claude API 등)이나 사전 학습 모델 미세 조정(Hugging Face 등)이 더 일반적입니다. 그러나 기본 원리를 이해하면 모델 선택, 프롬프트 설계, 문제 진단을 더 잘할 수 있습니다.
정리
| 핵심 개념 | 한 줄 요약 |
|---|---|
| 뉴런 | 가중 합 + 활성화 함수, 네트워크의 최소 계산 단위 |
| 순전파 | 데이터가 입력층에서 출력층으로 레이어를 따라 흐르며 예측 생성 |
| 역전파 | 손실에서 출발하여 레이어별로 기울기를 계산하고 가중치 업데이트 |
| CNN | 합성곱 커널로 지역적 특징 추출, 이미지 처리의 첫 번째 선택 |
| RNN/LSTM | 순환 연결로 기억 유지, 시퀀스 데이터 처리 |
| Transformer | 셀프 어텐션으로 병렬 처리, 대규모 모델의 기본 아키텍처 |
| 과적합 | 모델이 "답을 암기", 정규화·Dropout 등으로 방지 |
| 전이 학습 | 거인의 어깨 위에 서서, 사전 학습 모델을 미세 조정하여 새로운 문제 해결 |
추가 자료
- 3Blue1Brown - 신경망 시리즈 영상 — 가장 직관적인 시각화 설명
- Stanford CS231n — 고전적인 합성곱 신경망 강좌
- The Illustrated Transformer — Transformer 아키텍처 그림 설명
- Neural Networks and Deep Learning — 무료 온라인 교재
- Hugging Face 강좌 — Transformer와 대규모 모델 실습