Day5

개굴이·약 13시간 전

멋쟁이 사자처럼 NLP

목록 보기
10/13

[TIL] 모델 학습과 Loss·Metric, GD·SGD 그리고 PPL

📅 2026.10.07

오늘은 모델이 예측을 만들고 손실을 계산한 뒤, 기울기를 이용해 파라미터를 수정하는 과정을 배웠다. 학습에 사용하는 Loss와 실제 성능을 평가하는 Metric은 역할이 다르다. Task에 맞는 출력과 평가 기준을 정하고, 경사하강법으로 학습 목표를 최적화하되 별도 데이터에서 실제 성능을 확인해야 한다.


1. 모델 학습 프로세스

배치 호출 → 모델 예측 → 손실 계산 → 기울기 계산 → 가중치 업데이트

단계역할예시
배치 호출데이터를 일정 개수씩 가져온다이미지 32장
모델 예측 — 순전파현재 파라미터로 출력을 계산한다고양이 확률 0.7
손실 계산예측과 학습 목표의 차이를 계산한다정답 고양이에 대한 교차 엔트로피
기울기 계산 — 역전파각 파라미터에 대한 손실의 미분값을 계산한다가중치를 바꾸면 손실이 얼마나 변하는가
가중치 업데이트기울기와 학습률로 파라미터를 수정한다Optimizer로 갱신
성능 평가별도 데이터에서 실제 성능을 확인한다검증 Accuracy 측정

슬라이드의 ‘모델 추론’은 학습 중 예측을 계산하는 순전파로 이해한다. 학습 후 사용하는 추론에서는 일반적으로 가중치를 업데이트하지 않는다.

성능 평가는 반드시 매 배치마다 하는 것이 아니라 일정 Step마다 또는 Epoch가 끝난 뒤 수행할 수 있다. 검증 데이터로 설정을 조정하고, 최종 테스트 데이터로 최종 성능을 확인한다.

Batch, Iteration, Epoch

  • Batch: 한 번에 처리하는 데이터 묶음
  • Iteration 또는 Step: 일반적인 학습에서 한 번의 파라미터 업데이트
  • Epoch: 전체 학습 데이터를 한 바퀴 처리

데이터 1,000개, 배치 크기 100이라면 10번 업데이트가 1 Epoch다. 마지막 배치가 불완전한 경우에는 포함 여부에 따라 Step 수가 달라진다.


2. CNN과 RNN의 예측 과정

CNN — Convolutional Neural Network

이미지의 공간적 패턴을 추출하는 신경망이다.

이미지 → 합성곱·ReLU → 풀링 → 특징 표현 → 출력 점수

요소역할
Convolution — 합성곱필터로 지역적인 패턴을 추출
ReLU비선형 변환을 적용
Max Pooling공간 크기를 줄이며 강한 반응을 남김
Fully Connected — 완전연결층특징을 조합해 최종 점수를 생성

앞부분은 선·경계 등의 특징을, 뒷부분은 이를 조합한 복잡한 패턴을 학습할 수 있다. 강의 그림에서는 뒤로 갈수록 공간 크기는 줄고 채널 수는 증가한다.

56 × 56 × 256은 높이 56, 너비 56, 특징 채널 256개를 뜻한다. 마지막 1 × 1 × 1000은 1,000개 클래스의 출력 점수로 해석한다. 그림의 224 × 224 × 64는 원본 RGB 이미지가 아니라 첫 합성곱 블록의 특징맵이다.

RNN — Recurrent Neural Network

순서가 있는 입력을 차례로 처리하고, 은닉 상태로 이전 정보를 전달한다.

ht = tanh(W_x x_t + W_h h(t-1) + b)

  • x_t: 현재 입력 벡터
  • h_(t-1): 이전 은닉 상태
  • h_t: 현재 입력과 이전 정보를 반영한 새 은닉 상태
  • W_x, W_h, b: 모든 시점에서 공유하는 파라미터

“나는 → 오늘 → 학교에 → 갔다”를 처리할 때, 현재 단어와 이전 상태를 함께 이용한다. 은닉 상태는 과거 정보를 압축한 벡터이며, 이전 내용을 완벽하게 보관하는 것은 아니다.

그림의 여러 A 상자는 서로 다른 모델이 아니라 같은 셀을 시간 순서로 펼친 것이다. 은닉 상태를 출력층에 넣으면 클래스나 다음 토큰의 점수를 계산할 수 있다.


3. Representation과 Decision, 출력층의 역할

입력 → 특징 표현 h → 출력 점수 z → 최종 예측

  • Representation: CNN·RNN 등이 입력을 유용한 벡터로 표현하는 역할
  • Decision: 그 표현으로 클래스·수치·토큰 등을 판단하는 역할

