1. 학습 문제의 구성¶
이 챕터의 질문¶
서로 달라 보이는 AI 기술을 어떤 공통 요소로 나누어 읽을 수 있을까?
딥러닝을 처음 접하면 모델 이름부터 배우기 쉽다. 그러나 같은 모델도 입력, 정답, 평가 기준을 어떻게 정하느냐에 따라 전혀 다른 문제를 푼다. 반대로 CNN, Transformer, GNN처럼 구조가 다른 모델도 모두 데이터에서 반복되는 관계를 찾아 새로운 입력에 쓸 수 있는 함수를 만든다는 공통점이 있다. 이 장의 목표는 이후에 등장할 기술을 놓을 좌표계를 만드는 것이다.
이 장에서 알아볼 수준¶
핵심 개념¶
- sample, feature, target과 dataset
- task, model, parameter, training
- training signal, loss, metric, baseline
- train, validation, test split과 generalization
이름과 위치를 알아둘 개념¶
- supervised, unsupervised, self-supervised, reinforcement learning
- inference, data leakage, distribution shift, out-of-distribution(OOD)
여기서는 각 학습 패러다임의 알고리즘을 완전히 배우지 않는다. 새로운 사례를 만났을 때 "무엇을 입력하고, 무엇을 예측하며, 어떤 신호로 학습하는가"를 질문할 수 있으면 충분하다.
이해에 필요한 항목¶
- 함수에는 입력과 출력이 있다는 사실
- 표의 행과 열, vector와 tensor의 shape
- 평균과 분산이 데이터의 중심과 퍼짐을 나타낸다는 직관
- 확률이 불확실한 결과의 정도를 나타낼 수 있다는 직관
정확한 행렬 계산이나 확률 유도보다, 각 표현이 데이터의 어떤 축과 관계를 나타내는지 알아보는 것이 우선이다.
데이터에서 학습 문제로¶
Sample, feature, target¶
먼저 데이터 한 개의 단위를 정해야 한다. 집값 예측에서는 주택 한 채가 sample이고, 면적이나 위치가 feature이며, 거래 가격이 target이 될 수 있다. 이미지 분류에서는 이미지 한 장이 sample이고 pixel 값이 feature 역할을 하며, 사물의 종류가 target이다.
이 구분은 데이터 자체에 고정되어 있지 않다. 분자 데이터에서 분자 전체를 sample로 삼아 에너지를 예측할 수도 있고, 원자 하나를 sample처럼 다루어 원자별 힘을 예측할 수도 있다. 즉 학습 문제를 설계한다는 것은 현실의 관찰을 입력 \(x\)와 원하는 출력 \(y\)로 번역하는 일이다.
dataset을 간단히 다음처럼 쓸 수 있다.
여기서 \(N\)은 sample 수다. 모든 문제에 \(y_i\)가 사람이 붙인 label로 존재하는 것은 아니다. 입력의 일부를 가려 정답으로 쓰거나, 환경과 상호작용해 reward를 받거나, 알려진 물리식이 얼마나 위반되었는지를 신호로 쓸 수도 있다.
Task는 원하는 출력의 성격을 정한다¶
같은 데이터라도 질문에 따라 task가 달라진다.
- Regression: 집값, 에너지, 온도처럼 연속적인 값을 예측한다.
- Classification: 고양이와 개처럼 정해진 class 중 하나 또는 여러 개를 예측한다.
- Representation learning: 원래 데이터의 중요한 정보를 담은 vector 표현을 만든다.
- Generation: 학습한 데이터 분포와 관련된 새로운 sample을 만든다.
- Decision making: 현재 상태에서 장기적인 결과가 좋아지도록 행동을 선택한다.
task 이름보다 더 중요한 것은 출력 형식이다. 이미지 분류의 출력은 class별 확률일 수 있지만 segmentation의 출력은 pixel마다 class를 지정한 grid다. 출력 구조가 달라지면 모델의 마지막 부분, loss, metric도 함께 바뀐다.
모델은 무엇을 학습하는가¶
모델을 \(f_\theta\)라고 쓰면 다음과 같은 관계를 표현한다.
\(\hat{y}\)는 모델의 예측이고, \(\theta\)는 데이터로부터 조정되는 parameter다. 신경망의 weight와 bias가 대표적인 parameter다. 반면 layer 수, learning rate, batch size처럼 사람이 선택하거나 별도의 탐색으로 정하는 설정은 hyperparameter라고 부른다.
모델은 현실 그 자체가 아니다. 어떤 입력 정보를 제공했는지, 어떤 구조적 가정을 넣었는지, 어떤 loss로 최적화했는지에 따라 특정 관계만 포착한 근사 함수다. 따라서 "성능이 좋은 모델"이라는 표현은 데이터 범위와 metric이 함께 제시되어야 의미가 있다.
Training signal은 어디에서 오는가¶
학습은 parameter를 바꿀 방향을 알려주는 신호가 있어야 가능하다.
- Supervised learning은 입력과 함께 주어진 label 또는 target을 사용한다.
- Unsupervised learning은 별도의 label 없이 데이터의 구조, 밀도, 군집, 저차원 표현 등을 찾는다.
- Self-supervised learning은 데이터 자체에서 target을 구성한다. 문장의 다음 token 예측이나 가린 token 복원이 대표적이다.
- Reinforcement learning은 행동 뒤에 얻는 reward를 이용해 policy를 개선한다.
- 일부 과학 학습 문제는 관측값뿐 아니라 방정식 residual, 보존 법칙, 대칭성 같은 지식을 학습 신호나 구조적 제약으로 사용한다.
이 분류는 완전히 배타적이지 않다. self-supervised pretraining 뒤에 label을 사용해 fine-tuning할 수 있고, supervised loss와 물리 제약 loss를 함께 사용할 수도 있다. 기술을 볼 때 이름 하나로 분류하기보다 실제 신호의 출처를 확인해야 한다.
Loss와 metric은 역할이 다르다¶
Loss는 parameter를 학습할 때 최소화하거나 최대화할 목적함수다. 예측값과 target의 차이를 sample별 loss \(\ell(\hat{y}, y)\)로 나타내면 보통 dataset 또는 mini-batch 평균을 사용한다.
Metric은 모델이 실제 목적에 맞게 작동하는지 판단하는 측정값이다. classification에서는 cross-entropy로 학습하면서 accuracy, precision, recall 등을 보고할 수 있다. 두 역할을 구분하는 이유는 실제 평가 기준이 미분하기 어렵거나, 하나의 숫자로 학습 신호를 안정적으로 주기 어려울 수 있기 때문이다.
metric도 맥락 없이 해석하면 안 된다. 드문 질병 탐지에서 모든 sample을 정상으로 예측하면 accuracy는 높아 보일 수 있다. 과학 예측에서 평균 오차가 작아도 특정 물질군이나 극한 조건에서 큰 오차가 날 수 있다. 무엇을 평균했고 어떤 실패에 비용이 큰지 함께 봐야 한다.
Train, validation, test가 필요한 이유¶
학습 데이터의 loss가 낮다는 사실만으로 새로운 데이터에서 잘 작동한다고 말할 수 없다. 모델이 이미 본 sample의 세부사항을 외웠을 수 있기 때문이다. 보통 데이터는 다음 역할로 나눈다.
- Train set: parameter를 실제로 학습한다.
- Validation set: hyperparameter와 모델 선택, early stopping에 사용한다.
- Test set: 선택이 끝난 뒤 최종 일반화 성능을 평가한다.
Generalization은 학습 중 보지 않은 데이터에서도 유용한 규칙을 적용하는 능력이다. split은 단순한 무작위 분할보다 현실의 사용 조건을 반영해야 한다. 시간에 따라 미래를 예측한다면 미래 데이터를 train에 섞지 않아야 한다. 새로운 분자 골격에 일반화하려면 유사한 골격이 train과 test에 동시에 들어가지 않도록 분할할 필요가 있다.
Data leakage¶
data leakage는 평가 시점에는 알 수 없는 정보가 학습이나 전처리에 흘러 들어가는 문제다. 전체 데이터로 scaling 통계를 계산한 뒤 나누거나, 동일한 환자의 거의 같은 측정값을 train과 test에 각각 넣는 경우가 예다. test 성능은 높아지지만 실제 배치 성능을 과대평가한다.
Distribution shift와 OOD¶
train과 실제 사용 데이터의 분포가 달라지는 현상을 distribution shift라고 한다. 새로운 장비, 계절, 사용자 집단, 화학 조성에서 입력의 범위나 입력과 target의 관계가 바뀔 수 있다. OOD는 학습 분포 바깥의 조건을 가리키지만, 무엇을 바깥으로 볼지는 문제 정의에 따라 달라진다. 따라서 "OOD 성능"에는 어떤 변화 축을 시험했는지 명시해야 한다.
Baseline은 비교의 출발점이다¶
복잡한 모델이 필요하다는 주장은 단순하지만 합리적인 기준보다 나아야 성립한다. baseline은 다음과 같을 수 있다.
- 평균값이나 가장 흔한 class를 항상 예측하는 규칙
- linear regression이나 logistic regression
- 이미 널리 쓰이는 전통적 방법 또는 도메인 계산법
- 입력 일부를 제거하거나 구조를 단순화한 모델
baseline은 약하게 만들어 이기기 위한 장치가 아니다. 추가된 복잡성, 계산량, 데이터 요구량이 실제 개선으로 이어지는지 확인하는 기준이다.
하나의 사례를 공통 질문으로 읽기¶
"현미경 이미지로 소재 결함을 분류한다"는 문제를 생각해 보자.
- 입력과 출력: 현미경 이미지가 \(x\), 결함 class가 \(y\)다.
- 구조적 가정: 가까운 pixel의 패턴과 위치 관계가 중요하므로 CNN을 후보로 삼을 수 있다.
- 학습 신호: 전문가가 붙인 class label을 사용한다.
- 목적함수: class 확률과 정답 사이의 cross-entropy를 사용할 수 있다.
- 평가: class 불균형을 고려해 class별 recall과 confusion matrix를 함께 본다.
- baseline: 단순 image feature와 linear classifier 또는 작은 CNN과 비교한다.
- 실패 조건: 다른 현미경이나 배율에서 성능이 유지되는지 확인한다.
이 일곱 항목은 공통 질문의 다섯 분석축을 하나의 사례에 펼쳐 적용한 것이다. 이후 모든 모델 계열에서도 같은 다섯 축을 반복한다.
흔한 혼동과 실패¶
- AI task와 model을 같은 것으로 부른다: classification은 task이고 CNN은 사용할 수 있는 model family다.
- 높은 test score를 보편적 지능으로 해석한다: score는 특정 데이터, split, metric에 대한 결과다.
- unsupervised는 정답이 전혀 필요 없다고만 이해한다: label을 쓰지 않는다는 뜻에 가깝고, 학습 목적과 평가 기준은 여전히 사람이 설계한다.
- inference를 통계적 추론과 항상 같은 뜻으로 본다: 딥러닝 실무에서는 학습된 모델로 예측하거나 생성하는 실행 단계를 흔히 inference라고 부른다.
- 모델 개선만 찾고 데이터 문제를 놓친다: 잘못된 target, leakage, sampling bias는 더 큰 모델로 해결되지 않는다.
다음 장과의 연결¶
이 장에서 \(f_\theta(x)\), loss, parameter를 구분했다. 2장에서는 입력이 예측으로 변하는 forward pass와 loss의 변화가 각 parameter의 gradient로 전달되는 backpropagation을 연결한다. 3장에서는 계산한 gradient를 어떻게 안정적으로 update하는지 본다. 이후 CNN, Transformer, GNN, 생성모델, 강화학습에서도 같은 공통 질문을 반복한다.
스스로 확인하기¶
- 같은 이미지 dataset도 classification task와 generation task에서는 입력, 출력, metric이 어떻게 달라질까?
- loss와 metric을 서로 다른 값으로 선택하는 이유는 무엇일까?
- random split의 test score가 높아도 실제 배치 환경에서 실패할 수 있는 조건에는 무엇이 있을까?
더 읽을 자료¶
- Mitchell, Machine Learning, 1997, 1장. 학습 문제를 task, experience, performance로 정의하는 고전적 관점과 저자 공식 자료: https://www.cs.cmu.edu/~tom/mlbook.html
- scikit-learn, Cross-validation guide, accessed 2026-09-04. train, validation, test와 leakage를 포함한 공식 실무 안내: https://scikit-learn.org/stable/modules/cross_validation.html
- Sculley et al., Hidden Technical Debt in Machine Learning Systems, 2015. 모델 밖의 데이터와 시스템 문제를 다룬 논문: https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems
- Koh et al., WILDS: A Benchmark of in-the-Wild Distribution Shifts, 2021. 실제 distribution shift를 문제화한 논문: https://arxiv.org/abs/2012.07421