신경망과 Transformer 기본 원리
퍼셉트론·다층신경망·활성화·손실·역전파의 개념과 CNN·RNN·Attention·Transformer 구조를 학습한다.
1. 인공뉴런
인공뉴런은 입력의 가중합에 활성화함수를 적용한다.
x1 ─w1─┐
x2 ─w2─┼─► z = Σ(wixi) + b ─► activation(z) ─► output
x3 ─w3─┘
- 입력 x
- 가중치 w
- 편향 b
- 활성화함수
- 출력
가중치와 편향은 학습으로 조정된다.
2. 퍼셉트론과 다층신경망
단층 퍼셉트론은 선형 결정경계를 학습한다. XOR처럼 선형으로 분리되지 않는 문제는 은닉층과 비선형 활성화가 필요하다.
입력층 은닉층 출력층
x1 ○ ─┐ ○ h1 ─┐
├──► ├──► ○ y
x2 ○ ─┘ ○ h2 ─┘
층이 깊어질수록 복잡한 표현을 학습할 수 있지만 데이터·연산·안정화·해석 비용도 증가한다.
3. 활성화함수
| 함수 | 특징 |
|---|---|
| Sigmoid | 0~1, 확률 출력에 사용 가능, 깊은 층에서 기울기 감소 가능 |
| Tanh | -1~1, 중심이 0 |
| ReLU | max(0,z), 단순하고 널리 사용 |
| Softmax | 여러 클래스 점수를 확률합 1로 변환 |
ReLU
y
▲ /
│ /
│_____/
└────────► z
출력층 활성화는 문제 유형과 손실함수에 맞게 선택한다.
4. 손실함수
손실함수는 예측과 정답의 차이를 수치화한다.
- 회귀: MSE·MAE
- 이진 분류: Binary Cross Entropy
- 다중 분류: Cross Entropy
예측 → 손실 계산 → 파라미터 수정 → 더 나은 예측
정확도처럼 보고용 지표와 학습에 사용하는 미분 가능한 손실함수는 다를 수 있다.
5. 경사하강법
손실을 줄이는 방향으로 파라미터를 조금씩 이동한다.
w_new = w_old - learning_rate × gradient
손실
▲ • 시작
│ /
│ •
│ •
│• 최솟값 부근
└──────────► 파라미터
학습률이 너무 크면 발산·진동할 수 있고 너무 작으면 학습이 느리다. SGD, Momentum, Adam 같은 최적화 방법이 있다.
6. 역전파
순전파로 예측과 손실을 계산한 뒤, 연쇄법칙을 이용해 출력에서 입력 방향으로 각 파라미터의 기울기를 전달한다.
순전파:
입력 → 층1 → 층2 → 출력 → 손실
역전파:
손실 기울기 ← 층2 ← 층1
↓
가중치 업데이트
역전파는 학습 알고리즘이고 추론 때마다 수행하는 과정은 아니다.
7. 배치·에포크
- 배치: 한 번의 파라미터 업데이트에 사용하는 샘플 묶음
- 에포크: 전체 학습 데이터를 한 번 사용
- 이터레이션: 배치 한 번의 업데이트
- 학습률: 한 번의 이동 크기
데이터 1,000건, 배치 100
1에포크 = 10이터레이션
8. 과적합 완화
- Dropout
- 가중치 정규화
- Batch Normalization
- 데이터 증강
- 조기종료
- 모델 축소
- 더 많은 대표 데이터
Batch Normalization과 Dropout의 구체 동작은 학습·추론 모드에서 다를 수 있다.
9. CNN과 RNN 개요
CNN
이미지·격자 데이터의 국소 패턴을 합성곱 필터로 추출한다.
이미지 → Convolution → 활성화 → Pooling → 분류
같은 필터를 위치마다 공유해 이동에 강한 특징을 학습한다.
RNN
순서 데이터에서 이전 상태를 다음 시점에 전달한다.
x1 → h1 → h2 → h3
↑ ↑ ↑
x1 x2 x3
긴 의존관계에서 기울기 문제가 발생할 수 있어 LSTM·GRU 같은 구조가 개발되었다.
10. Attention
Attention은 현재 처리에서 입력의 어느 부분을 얼마나 참고할지 가중합으로 계산한다.
Query: 지금 찾는 정보
Key : 각 입력의 검색 표지
Value: 실제로 합산할 정보
Query와 Key 유사도
↓
Attention Weight
↓
Value의 가중합
대표적으로는 다음과 같이 표현한다.
Attention(Q,K,V)
= softmax(QKᵀ / √d) V
일반 필기에서는 Query·Key·Value의 역할과 가중합 흐름을 이해하면 충분하다.
11. Self-Attention
같은 문장이나 시퀀스 안의 토큰들이 서로를 참고한다.
"은행은 대출을 승인했다"
'승인했다' 토큰
├─ 은행
├─ 대출
└─ 조사·어미
각 토큰의 관련도를 계산해 문맥 표현 생성
순환구조 없이 토큰 사이의 전역 관계를 병렬적으로 계산할 수 있지만 길이가 길어질수록 기본 attention 계산량과 메모리 사용이 커진다.
12. Transformer 구조
토큰
↓
임베딩 + 위치정보
↓
┌─────────────────────┐
│ Multi-Head Attention│
│ Add & Norm │
│ Feed Forward │
│ Add & Norm │
└─────────────────────┘ × 여러 층
↓
문맥 표현·다음 토큰 확률·분류 결과
- Multi-Head Attention: 서로 다른 관계를 여러 관점에서 학습
- Feed Forward: 각 토큰 표현을 비선형 변환
- Residual Connection: 깊은 학습 안정화
- Layer Normalization: 값의 규모 안정화
- Positional Information: 순서 정보 제공
13. Encoder와 Decoder
- Encoder 중심: 입력을 문맥 표현으로 변환, 분류·추출 등에 적합
- Decoder 중심: 앞 토큰을 바탕으로 다음 토큰 생성
- Encoder-Decoder: 입력 시퀀스를 받아 다른 시퀀스 생성
생성형 언어모델은 decoder 계열 구조를 널리 사용하지만 모델마다 구조는 다를 수 있다.
14. Causal Mask
다음 토큰 예측에서는 현재 위치가 미래 정답 토큰을 보지 못하도록 가린다.
참고 가능 토큰
t1 t1
t2 t1 t2
t3 t1 t2 t3
t4 t1 t2 t3 t4
학습 중 전체 문장이 메모리에 있어도 causal mask로 미래 정보 접근을 차단한다.
15. 순전파·손실·가중치 갱신 계산
뉴런 출력은 z=w·x+b, a=f(z)로 계산한다. x=(2,3), w=(0.5,-1), b=1이면 z=1-3+1=-1, ReLU 출력은 0이다.
경사하강법 갱신은 다음과 같다.
w_new = w_old - learning_rate × gradient
가중치 2, 학습률 0.1, 기울기 3이면 새 가중치는 1.7이다. 분류의 cross entropy는 정답 클래스 확률이 커질수록 작아진다. 정답 확률이 0.8이면 손실은 -ln(0.8)≈0.223이다.
16. CNN·RNN의 형태 계산
1차원 크기에도 같은 원리를 적용할 수 있으며, 2차원 합성곱 출력 한 변의 크기는 보통 다음과 같다.
floor((입력 + 2×padding - kernel)/stride) + 1
입력 32, 커널 3, 패딩 1, stride 1이면 출력은 32이다. 합성곱 파라미터 수는 공간 크기와 무관하게 kernel_h×kernel_w×입력채널×출력채널 + 출력채널 bias이다.
RNN은 순서를 처리하지만 긴 시퀀스에서 기울기 소실·폭주가 발생할 수 있다. LSTM·GRU의 gate와 gradient clipping이 완화책이 될 수 있으나 모든 장기 의존성을 보장하지는 않는다.
17. Scaled Dot-Product Attention
Attention(Q,K,V) = softmax(QKᵀ / sqrt(dk))V
QKᵀ는 query와 key의 유사도를 만들고, sqrt(dk)로 나누어 차원이 커질 때 softmax가 지나치게 포화되는 것을 완화한다. mask를 적용한 위치는 softmax 전에 매우 작은 값으로 만들어 가중치가 0에 가깝게 된다.
Multi-head attention은 서로 다른 투영 공간에서 여러 관계를 학습한 뒤 head 결과를 이어 붙이고 다시 투영한다. Residual connection과 normalization은 깊은 네트워크 학습을 안정화한다.
18. Transformer 계산 복잡도와 추론
표준 self-attention의 점수행렬은 토큰 수 n에 대해 n×n이므로 시간·메모리의 핵심 항이 O(n²)이다. 토큰 수를 2배로 늘리면 이 부분은 약 4배가 된다.
자기회귀 생성에서는 이전 토큰의 key·value를 KV cache에 저장해 매 단계 전체 prefix를 다시 계산하는 비용을 줄인다. 다만 cache 메모리는 시퀀스 길이·층 수·head 차원에 따라 증가한다.
19. Causal LM의 학습 정렬
입력: [나는, 학교에, 간다]
정답: [학교에, 간다, <EOS>]
각 위치는 다음 토큰을 예측하고 causal mask로 미래 토큰을 보지 못한다. Softmax 계산에서는 모든 logit에서 최대값을 빼도 확률이 같으므로 수치 안정성을 위해 softmax(z-max(z))를 사용한다.
확인 문제
- x=(2,3), w=(.5,-1), b=1의 ReLU 출력은?
- 가중치 2, 학습률 .1, 기울기 3의 새 가중치는?
- self-attention에서 점수를 sqrt(dk)로 나누는 이유는?
- 토큰 수가 2배면 표준 attention 점수행렬 비용은 대략?
- 자기회귀 추론에서 이전 K·V를 저장하는 것은?