분류·회귀처럼 많은 Task는 추출한 벡터를 원하는 개수의 값으로 바꾸는 출력부를 사용한다.

z = Wh + b

Task필요한 출력
집값 회귀실수 1개
10종 이미지 분류클래스 점수 10개
다음 토큰 예측어휘 크기만큼의 점수

왜 MLP 또는 완전연결층을 사용하는가?

  1. 입력 표현과 최종 판단의 역할을 나눌 수 있다.
  2. 벡터를 Task에 필요한 출력 차원으로 변환하기 쉽다.
  3. 앞부분도 함께 학습되어 마지막 층이 선형 경계로 구분하기 좋은 표현을 만들 수 있다.
  4. 단순한 출력부는 파라미터와 최적화 부담을 줄일 수 있다.
  5. 출력 점수를 확률 변환과 손실함수에 연결하기 쉽다.

다만 모든 출력부가 깊은 MLP일 필요는 없다. 은닉층과 비선형성을 가진 MLP 대신 선형층 하나만 사용하기도 한다. 표현이 항상 완벽하게 선형 분리된다는 보장도 없다.

확률 해석은 MLP 자체가 아니라 Softmax·Sigmoid가 부여한다. 다중 클래스 분류에서는 Softmax, 이진·다중 라벨 분류에서는 Sigmoid를 사용할 수 있다. 회귀에서는 수치를 직접 출력하기도 한다.

일반적인 분류 출력과 다른 사례

사례출력과 학습 목적출력부의 예시
Metric Learning — Triplet같은 대상은 가깝고 다른 대상은 먼 임베딩 학습선형층·MLP
Diffusion — Noise Prediction노이즈가 섞인 입력에서 노이즈 예측합성곱·선형 투영 등
RL — Policy + Value행동 분포와 기대 보상 예측별도 정책·가치 Head, 흔히 MLP
Multi-modal Alignment이미지·텍스트 등을 공통 표현 공간으로 정렬모달리티별 선형층·MLP

이 사례들을 ‘MLP가 아닌 경우’라고 단정하면 부정확하다. 핵심 차이는 MLP 사용 여부보다 출력의 의미와 학습 목표다.


4. Loss Function과 모델 학습의 수학적 목표

Loss Function — 손실함수

예측이 정답 또는 학습 목표에서 얼마나 벗어났는지 숫자로 계산하는 함수다. 계산 결과가 Loss, 즉 손실값이다.

정답이 5이고 제곱 오차를 사용한다면:

  • 예측 3: (3 - 5)² = 4
  • 예측 4: (4 - 5)² = 1

이 경우 정답에 가까워질수록 손실이 작아진다. 손실함수는 모델에게 어떤 결과를 좋은 것으로 볼지 알려주는 학습 기준이다.

모델 학습의 목표

θ∗=arg⁡min⁡θ  L(θ)\theta^* = \underset{\theta}{\arg\min}\;L(\theta)
기호의미
θ가중치·편향 등 학습할 파라미터 전체
L(θ)해당 파라미터에서의 손실
arg min_θ손실을 가장 작게 만드는 파라미터를 찾음
θ*손실을 최소로 만드는 파라미터

L(θ) = (θ - 3)²이면:

  • min_θ L(θ) = 0: 최소 손실값
  • arg min_θ L(θ) = 3: 그 손실을 만드는 파라미터 값

실제 딥러닝 학습은 전역 최솟값을 반드시 찾는 것이 아니라, 제한된 자원 안에서 좋은 파라미터를 찾는 과정이다. 학습 손실 최소화와 새 데이터에서의 좋은 성능도 구분한다.


5. Surrogate Loss — 대리 손실함수

실제 목표를 직접 최적화하기 어려워, 학습 가능한 대리 목표를 사용한다.

정확도·순위·문장 품질 같은 기준은 이산적이거나 일반적인 역전파에 적합한 기울기를 제공하지 않는다.

실제 목표대표 대리 손실학습 방향
분류 Accuracy 최대화Cross-entropy정답 클래스의 확률 높이기
정확하고 자연스러운 번역토큰별 Cross-entropy정답 다음 토큰의 확률 높이기
검색 Ranking 품질 향상Pairwise·Contrastive Loss관련 항목에 더 높은 점수 부여

Accuracy와 Cross-entropy의 차이

정답이 고양이인 두 클래스 분류에서 높은 확률의 클래스를 선택한다고 가정한다.

고양이 확률최종 예측정답 여부Cross-entropy — 자연로그
0.40강아지오답약 0.92
0.49강아지오답약 0.71
0.51고양이정답약 0.67
0.99고양이정답약 0.01

Accuracy는 최종 예측이 맞았는지만 센다. 고양이 확률이 0.40에서 0.49로 개선되어도 여전히 오답이므로 Accuracy는 그대로다. Cross-entropy는 이 변화에도 학습 신호를 준다.

L=−log⁡P(정답)L=-\log P(\text{정답})

고양이 확률 0.49가 Accuracy 49%라는 뜻은 아니다. 확률은 개별 예측의 점수이고, Accuracy는 전체 예측에서 정답을 맞힌 비율이다.

대리 손실의 한계

  • 이미 정답인 예측의 확신만 높아져도 Cross-entropy는 감소하지만 Accuracy는 그대로일 수 있다.
  • 다음 토큰 예측이 좋아도 문장 전체가 반복적이거나 모순될 수 있다.
  • 일반적인 Teacher Forcing 학습은 정답 앞부분을 사용하지만, 생성은 모델이 만든 앞부분을 사용하므로 오류가 누적될 수 있다.
  • 다음 토큰 예측이 문맥을 무시하는 것은 아니다. 토큰별 학습 목표가 전체 문장 품질을 직접 평가하지 않는다는 의미다.

Loss가 줄었다고 실제 목표가 반드시 개선된 것은 아니다. 별도 Metric으로 확인한다.


6. Loss, Metric과 Benchmark

구분핵심 역할예시
Loss파라미터를 어떻게 개선할지 학습 신호 제공Cross-entropy, MSE
Metric실제 목적에 맞는 성능 측정Accuracy, F1, MRR
Benchmark문제·데이터·지표·평가 절차를 묶은 표준 평가 체계같은 문제와 조건으로 여러 모델 비교

Loss의 핵심 요건: 기울기 기반 학습에 적합할 것

모든 지점에서 완벽하게 미분 가능해야만 하는 것은 아니다. 일부 지점에서 미분 불가능해도 학습에 사용할 수 있다. 중요한 것은 파라미터를 개선할 수 있는 유용한 기울기 신호다.

Metric의 핵심 요건: 실제 성능을 잘 반영할 것

평가에는 미분 가능성이 필수는 아니다. 목적에 맞는 지표를 선택해야 한다. 양성이 1%인 데이터에서 모두 음성으로 예측하면 Accuracy는 99%지만 양성 Recall은 0이다.

Loss도 평가 시 측정할 수 있고, MSE처럼 Loss와 Metric으로 모두 쓰이는 함수도 있다. 사용 목적에 따라 역할을 구분한다.

Benchmark의 역할

  1. 문제 정의: 어떤 능력과 과제를 평가할지 정한다.
  2. 표준화: 데이터·채점 기준·프롬프트·도구·생성 횟수 등의 조건을 정한다.
  3. 모델 비교: 같은 조건에서 성능을 비교한다.
  4. 간접 측정: 일부 문제의 결과로 추론·언어 이해 등의 능력을 추정한다.

특정 Benchmark에서 높은 점수를 얻었다고 모든 Task에서 우수한 것은 아니다. 평가 데이터 오염이나 특정 문제 유형에 대한 적응도 점수 해석에 영향을 줄 수 있다.


7. Classification Metric

스팸을 양성, 정상 메일을 음성으로 두는 예시다.

구분의미
TP — True Positive실제 스팸을 스팸으로 예측
FP — False Positive정상 메일을 스팸으로 잘못 예측
FN — False Negative스팸을 정상으로 잘못 예측
TN — True Negative정상 메일을 정상으로 예측
지표수식핵심 질문
Accuracy(TP + TN) / (TP + FP + FN + TN)전체에서 얼마나 맞혔나?
PrecisionTP / (TP + FP)양성이라고 예측한 것 중 진짜 양성은?
RecallTP / (TP + FN)실제 양성 중 얼마나 찾아냈나?
F12PR / (P + R)Precision과 Recall을 함께 보면 어떤가?
  • 100개 중 80개를 맞히면 Accuracy는 80%다.
  • 스팸이라고 예측한 10개 중 실제 스팸이 8개면 Precision은 80%다.
  • 실제 스팸 20개 중 16개를 찾으면 Recall은 80%다.
  • Precision 100%, Recall 50%이면 F1은 약 66.7%다.

Precision은 오탐, Recall은 누락을 중요하게 볼 때 유용하다. F1은 조화평균이므로 둘 중 하나가 낮으면 높은 점수를 받기 어렵고, TN은 직접 반영하지 않는다. 다중 클래스에서는 클래스별 점수를 Macro·Micro 등 어떤 방식으로 평균했는지도 확인한다.

AUROC — Area Under the ROC Curve

임계값을 바꾸며 다음 두 비율을 계산해 ROC 곡선을 만든다.

  • 세로축 TPR = TP / (TP + FN) = Recall
  • 가로축 FPR = FP / (FP + TN)

AUROC는 ROC 곡선 아래의 면적이다. 양성 샘플에 음성 샘플보다 높은 점수를 주는 구분 능력을 평가한다.

  • 1.0: 완벽한 순서로 구분
  • 0.5: 무작위 수준
  • 높을수록 양성과 음성의 점수 순서가 좋음

Accuracy·Precision·Recall·F1은 특정 임계값에서의 판단을 평가한다. AUROC는 여러 임계값에 걸쳐 평가하지만, 실제 사용할 임계값의 Precision이나 Recall을 보장하지는 않는다.


8. Regression Metric

회귀는 집값·온도처럼 숫자를 예측한다. y_i는 실제값, ŷ_i는 예측값, n은 샘플 수다.

지표수식해석
MAE(1/n) Σ_i |y_i - ŷ_i|절대 오차의 평균
MSE(1/n) Σ_i (y_i - ŷ_i)²제곱 오차의 평균, 큰 오차에 강한 벌점
RMSE√MSE큰 오차를 강조하면서 원래 단위로 표현
R²1 - Σ_i(y_i - ŷ_i)² / Σ_i(y_i - ȳ)²실제값 평균만 예측하는 기준 대비 성능

실제값 [10, 20, 30], 예측값 [12, 18, 34]의 예시:

  • MAE = (2 + 2 + 4) / 3 ≈ 2.67
  • MSE = (4 + 4 + 16) / 3 = 8
  • RMSE = √8 ≈ 2.83
  • 실제값 평균 ȳ = 20, R² = 1 - 24 / 200 = 0.88

온도가 단위라면 MAE·RMSE는 °C, MSE는 °C²다. MAE·MSE·RMSE는 낮을수록 좋고, R²는 높을수록 좋다.

R²의 의미

  • R² = 1: 완벽한 예측
  • R² = 0: 평가 데이터의 평균값만 예측하는 것과 같은 제곱 오차
  • R² < 0: 그 평균값 기준보다 나쁜 예측

R² = 0.88은 Accuracy 88%가 아니다. 이 정의에서는 평균값 기준보다 제곱 오차가 88% 줄었다는 의미다. 실제값이 모두 같으면 분모가 0이 되어 일반적인 수식으로 해석할 수 없다.


9. Ranking / Retrieval Metric

검색 결과가 관련 항목을 얼마나 찾고 얼마나 위에 배치했는지 평가한다.

지표핵심 질문특징
MRR첫 정답이 얼마나 위에 있나?첫 관련 결과의 순위를 중요하게 봄
NDCG@K관련성이 높은 결과를 상위에 배치했나?관련성 등급과 순위 할인 반영
Recall@K전체 정답 중 상위 K개에서 얼마나 찾았나?상위 K개 내부의 순서는 직접 반영하지 않음

MRR — Mean Reciprocal Rank

MRR = (1/Q) Σ_q 1/r_q

Q는 질의 수, r_q는 첫 관련 결과의 순위다. 첫 정답이 2위면 해당 질의 점수는 0.5, 10위면 0.1이다. 평가 범위에 정답이 없으면 0으로 처리한다.

NDCG — Normalized Discounted Cumulative Gain

흔히 사용하는 정의:

DCG@K = Σ_(i=1)^K (2^(rel_i) - 1) / log₂(i + 1)

NDCG@K = DCG@K / IDCG@K

rel_i는 관련성 등급이고, IDCG는 이상적인 순서의 DCG다. 관련성이 높고 상위에 있을수록 큰 점수를 얻는다. 보통 0~1이며 1은 이상적인 순위다. 관련 항목이 전혀 없어 IDCG가 0인 경우의 처리는 평가 규약을 확인한다.

Recall@K

Recall@K = 상위 K개에서 찾은 관련 항목 수 / 전체 관련 항목 수

전체 관련 문서가 4개이고 상위 5개에서 3개를 찾으면 Recall@5는 3/4 = 0.75다. 같은 경우 Precision@5는 3/5 = 0.6이다.

정답이 하나인 질의에서는 Recall@K가 정답의 상위 K개 포함 여부에 따라 1 또는 0이 된다. 여러 질의의 결과를 평균해 평가한다.


10. 이미지 Task Metric — IoU와 mAP

IoU — Intersection over Union

IoU = 예측 영역과 정답 영역의 교집합 / 합집합

겹친 면적이 60, 합친 영역의 면적이 100이면 IoU는 0.6이다. 완전히 일치하면 1, 겹치지 않으면 0이다.

  • 객체 탐지: 바운딩 박스 비교
  • 이미지 분할: 픽셀 영역 비교

mAP — mean Average Precision

객체 탐지는 종류와 위치를 맞히면서 오탐과 누락도 줄여야 한다.

  1. 클래스가 맞고 IoU 기준을 만족하는 예측을 정답 박스에 일대일로 대응시킨다.
  2. 신뢰도 기준을 바꾸며 Precision–Recall 관계를 계산한다.
  3. 클래스별 AP로 요약하고, 클래스 전체에서 평균해 mAP를 계산한다.

고양이 AP 0.8, 강아지 AP 0.6이면 mAP는 0.7이다. 같은 객체의 중복 탐지는 추가 정답으로 세지 않고, 대응하지 못한 예측은 FP가 된다.

표기평가 기준
mAP@0.5IoU 0.5 이상을 위치가 맞은 탐지로 인정
mAP@0.75IoU 0.75 이상으로 더 엄격하게 평가
COCO mAP@[0.5:0.95]0.5~0.95의 IoU 기준을 0.05 간격으로 평가해 평균

AP 계산에는 평가 규약별 차이가 있으므로 IoU 기준과 데이터셋 규약을 함께 확인한다. IoU는 영역 일치도이고, mAP는 탐지 결과 전체의 품질이다.


11. NLG와 LLM의 평가

NLG — Natural Language Generation

번역·요약은 같은 의미를 여러 표현으로 생성할 수 있다. Exact Match만으로 평가하면 적절한 다른 표현을 오답으로 처리할 수 있다.

지표주요 사용처평가 대상
BLEU번역정답과 생성 문장의 n-gram 겹침, Precision 중심 및 짧은 출력 벌점
ROUGE-1요약단어 단위 겹침
ROUGE-2요약연속된 두 단어의 겹침
ROUGE-L요약가장 긴 공통 부분 수열

ROUGE는 전통적으로 Recall을 중시하지만 Precision과 F1도 보고한다. n-gram은 연속된 n개 토큰 묶음이며, 실제 결과는 토큰화 방식에도 영향을 받는다.

BLEU·ROUGE는 의미 유사성을 직접 측정하지 않는다. 의미가 같아도 다른 단어를 쓰면 점수가 낮을 수 있고, 단어가 많이 겹쳐도 부정 표현 때문에 의미가 반대일 수 있다.

LLM 평가 방법

방법방식한계
Human Evaluation사람이 점수 부여 또는 답변 쌍 비교비용·시간, 평가자 간 차이
LLM-as-a-judge평가용 LLM에 기준과 답변을 주고 판단 요청사실 오류, 길이·제시 순서 등의 편향
Preference Modeling선호 데이터를 학습해 답변의 선호 점수 예측선호가 사실적 정확성과 같지 않음
Embedding-based Metrics벡터 표현의 유사성 평가숫자·이름·부정 표현의 오류를 놓칠 수 있음

LLM-as-a-judge는 기존 LLM에 평가를 요청하는 방식이고, Preference Modeling은 선호 데이터로 평가 모델을 학습하는 방식이다. 선호 모델을 보상 모델로 활용해 추가 학습에 사용할 수도 있다.

문장 임베딩의 코사인 유사도나 토큰 표현을 비교하는 BERTScore는 표현 겹침을 넘어 유사성을 평가하는 방법이다. 다만 의미 유사도가 사실성을 보장하지는 않는다.

정확성·유용성·자연스러움·지시 준수 등을 목적에 맞게 평가하며, 한 가지 지표만으로 전체 품질을 판단하지 않는다.


12. Gradient Descent와 실제 미분

GD — Gradient Descent, 경사하강법

현재 위치에서 손실이 줄어드는 방향으로 파라미터를 조금씩 수정한다.

θt+1=θt−η∇θL(θt)\theta_{t+1}=\theta_t-\eta\nabla_\theta L(\theta_t)
  • θ_t: 현재 파라미터
  • θ_(t+1): 업데이트한 파라미터
  • t: 업데이트 단계 번호
  • η: 학습률 — Learning Rate
  • ∇_θ L: 각 파라미터에 대한 손실의 기울기를 모은 벡터

기울기는 손실이 가장 빠르게 증가하는 방향을 가리키므로 반대 방향으로 이동한다.

파라미터가 하나라면 기울기가 양수일 때 값을 줄이고, 음수일 때 값을 늘린다.

간단한 예시

L(w) = (w - 3)², 미분하면 dL/dw = 2(w - 3)이다.

현재 w = 0, 학습률 0.1이면:

w_new = 0 - 0.1 × (-6) = 0.6

최솟값을 만드는 w = 3에 가까워지고, 손실은 9에서 5.76으로 감소한다.

학습률이 너무 작으면 느리고, 너무 크면 좋은 지점을 지나쳐 진동하거나 발산할 수 있다. 기울기의 반대 방향이라고 해서 임의의 큰 이동에서도 손실 감소가 보장되는 것은 아니다.

미분을 생략하는 것이 아니다.

  • Autograd·역전파: 연쇄법칙을 이용해 기울기를 계산
  • Gradient Descent·Optimizer: 계산한 기울기로 파라미터를 수정

사람이 미분식을 직접 작성하지 않을 뿐, 자동 미분으로 실제 미분값을 계산한다. SGD도 미분하며, 일부 데이터로 전체 평균 기울기를 추정한다.


13. SGD와 Mini-batch, 손실 지형

SGD — Stochastic Gradient Descent, 확률적 경사하강법

Stochastic은 무작위 데이터 선택에서 오는 확률성을 뜻한다.

방식한 번의 업데이트에 쓰는 데이터특징
Full-batch GD전체 N개전체 학습 손실의 정확한 기울기
SGD — 좁은 의미무작위 1개업데이트가 가볍지만 기울기 변동이 큼
Mini-batch GD일부 B개계산 효율과 안정성의 절충

실무와 해당 강의에서는 미니배치 방식도 SGD라고 부른다.

미니배치 업데이트

θt+1=θt−η1B∑i∈B∇θLi(θt)\theta_{t+1}=\theta_t-\eta\frac{1}{B}\sum_{i\in\mathcal{B}}\nabla_\theta L_i(\theta_t)

균등 무작위 샘플링에서는 배치 기울기의 평균이 전체 기울기와 일치한다. 하지만 개별 업데이트의 방향은 전체 기울기와 다를 수 있다. 실무에서는 매 Epoch 데이터를 섞고 배치로 나누는 방식도 흔히 사용한다.

GD 대신 SGD를 사용하는 이유

  1. 계산 효율: 전체 데이터를 다 보기 전에 업데이트할 수 있고, 업데이트당 계산 비용이 작다.
  2. 메모리 절약: 미니배치 크기만큼의 입력·중간 활성값을 처리하므로 신경망 학습에 필요한 메모리 부담을 줄일 수 있다.
  3. 탐색 효과: 배치별 기울기의 흔들림이 얕은 지역 최솟값이나 안장점 주변에서 벗어나는 데 도움을 줄 수 있다.

전체 데이터 100만 개, 배치 100개라면 GD는 전체를 보고 한 번 업데이트하지만 미니배치 SGD는 100개마다 업데이트한다. 한 Epoch에서 처리하는 데이터 양은 같으므로 총계산량이 무조건 적다는 뜻은 아니다.

Full-batch GD도 데이터를 나눠 읽으며 기울기를 누적할 수 있다. 전체 데이터를 반드시 한 번에 메모리에 올려야 하는 것은 아니다. 미니배치로 줄어드는 메모리와 모델 파라미터·Optimizer 상태의 메모리도 구분한다.

배치 크기와 학습률

  • 작은 배치: 메모리 부담이 작지만 기울기가 더 흔들림
  • 큰 배치: 기울기가 안정적이지만 업데이트당 계산 증가
  • 작은 학습률: 이동이 느림
  • 큰 학습률: 진동·발산 또는 좋은 해에 도달하지 못할 가능성

배치 크기와 학습률은 함께 조정한다. 같은 Epoch 수에서는 배치가 커질수록 업데이트 횟수가 줄어든다.

손실 지형의 어려움

개념의미와 문제
Local Minimum — 지역 최솟값주변보다 낮지만 전체 최솟값은 아닐 수 있음
Saddle Point — 안장점어떤 방향에서는 증가하고 다른 방향에서는 감소
Plateau — 평탄한 구간손실이 높아도 기울기가 작아 진행이 느림
Ravine — 좁고 긴 골짜기방향별 경사가 달라 하나의 학습률로 이동하기 어려움

SGD의 잡음은 일부 정체 구간을 벗어나는 데 도움이 될 수 있지만, 항상 탈출하거나 전역 최솟값을 찾는 것은 아니다. 최솟값 주변에서 진동할 수도 있다.

특징의 스케일 차이는 Ravine을 만들 수 있고, 표준화로 완화할 수 있다. 특징 간 강한 상관관계 때문에 생기는 Ravine은 각 특징의 표준화만으로 해결되지 않을 수 있다.

토론토 강의 페이지의 그래프 읽기

  • 가로·세로축: 입력 데이터가 아니라 가중치 w₁, w₂
  • 등고선: 같은 손실값을 갖는 가중치 위치
  • 파란 등고선: 고정된 전체 데이터의 손실 지형
  • 주황 등고선: 배치에 따라 바뀌는 손실 지형
  • 이동 경로: 업데이트에 따라 파라미터가 움직인 궤적

전체 손실 지형은 같아도 배치별 지형은 바뀌므로 SGD의 경로는 더 흔들린다. 그래프의 특정 매끄러운 GD 경로가 모든 문제에서 보장되는 것은 아니다.


14. PPL — Perplexity

PPL은 언어 모델이 실제 텍스트의 다음 토큰을 얼마나 잘 예측하는지 평가하는 지표다. 낮을수록 좋다.

BLEU·ROUGE가 생성 문장과 기준 문장의 표현을 비교한다면, PPL은 실제 다음 토큰에 모델이 부여한 확률을 평가한다.

무엇을 평가할까?

모델은 앞의 문맥을 보고 어휘 전체에 대한 확률 분포를 출력한다. PPL 계산에는 그중 실제로 이어진 토큰의 확률을 사용한다.

“나는 밥을 먹었다”에서 각 단어가 하나의 토큰이라고 가정해보자.

앞의 문맥실제 다음 토큰확인하는 확률
나는밥을P(밥을 ∣ 나는)
나는 밥을먹었다P(먹었다 ∣ 나는 밥을)

계산 방법

PPL은 평균 토큰 교차 엔트로피에 지수함수를 적용한 값이다.

PPL=exp⁡(−1T∑t=1Tlog⁡P(xt∣x<t))\mathrm{PPL} = \exp\left(-\frac{1}{T}\sum_{t=1}^{T}\log P(x_t\mid x_{<t})\right)
  • TT: 평가하는 토큰 수
  • xtx_t: 실제 다음 토큰
  • x<tx_{<t}: 해당 토큰 앞의 문맥
  • log⁡\log: 자연로그

실제 토큰의 확률이 높아지면 교차 엔트로피가 줄고 PPL도 낮아진다.

모든 평가 위치에서 실제 다음 토큰에 같은 확률을 줬다고 가정하면:

실제 다음 토큰의 확률PPL
0.52
0.110
0.01100

PPL은 직관적으로 다음 토큰을 선택할 때의 유효한 후보 수처럼 이해할 수 있다. 모든 위치에서 후보 10개에 같은 확률을 주고 실제 토큰이 그중 하나라면 PPL은 10이다. 실제 후보 개수를 그대로 세는 지표는 아니다.

Reference가 필요 없다는 의미

별도의 정답 번역문·요약문은 없어도 되지만, 평가할 텍스트는 필요하다.

평가 텍스트 자체의 다음 토큰이 정답 역할을 하므로, 별도의 정답 라벨을 만들 필요가 없는 것이다. 모델의 확률 분포만 보고 실제 토큰 없이 계산할 수 있다는 뜻은 아니다.

한계

  • 낮은 PPL이 생성 답변의 사실성·논리성·유용성을 보장하지 않는다.
  • 평가 데이터, 토큰화 방식과 문맥 길이에 영향을 받으므로 비교 조건을 맞춰야 한다.
  • 토크나이저가 다른 모델의 토큰 단위 PPL을 단순 비교하면 오해할 수 있다.
  • 일반적인 PPL은 자기회귀 언어 모델에 적용한다. BERT 같은 마스킹 언어 모델에는 같은 정의를 그대로 적용하기 어렵다.

PPL은 생성된 답변의 품질 전체보다, 평가 텍스트의 실제 다음 토큰에 얼마나 높은 확률을 부여하는지 평가한다.


15. Colab 실습 환경 메모

Colab Pro+와 무료 이용의 차이

  • Pro+는 월 500 Compute Units — CU를 제공한다.
  • 프리미엄 GPU에 우선 접근하고 고용량 시스템 메모리를 사용할 수 있지만, 자원 배정은 가용성에 영향을 받는다.
  • CU가 충분하고 코드가 실행 중이면 최대 24시간 연속·백그라운드 실행을 지원한다.
  • 무료는 최대 12시간이며 자원 상황과 사용 패턴에 따라 더 짧을 수 있다.
  • Pro+도 무제한·전용 GPU 요금제가 아니다. CU 소진 시 무료 정책과 제한이 적용되며 실행이 종료될 수 있다.

500 CU는 500시간이 아니다. 런타임 구성에 따라 시간당 소모량이 달라지므로 현재 잔액과 소모율을 확인한다. 위 내용은 오늘 확인한 안내 기준이며, 실제 구독 화면의 조건도 확인한다.

Drive 파일을 /content에 복사해 사용

Drive에서 작은 파일을 반복해서 읽으면 I/O가 병목이 될 수 있다. 학습 데이터를 Colab 로컬 디스크에 복사해 사용하고, 파일이 많으면 압축 파일을 복사한 뒤 로컬에서 풀 수 있다.

from google.colab import drive
import shutil

drive.mount("/content/drive")

# 예시 경로: 실제 파일 위치에 맞게 변경
shutil.copy2(
    "/content/drive/MyDrive/data/train.csv",
    "/content/train.csv",
)

DATA_PATH = "/content/train.csv"

/content는 임시 저장 공간이다. 런타임이 삭제·초기화되면 로컬 파일과 실행 상태를 잃을 수 있으므로 중요한 결과와 체크포인트는 Drive 등 영구 저장소에 저장한다. 파일 복사는 Drive 원본을 삭제하지 않는다.

Secrets에서 HF_TOKEN 불러오기

  1. Colab 왼쪽 열쇠 아이콘에서 보안 비밀을 추가한다.
  2. 이름을 HF_TOKEN, 값을 Hugging Face에서 발급받은 토큰으로 설정한다.
  3. 해당 노트북의 액세스를 허용한다.
  4. 코드에서 읽어 인증에 사용한다.
from google.colab import userdata
from huggingface_hub import login

login(token=userdata.get("HF_TOKEN"))

토큰은 코드에 직접 넣거나 출력하지 않는다. 모델에 따라 별도의 접근 승인도 필요할 수 있다. 위 코드는 Colab에서 사용하는 예시이며 이 로컬 프로젝트에서 실행한 결과는 아니다.


16. 기억할 점

  1. 모델 학습은 예측·손실 계산·역전파·파라미터 업데이트를 반복한다.
  2. CNN은 공간적 특징, RNN은 순차 정보와 은닉 상태를 활용한다.
  3. 특징 표현과 최종 판단은 역할이 다르며, 출력층이 항상 깊은 MLP일 필요는 없다.
  4. Metric Learning·Diffusion·RL·멀티모달 모델도 MLP를 사용할 수 있다.
  5. Loss는 학습 방향, Metric은 실제 목적의 성능을 평가하는 기준이다.
  6. arg min은 최소 손실값이 아니라 그 손실을 만드는 파라미터를 뜻한다.
  7. Surrogate Loss 감소와 실제 Metric 개선은 같지 않다.
  8. 예측 확률과 Accuracy는 다르다. Accuracy는 전체에서 맞힌 비율이다.
  9. Precision은 예측 양성 기준, Recall은 실제 양성 기준이다.
  10. R²는 정확도가 아니라 평균값 예측 기준 대비 제곱 오차의 개선 정도다.
  11. MRR은 첫 정답, NDCG는 관련성과 순서, Recall@K는 정답 회수를 중시한다.
  12. IoU는 영역 겹침, mAP는 탐지 결과 전체의 품질을 평가한다.
  13. BLEU·ROUGE의 표현 겹침과 의미·사실성은 구분한다.
  14. Benchmark는 문제·데이터·채점·실행 조건을 포함하는 평가 체계다.
  15. 역전파는 기울기 계산, 경사하강법은 기울기를 이용한 파라미터 수정이다.
  16. SGD도 실제 미분을 수행한다. 일부 데이터로 전체 기울기를 추정하는 것이다.
  17. SGD의 흔들림이 탐색에 도움이 될 수 있지만 최적해 도달을 보장하지는 않는다.
  18. Colab Pro+도 자원·CU·실행 시간 제한이 있고 /content는 임시 저장소다.
  19. PPL은 다음 토큰 예측을 평가한다. 별도의 정답 문장은 없어도 평가 텍스트는 필요하다.

오늘의 정리

어제는 Task에 맞게 정답과 모델 출력을 설계하는 과정을 배웠고, 오늘은 그 출력을 어떤 목표로 학습하고 어떤 기준으로 평가할지 배웠다.

모델은 Loss를 줄이도록 학습하지만, 실제로 원하는 것은 높은 정확도·좋은 검색 순위·자연스럽고 정확한 문장이다. 직접 최적화하기 어려운 목표에는 Surrogate Loss를 사용하고, 결과는 Task에 맞는 Metric과 Benchmark로 확인해야 한다.

처음에는 경사하강법이 미분을 대신하는 방법인지 헷갈렸지만, 미분은 이동 방향을 계산하고 경사하강법은 그 방향으로 파라미터를 바꾸는 방법이다. SGD는 미분을 생략하지 않고 일부 데이터로 전체 기울기를 추정한다.

PPL은 토큰 단위 교차 엔트로피와 연결되는 언어 모델 평가 지표다. 다음 토큰 예측이 좋아지는 것과 생성 문장 전체가 정확하고 유용해지는 것은 구분해야 한다.

앞으로 학습 결과를 볼 때는 Loss가 낮아졌는지만 보지 않고, 어떤 오류가 줄었는지와 실제 목적에 맞는 Metric이 개선됐는지를 함께 확인해야겠다.


참고 자료

0개의 댓글