이분탐색의 구조

이 문제는 정수 범위 위의 단조 불리언 함수(monotonic boolean function)를 기반으로 한다.
수학적으로 이분탐색이 정확히 작동할 수 있는 구조 위에 놓여 있다.

  1. 문제 정의
  • 심사관은 여러 명 존재한다
  • 각 심사관은 time[i]분마다 1명씩 심사 가능하다
  • 사람 수는 n명이다
  • 목표: 모든 사람이 심사를 마치기 위한 최소 시간 t를 구하라
  1. 함수 정의

시간 t가 주어졌을 때, 각 심사관이 처리할 수 있는 인원을 모두 더하면
다음과 같은 함수 f(t)를 얻는다.

$$
f(t) = \sum_{i=1}^{m} \left\lfloor \frac{t}{\text{time}[i]} \right\rfloor
$$

이 함수는 단조 증가 함수이다.
즉, t가 커질수록 처리 인원은 절대 줄지 않는다.

  1. 명제 정의

우리는 다음과 같은 참/거짓 명제를 생각할 수 있다.

$$
P(t) := (f(t) \geq n)
$$

이 명제는 t가 증가할수록 False → True로 바뀐다.
즉, 단조 불리언 함수이며, 한 번만 상태가 바뀐다.

목표는 P(t)가 처음으로 True가 되는 가장 작은 t를 찾는 것이다.

  1. 이분탐색이 가능한 이유

이분탐색은 다음 조건을 만족할 때 사용할 수 있다:

  • 정수 범위 t ∈ ℕ
  • P(t)는 단조 불리언 함수 (False → True)
  • 우리는 min { t | P(t) = True } 를 찾고자 한다

즉, "논리 명제의 최소 참 구간"을 찾는 탐색이 된다.

아래는 이를 구현한 이분탐색 알고리즘이다.

def solution(n, times):
    left, right = 1, max(times) * n
    while left <= right:
        mid = (left + right) // 2
        people = sum(mid // t for t in times)
        if people >= n:
            right = mid - 1
        else:
            left = mid + 1
    return left

I. 머신러닝 기초 및 학습 패러다임 (Fundamentals & Learning Paradigms)

A. 기본 개념 (Basic Concepts)

  • 머신러닝 (Machine Learning): 명시적인 프로그래밍 없이 데이터로부터 학습하여 패턴을 인식하고 예측 또는 결정을 내리는 시스템을 구축하는 인공지능의 한 분야이다.
  • 데이터 (Data), 특징 (Features), 레이블 (Labels): 학습의 기반이 되는 정보(데이터), 모델의 입력으로 사용되는 개별 속성(특징), 지도 학습에서 예측 대상이 되는 정답(레이블)이다.
  • 모델 (Model): 데이터로부터 학습된 패턴의 수학적 표현으로, 입력을 받아 출력을 생성한다.
  • 학습/훈련 (Learning/Training): 데이터를 사용하여 모델 파라미터를 조정하는 과정이다.
  • 추론/예측 (Inference/Prediction): 학습된 모델을 사용하여 새로운 데이터에 대한 결과를 생성하는 과정이다.
  • 과적합 (Overfitting) / 과소적합 (Underfitting): 모델이 훈련 데이터에만 너무 잘 맞거나(과적합), 훈련 데이터의 패턴조차 제대로 학습하지 못하는(과소적합) 현상이다.
  • 편향-분산 트레이드오프 (Bias-Variance Tradeoff): 모델의 예측 오차는 편향(모델의 단순성으로 인한 오류)과 분산(데이터 변화에 대한 민감성) 요소로 나뉘며, 이 둘 사이의 균형을 맞추는 것이 중요한다. 일반적으로 복잡도를 높이면 편향은 줄고 분산은 늘어난다.

B. 학습 패러다임 (Learning Paradigms)

  1. 지도 학습 (Supervised Learning)
  2. 비지도 학습 (Unsupervised Learning)
  3. 강화 학습 (Reinforcement Learning)
  4. 준지도 학습 (Semi-Supervised Learning)
  5. 자기지도 학습 (Self-Supervised Learning)

II. 주요 머신러닝 모델 및 알고리즘 (Key ML Models & Algorithms)

A. 모델 분류 기준 (Model Classification Criteria)

  1. 파라메트릭 모델 (Parametric Models)
  2. 비파라메트릭 모델 (Non-Parametric Models)
  3. 준파라메트릭 모델 (Semi-Parametric Models)

B. 선형 모델 (Linear Models)

  • Linear Regression: 입력과 출력 사이의 선형 관계를 추정하는 회귀 모델이다.
  • Polynomial Regression: 입력 변수의 다항식을 사용해 비선형 관계를 모델링합니다 (선형 모델의 확장).
  • Logistic Regression: 입력 변수의 선형 조합을 통해 이진 분류 클래스 확률을 예측한다.
  • Softmax Regression: 다중 클래스 분류를 위한 확장형 선형 모델이다. 출력층에 Softmax 함수를 적용해 확률 분포를 만든다.
  • Linear Discriminant Analysis (LDA): 클래스 간 분산을 최대화하고 클래스 내 분산을 최소화하는 선형 판별 분류 모델이다. (차원 축소 기법으로도 사용됨 - II.H 참고)
  • Ridge Regression: L2 정규화를 사용하여 과적합을 줄이는 선형 회귀이다.
  • Lasso Regression: L1 정규화를 사용하여 가중치 희소성을 유도하는 회귀이다.
  • Elastic Net: L1 L2 정규화를 혼합하여 사용하는 회귀 방법이다.

C. 결정 트리 및 앙상블 (Decision Trees & Ensembles)

  1. Decision Tree: 데이터 특성을 기반으로 조건 분기를 반복하여 예측하는 나무 구조 모델이다.
  2. 앙상블 학습 (Ensemble Learning): 여러 개의 약한 모델을 조합해 더 강한 모델을 만든다.

D. 서포트 벡터 머신 (Support Vector Machines - SVM)

  • Support Vector Machine (Classifier): 마진(margin) 최대화를 통해 최적의 분류 경계(결정 초평면)를 학습하는 모델이다. 커널 기법(Kernel Trick)을 통해 비선형 문제도 효과적으로 해결할 수 있다.
  • Support Vector Regression (SVR): SVM의 원리를 회귀 문제에 적용한 모델이다. 마진 내 오류는 허용하면서 마진 밖 오류를 최소화한다.

E. 베이즈 모델 (Bayesian Models)

  • Optimal Bayes Classifier: 베이즈 정리를 기반으로 사전 확률과 우도(likelihood)를 이용하여 분류 오류를 최소화하는 이론적인 최적 분류기이다. 실제 구현은 확률 분포 추정이 필요한다.
  • Naive Bayes: 모든 특징들이 클래스에 대해 조건부 독립(conditionally independent)이라고 가정하고 베이즈 정리를 적용하는 간단하면서도 효과적인 분류기이다.

F. 거리 기반 모델 (Distance-Based Models)

  • K-Nearest Neighbors (KNN): 새로운 데이터 포인트 주변의 가장 가까운 k개의 훈련 데이터 이웃을 참조하여 다수결(분류) 또는 평균(회귀)으로 예측하는 비파라메트릭 모델이다.
  • Minimum Distance Classifier: 각 클래스의 평균(또는 프로토타입)까지의 유클리드 거리(또는 다른 거리 척도)를 계산하여 가장 가까운 클래스로 분류하는 간단한 분류기이다.

G. 군집화 알고리즘 (Clustering Algorithms)

  • K-Means: 데이터를 k개의 중심점(centroid) 기준으로 반복적으로 할당하고 중심점을 업데이트하여 클러스터링한다.
  • Hierarchical Clustering: 데이터를 유사도(또는 거리) 기반으로 계층적인 트리 구조(덴드로그램)로 병합(agglomerative)하거나 분할(divisive)한다.
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise): 데이터 포인트의 밀도를 기반으로 클러스터를 형성하며, 임의 형태의 클러스터를 찾고 잡음(noise) 데이터 식별에 강건한다.
  • Gaussian Mixture Model (GMM): 데이터가 여러 개의 가우시안(정규) 분포의 혼합으로 구성되었다고 가정하고, 각 데이터 포인트가 각 분포에 속할 확률을 추정하여 클러스터링합니다 (Soft Clustering).
  • Spectral Clustering: 데이터 포인트 간의 유사도를 그래프로 표현하고, 그래프 라플라시안 행렬의 고유벡터(eigenvectors)를 사용하여 저차원 공간으로 임베딩한 후 클러스터링을 수행한다. 복잡한 형태의 클러스터 분리에 효과적이다.

H. 차원 축소 및 표현 학습 (Dimensionality Reduction & Representation Learning)

  1. 선형 차원 축소 (Linear Dimensionality Reduction)
  2. 비선형 차원 축소 (Non-linear Dimensionality Reduction)
  3. 표현 학습 (Representation Learning) - 주로 Autoencoder 기반

I. 신경망 기초 (Neural Network Basics)

  • Neural Network (Artificial Neural Network, ANN): 상호 연결된 노드(뉴런)들의 층(layer)으로 구성된 모델이다. 비선형 활성화 함수를 통해 복잡한 패턴을 학습할 수 있으며, 지도, 비지도, 강화 학습 등 다양한 패러다임에 적용될 수 있다.

J. 기타 모델 (Other Models)

  • Gaussian Process Regression (GPR): 함수 자체에 대한 사전 분포(prior distribution, 주로 가우시안 프로세스)를 정의하고, 관측 데이터를 통해 사후 분포(posterior distribution)를 업데이트하여 예측을 수행하는 베이즈 비파라메트릭 회귀 방법이다. 예측의 불확실성 추정이 가능한다.
  • Generalized Additive Model (GAM): 선형 회귀를 확장하여 각 특징 변수에 대해 비선형 함수(주로 스플라인)를 적용한 후 이들의 합으로 예측하는 준파라메트릭 모델이다. 선형 모델의 해석 가능성을 유지하면서 비선형 관계를 모델링할 수 있다.
  • Cox Proportional Hazards Model: 생존 분석(survival analysis)에 주로 사용되는 준파라메트릭 모델로, 특정 시점에서의 사건 발생 위험률(hazard rate)을 공변량(covariates)의 함수로 모델링한다. 기저 위험 함수(baseline hazard function)는 비모수적으로, 공변량의 효과(계수)는 모수적으로 추정한다.

III. 딥러닝 아키텍처 (Deep Learning Architectures)

딥러닝은 여러 개의 은닉층을 가진 심층 신경망(Deep Neural Network, DNN)을 사용하여 복잡한 문제를 해결하는 머신러닝의 하위 분야이다. 특정 과업에 특화된 다양한 아키텍처가 개발되었다.

A. CNN (Convolutional Neural Network) 계열

  • LeNet: 최초의 실용적인 CNN 중 하나로, 주로 손글씨 숫자 인식(MNIST)에 사용되었다.
  • AlexNet: GPU를 활용하여 대규모 이미지 분류(ImageNet)에서 획기적인 성능을 보여 딥러닝 부흥을 이끈 모델이다.
  • VGGNet: 3x3 크기의 작은 합성곱 필터를 깊게 쌓아 네트워크 깊이의 중요성을 보여준 모델이다.
  • ResNet (Residual Network): 잔차 연결(residual connection) 또는 스킵 연결(skip connection)을 도입하여 매우 깊은 네트워크(수백~수천 개 층)의 학습을 가능하게 하고 기울기 소실 문제를 완화했다.
  • DenseNet (Densely Connected Convolutional Network): 각 층이 이후의 모든 층과 직접 연결되는 구조(dense connection)를 통해 특징 재사용(feature reuse)을 극대화하고 정보 흐름을 개선했다.
  • EfficientNet: 네트워크의 깊이(depth), 너비(width), 입력 해상도(resolution)를 복합적인 스케일링 방법(compound scaling)으로 균형 있게 확장하여 효율성과 성능을 동시에 높인 모델이다.

B. 순환 신경망 (RNN) 및 관련 구조 (Recurrent Neural Networks & Related Architectures)

  • RNN (Vanilla RNN): 순환 연결을 통해 이전 스텝의 정보를 현재 스텝의 계산에 활용하여 순차 데이터(sequence data)를 처리하는 기본적인 순환 구조이다. 장기 의존성 문제(long-term dependency problem)에 취약한다.
  • LSTM (Long Short-Term Memory): 입력, 망각, 출력 게이트(gate) 메커니즘을 도입하여 장기 의존성 문제를 효과적으로 해결한 RNN의 변형 구조이다.
  • GRU (Gated Recurrent Unit): LSTM의 구조를 간소화(업데이트 게이트, 리셋 게이트 사용)하여 계산 효율성을 높이면서 유사한 성능을 보이는 구조이다.
  • Bi-LSTM (Bidirectional LSTM): 순방향과 역방향의 LSTM을 모두 사용하여 과거와 미래의 문맥 정보를 동시에 활용하는 구조이다.
  • Seq2Seq (Sequence-to-Sequence): 인코더 RNN이 입력 시퀀스를 고정된 크기의 문맥 벡터로 압축하고, 디코더 RNN이 이 문맥 벡터를 받아 출력 시퀀스를 생성하는 구조이다. 기계 번역 등에 사용된다. 초기 Seq2Seq 모델은 고정된 크기의 문맥 벡터가 정보 병목 현상을 일으킬 수 있다는 한계가 있었다.

C. 어텐션 메커니즘 (Attention Mechanism)

  • 정의: 어텐션은 모델이 출력 시퀀스의 특정 부분을 생성할 때, 입력 시퀀스 전체에서 관련성이 높은 부분에 '집중'하여 가중치를 부여하는 메커니즘이다. 이는 인간이 정보를 처리할 때 중요한 부분에 집중하는 방식과 유사한다.
  • 역할: 초기에는 RNN 기반 Seq2Seq 모델의 한계(고정된 문맥 벡터로 인한 정보 손실)를 극복하기 위해 도입되었다. 디코더가 각 타임 스텝에서 입력 시퀀스의 모든 은닉 상태(hidden states)를 참고하되, 현재 예측과 관련성이 높은 상태에 더 높은 가중치(어텐션 스코어)를 부여하여 동적인 문맥 벡터를 생성한다.
  • 핵심 요소 (Query, Key, Value): 일반적인 어텐션 메커니즘은 쿼리(Query, Q), (Key, K), (Value, V)이라는 세 가지 요소로 설명될 수 있다.
  • 진화: 어텐션 메커니즘은 Seq2Seq 모델의 성능을 크게 향상시켰으며, 이후 트랜스포머 아키텍처에서는 순환 구조를 완전히 대체하는 핵심 구성 요소(셀프 어텐션)로 발전했다.

D. Transformer 계열 (Transformer Family)

  • Transformer: RNN의 순환 구조를 완전히 제거하고, 셀프 어텐션(Self-Attention) 메커니즘만을 사용하여 입력 시퀀스 내의 요소 간 관계(의존성)를 직접 모델링하는 혁신적인 아키텍처이다. 순환 구조가 없어 병렬 처리가 매우 용이하며, 이는 대규모 모델 학습 시간을 크게 단축시켰다.
  • BERT (Bidirectional Encoder Representations from Transformers): Transformer의 인코더 구조만을 사용하여, 문장 내 양방향 문맥을 동시에 고려하여 단어 및 문장 표현을 사전 학습(pre-training)하는 모델이다. 주로 자연어 이해(NLU) 작업에 강점을 보이며, 마스크된 언어 모델(Masked Language Model, MLM)과 다음 문장 예측(Next Sentence Prediction, NSP)이라는 두 가지 목표로 사전 학습된다.
  • GPT (Generative Pre-trained Transformer): Transformer의 디코더 구조를 기반으로, 대규모 텍스트 데이터로 사전 학습되어 주로 텍스트 생성(text generation) 작업에 강력한 성능을 보이는 모델이다. 이전 단어들을 바탕으로 다음 단어를 예측하는 방식으로 학습하며, 단방향(왼쪽에서 오른쪽) 문맥만을 고려한다.
  • T5 (Text-to-Text Transfer Transformer): 모든 NLP 문제를 텍스트 입력에서 텍스트 출력으로 변환하는 통일된 프레임워크(text-to-text)를 제안한 모델이다. 인코더-디코더 구조를 사용한다.
  • 최신 대형 언어 모델 (Large Language Models - LLMs):

E. Vision Transformer (ViT) 계열

  • ViT (Vision Transformer): 이미지를 여러 개의 작은 패치(patch)로 나누고, 각 패치를 시퀀스 데이터처럼 처리하여 Transformer 구조를 이미지 인식에 적용한 모델이다.
  • DeiT (Data-efficient Image Transformers): ViT를 더 적은 데이터로도 효율적으로 학습시키기 위해 지식 증류(knowledge distillation) 등의 기법을 사용한 모델이다.
  • Swin Transformer: 이미지를 계층적(hierarchical)으로 처리하고, 이동된 윈도우(shifted window) 기반의 로컬 어텐션을 사용하여 계산 효율성과 성능을 높인 ViT 변형 모델이다.
  • ConvNeXt: CNN의 고전적인 구조(: ResNet) Transformer의 설계 원칙(: 레이어 정규화, 활성화 함수 변경 등)을 점진적으로 적용하여 CNN의 성능을 크게 향상시킨 모델이다.

F. 그래프 신경망 (Graph Neural Networks - GNN)

  • GCN (Graph Convolutional Network): 그래프 구조 데이터에서 노드의 특징을 업데이트할 때, 인접 노드들의 특징 정보를 평균(또는 다른 집계 함수)하여 사용하는 기본적인 그래프 합성곱 방식이다.
  • GAT (Graph Attention Network): 노드 특징을 집계할 때, 인접 노드들과의 관계 중요도(어텐션 가중치)를 학습하여 가중 평균을 사용하는 방식이다.
  • GraphSAGE (Graph Sample and Aggregate): 대규모 그래프에서 모든 이웃 대신 일부 이웃을 샘플링하여 특징을 집계함으로써 확장성과 효율성을 높인 방식이다.
  • Graph Transformer: Transformer의 셀프 어텐션 메커니즘을 그래프 데이터에 적용하여 노드 간의 장거리 의존성 및 복잡한 관계를 모델링하는 구조이다.

G. 생성 모델 (Generative Models)

  • GAN (Generative Adversarial Network): 실제 데이터와 유사한 데이터를 생성하는 생성자(Generator)와 생성된 데이터가 실제인지 가짜인지 판별하는 판별자(Discriminator)가 서로 경쟁하며 학습하는 구조이다. 고품질 이미지 생성 등에 뛰어난다.
  • VAE (Variational Autoencoder): 확률적인 잠재 공간을 학습하여 데이터를 생성하는 오토인코더 기반 생성 모델이다. (II.H.3 참고)
  • Diffusion Models: 데이터에 점진적으로 노이즈를 추가하는 과정(forward process)과 노이즈로부터 원본 데이터를 점진적으로 복원하는 과정(reverse process)을 학습하여 고품질의 다양한 데이터를 생성하는 모델이다. GAN보다 학습이 안정적이고 생성된 샘플의 다양성이 높다는 장점이 있다.
  • Latent Diffusion Models (LDM): 고차원 데이터(: 이미지)를 직접 다루는 대신, 저차원의 압축된 잠재 공간(latent space)에서 확산(diffusion) 및 복원 과정을 수행하여 계산 효율성을 높인 모델이다 (: Stable Diffusion).
  • ControlNet: 사전 학습된 대규모 확산 모델(: Stable Diffusion)에 추가적인 조건(: 스케치, 자세)을 입력하여 생성 과정을 제어할 수 있도록 확장한 구조이다.

H. 멀티모달 / 분할 / 3D (Multimodal / Segmentation / 3D)

  • SAM (Segment Anything Model): 입력 이미지와 프롬프트(: 클릭, 박스)를 받아 이미지 내의 어떤 객체든 분할(segmentation)할 수 있는 범용적인 제로샷(zero-shot) 분할 모델이다.
  • NeRF (Neural Radiance Fields): 여러 각도에서 촬영된 2D 이미지들로부터 3D 장면을 연속적인 신경망 표현(신경 광채 필드)으로 학습하여, 새로운 시점에서의 이미지를 사실적으로 렌더링하는 기술이다.

IV. 모델 학습 및 평가 (Model Training & Evaluation)

A. 손실 함수 (Loss Functions)

모델의 예측값과 실제 값 사이의 오차를 측정하는 함수이다. 훈련 목표는 이 손실을 최소화하는 것이다.

  1. 회귀 문제용 (Regression Loss)
  2. 분류 문제용 (Classification Loss)
  3. 정보 이론 기반 손실 (Information Theory Based Loss)

B. 최적화 알고리즘 (Optimization Algorithms)

손실 함수를 최소화하기 위해 모델 파라미터(가중치)를 업데이트하는 방법이다.

  1. 1차 미분 기반 최적화 (First-Order Optimization): 기울기(gradient) 정보만 사용한다.
  2. 2차 미분 기반 최적화 (Second-Order Optimization): 헤시안 행렬(Hessian matrix) 2차 미분(곡률) 정보를 사용한다. 수렴 속도가 빠를 수 있지만 계산 비용이 매우 높다.
  3. 제약 최적화 (Constrained Optimization): 특정 제약 조건 하에서 목표 함수를 최적화한다.
  4. 메타휴리스틱 알고리즘 (Metaheuristic Algorithms): 문제에 대한 가정이 적고, 전역 최적해(global optimum)를 찾기 위한 경험적(heuristic) 탐색 기법이다. 주로 복잡하거나 미분 불가능한 문제에 사용된다.
  5. 이산 최적화 (Discrete Optimization): 결정 변수가 정수 또는 이산적인 값을 갖는 최적화 문제이다.
  6. 다목적 최적화 (Multi-Objective Optimization): 두 개 이상의 상충하는 목적 함수를 동시에 최적화하는 문제이다. 단일 최적해가 아닌 파레토 최적해(Pareto optimal solutions) 집합을 찾는 것을 목표로 한다.

C. 정규화 기법 (Regularization Techniques)

모델의 복잡도를 제어하여 과적합(Overfitting)을 방지하고 일반화 성능을 높이는 기법이다.

  1. 매개변수 규제 (Parameter Norm Penalties): 모델의 가중치(파라미터) 크기에 직접 제약을 가한다.
  2. 구조적/암시적 규제 (Structural/Implicit Regularization): 학습 과정이나 모델 구조 자체에 제약을 가하여 과적합을 막다.
  3. 특수 규제 (Specialized Regularization)

D. 평가 및 검증 (Evaluation & Validation)

모델의 성능을 측정하고 일반화 능력을 평가하는 방법 및 지표이다.

  1. 분류 문제용 지표 (Classification Metrics)
  2. 회귀 문제용 지표 (Regression Metrics)
  3. 검증 방법 (Validation Methods)
  4. 불확실성 평가 (Uncertainty Evaluation)

E. 하이퍼파라미터 탐색 (Hyperparameter Tuning/Search)

모델 성능에 영향을 미치는, 학습 전에 사용자가 설정해야 하는 하이퍼파라미터(: 학습률, 정규화 강도, 트리 깊이)의 최적 조합을 찾는 과정이다.

  • Grid Search: 탐색할 하이퍼파라미터 값들의 조합을 격자(grid) 형태로 모두 시도하여 최적 조합을 찾다. 계산 비용이 높다.
  • Random Search: 지정된 범위 내에서 하이퍼파라미터 값들을 무작위로 샘플링하여 탐색한다. Grid Search보다 효율적으로 좋은 조합을 찾을 수 있는 경우가 많다.
  • Bayesian Optimization: 이전 탐색 결과를 바탕으로 아직 탐색하지 않은 영역 중 성능 개선 가능성이 높은 지점(획득 함수(acquisition function) 최대화)을 확률적으로 선택하여 탐색하는 방식이다. 적은 시도 횟수로 최적 조합을 찾는 데 효과적이다.
  • Hyperband: 제한된 자원(: 시간, 반복 횟수) 하에서 여러 하이퍼파라미터 조합을 병렬로 시도하고, 성능이 낮은 조합은 조기에 중단(early-stopping)하여 유망한 조합에 더 많은 자원을 할당하는 효율적인 탐색 기법이다.
  • BOHB (Bayesian Optimization and HyperBand): Hyperband의 효율적인 자원 할당 방식과 Bayesian Optimization의 지능적인 탐색 방식을 결합한 기법이다.
  • Optuna: 베이즈 최적화, TPE(Tree-structured Parzen Estimator), CMA-ES 등 다양한 최신 탐색 알고리즘을 지원하고, 분산 환경에서의 병렬 탐색, 탐색 과정 시각화 등을 제공하는 자동화된 하이퍼파라미터 최적화 프레임워크이다.
  • Population-Based Training (PBT): 여러 모델(개체군)을 병렬로 훈련시키면서, 주기적으로 성능이 좋은 모델의 가중치와 하이퍼파라미터를 성능이 낮은 모델로 복사하고 약간의 변형(mutation)을 가하는 방식으로, 하이퍼파라미터와 모델 가중치를 동시에 최적화한다.

V. 관련 이론 및 고급 주제 (Related Theory & Advanced Topics)

A. 정보 이론 (Information Theory)

데이터의 불확실성을 정량화하고, 확률 분포 간의 관계를 측정하는 수학적 이론이다. 머신러닝에서 손실 함수 정의, 모델 평가, 특징 선택 등에 활용된다.

  • Shannon Entropy: 확률 변수의 불확실성(정보량)을 측정하는 기댓값이다. 분포가 균일할수록 엔트로피가 높다.
  • Conditional Entropy: 다른 확률 변수 Y의 값이 주어졌을 때, 확률 변수 X의 남은 불확실성을 측정합니다 (H(X|Y)).
  • Joint Entropy: 두 확률 변수 X Y가 함께 가질 수 있는 상태에 대한 총 불확실성을 측정합니다 (H(X, Y)).
  • Mutual Information (상호 정보량): 두 확률 변수 X Y가 공유하는 정보량이다. , Y를 앎으로써 X에 대한 불확실성이 얼마나 감소하는지를 나타냅니다 (I(X; Y) = H(X) - H(X|Y)).
  • Cross-Entropy: 실제 분포 P에 대해 예측 분포 Q를 사용하여 정보를 인코딩할 때 필요한 평균 비트 수이다. 분류 문제의 손실 함수로 널리 사용된다.
  • KL Divergence (Kullback-Leibler Divergence): 두 확률 분포 P Q 사이의 비대칭적인 거리(차이)를 측정한다. P Q로 근사할 때의 정보 손실량을 나타냅니다 (D_KL(P | | Q)).
  • Jensen-Shannon Divergence (JSD): KL Divergence를 대칭적으로 만들고 값 범위를 또는 [0, log2]로 제한한 거리 척도이다.

B. 설명 가능한 AI (Explainable AI - XAI)

복잡한 인공지능 모델(특히 딥러닝)의 예측 결과를 사람이 이해하고 신뢰할 수 있도록 설명하는 기술 및 방법론이다.

  • SHAP (SHapley Additive exPlanations): 게임 이론의 샤플리 값(Shapley value) 개념을 적용하여, 각 특징(feature)이 특정 예측 결과에 얼마나 기여했는지를 공정하게 측정하고 설명하는 통합 프레임워크이다.
  • LIME (Local Interpretable Model-agnostic Explanations): 특정 예측 결과 주변의 데이터를 샘플링하고, 이 로컬 영역에서 해석 가능한 간단한 모델(: 선형 모델)을 학습시켜 해당 예측을 설명하는 모델 불특정(model-agnostic) 기법이다.
  • Integrated Gradients (IG): 예측 결과의 변화에 대한 입력 특징의 기여도를 계산할 때, 기준선(baseline) 입력부터 실제 입력까지의 경로를 따라 기울기를 적분하여 특징 중요도를 측정하는 방법이다.
  • Grad-CAM (Gradient-weighted Class Activation Mapping): CNN 모델에서 특정 클래스 예측에 중요한 영향을 미친 입력 이미지 영역(특징 맵)을 시각화하여 모델이 어디를 보고 판단했는지 보여주는 기법이다.

C. 분산 학습 및 MLOps (Distributed Learning & MLOps)

대규모 데이터나 모델을 처리하기 위한 기술과 머신러닝 모델의 개발, 배포, 운영을 자동화하고 효율화하는 방법론이다.

  1. 분산 학습 구조 (Distributed Learning Architectures): 여러 컴퓨팅 자원(장비, 프로세스)을 사용하여 모델 학습을 병렬로 수행한다.
  2. MLOps (Machine Learning Operations): 머신러닝 모델의 전체 생명주기(데이터 준비, 실험, 훈련, 배포, 모니터링, 재훈련)를 안정적이고 효율적으로 관리하기 위한 원칙과 실천 방법이다. DevOps의 원칙을 머신러닝 시스템에 적용한 것이다.

D. 프라이버시 및 연합 학습 (Privacy & Federated Learning)

데이터 프라이버시를 보호하면서 머신러닝 모델을 학습하고 활용하는 기술이다.

  • Federated Learning (연합 학습): 원본 데이터를 중앙 서버로 보내지 않고, 각 사용자(클라이언트)의 로컬 장치에서 데이터를 사용하여 모델을 개별적으로 학습시킨 후, 모델 업데이트(: 가중치 변화량)만을 중앙 서버로 보내 통합(aggregation)하는 분산 학습 방식이다. 데이터 프라이버시 보호에 유리한다.
  • Split Learning (분할 학습): 모델의 일부는 사용자 장치에서, 나머지 부분은 서버에서 나누어 학습하는 방식으로, 연합 학습과 달리 모델 구조를 분할하여 프라이버시를 보호하고 계산 부담을 분산시킵니다.
  • Differential Privacy (차분 프라이버시): 데이터셋에 대한 질의(query) 결과나 학습된 모델 파라미터에 통계적인 노이즈를 추가하여, 특정 개인의 정보가 결과에 미치는 영향을 제한함으로써 개인 식별 위험을 수학적으로 보장하는 프라이버시 보호 기법이다.

E. 강화학습 심화 기술 (Advanced Reinforcement Learning Techniques)

  • MuZero: 게임 규칙이나 환경 모델을 명시적으로 알지 못해도, 스스로 상태 표현, 전이(dynamics), 보상 함수를 학습하는 모델 기반 강화학습 알고리즘이다. (I.B.3 참고)
  • Dreamer (DreamerV3): 환경 모델을 학습하여 잠재 공간(latent space)에서 미래 상태와 보상을 예측하고, 이를 바탕으로 상상(imagination) 속에서 정책을 효율적으로 학습하는 모델 기반 강화학습 구조이다. (I.B.3 참고)
  • MADDPG (Multi-Agent Deep Deterministic Policy Gradient): 여러 에이전트가 존재하는 환경에서, 각 에이전트가 다른 에이전트들의 정책 정보를 활용하여 협력 또는 경쟁하며 학습하는 다중 에이전트 강화학습 알고리즘이다.
  • QMIX: 개별 에이전트의 Q 함수를 비선형적으로 결합하여 팀 전체의 공동 Q 함수를 추정하고, 이를 통해 협력적인 다중 에이전트 환경에서 분산된 정책을 학습하는 기법이다.
  • Offline Reinforcement Learning (오프라인 강화학습): 환경과의 실시간 상호작용 없이, 미리 수집된 고정된 데이터셋(로그 데이터 등)만을 사용하여 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Conservative Q-Learning (CQL), Implicit Q-Learning (IQL), Advantage-Weighted Actor-Critic (AWAC).
  • Constrained Reinforcement Learning (제약 강화학습): 보상 최대화뿐만 아니라, 특정 제약 조건(: 안전 제약, 비용 제약)을 만족하도록 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Constrained Policy Optimization (CPO), Shielded Reinforcement Learning.

F. 수학적 최적화 (Mathematical Optimization) - ML과의 관계

머신러닝 모델 학습(손실 함수 최소화) 자체가 최적화 문제이며, 다양한 수학적 최적화 기법들이 직간접적으로 활용된다. (IV.B 최적화 알고리즘과 중복되는 내용이 많으나, 보다 이론적인 관점에서 분류)

  1. 선형 계획법 (Linear Programming - LP): 선형 목적 함수를 선형 등식/부등식 제약 조건 하에서 최적화한다.
  2. 이차 계획법 (Quadratic Programming - QP): 이차 목적 함수를 선형 제약 조건 하에서 최적화한다. SVM 등에서 활용된다.
  3. 비선형 계획법 (Nonlinear Programming - NLP): 비선형 목적 함수 또는 비선형 제약 조건을 갖는 최적화 문제이다. 대부분의 딥러닝 학습이 여기에 해당한다.
  4. 혼합 정수 계획법 (Mixed-Integer Programming - MIP): 일부 변수는 연속적이고 일부 변수는 정수인 최적화 문제이다.
  5. 동적 계획법 (Dynamic Programming - DP): 최적 부분 구조(optimal substructure)와 중복되는 부분 문제(overlapping subproblems) 특성을 갖는 문제를 작은 부분 문제로 나누어 해결하고, 그 결과를 저장하여 재활용하는 방식이다. 강화학습의 벨만 방정식(Bellman Equation) 등에서 활용된다.
  6. 제약 충족 문제 (Constraint Satisfaction Problems - CSP): 변수 집합, 각 변수의 도메인, 변수 간 제약 조건이 주어졌을 때, 모든 제약 조건을 만족하는 변수 값 할당을 찾는 문제이다.
  7. 이진 결정 다이어그램 (Binary Decision Diagrams - BDD): 부울 함수(Boolean function)를 효율적으로 표현하고 조작하기 위한 데이터 구조이다.
  8. 유한차분법 (Finite Difference Method): 미분 방정식을 이산적인 격자점(grid points)에서의 함수 값 차이를 이용하여 근사적인 대수 방정식으로 변환하여 수치적으로 해를 구하는 방법이다. (머신러닝 자체보다는 물리 시뮬레이션 등 관련 분야에서 사용)

G. 최신 연구 키워드 (Recent Research Keywords - 2023~2025 기준)

머신러닝 및 딥러닝 분야의 최신 연구 동향을 나타내는 주요 키워드이다.

  • Diffusion Models: 고해상도 이미지, 비디오, 오디오 등 다양한 데이터를 생성하는 데 탁월한 성능을 보이는 생성 모델 계열이다. (III.G 참고)
  • RAG (Retrieval-Augmented Generation): 대형 언어 모델(LLM)이 답변을 생성할 때, 외부 지식 베이스(: 문서 데이터베이스)에서 관련 정보를 검색(retrieve)하여 이를 참고함으로써 답변의 정확성과 최신성을 향상시키는 기법이다.
  • PEFT (Parameter-Efficient Fine-Tuning): 사전 학습된 대규모 모델(Foundation Model)을 특정 작업에 맞게 미세 조정(fine-tuning)할 때, 모델의 모든 파라미터를 업데이트하는 대신 일부 파라미터(또는 추가된 작은 파라미터)만 학습하여 계산 비용과 메모리 사용량을 크게 줄이는 기법이다. 예시:
  • RLHF (Reinforcement Learning from Human Feedback) / DPO (Direct Preference Optimization): 인간의 피드백(선호도 데이터 등)을 사용하여 언어 모델의 출력을 인간의 의도나 가치에 맞게 정렬(alignment)하고, 유해하거나 편향된 출력을 줄여 안전성을 높이는 기법이다.
  • Long-Context Transformers: 표준 Transformer 모델이 처리하기 어려운 매우 긴 입력 시퀀스(: 수십만~수백만 토큰)를 효율적으로 처리할 수 있도록 확장된 아키텍처 및 기법이다 (: FlashAttention, Ring Attention).
  • NeRF (Neural Radiance Fields): 3D 장면을 연속적인 신경망 표현으로 학습하여 새로운 시점 렌더링(novel view synthesis)을 가능하게 하는 기술이다. (III.H 참고)
  • SAM (Segment Anything Model): 제로샷(zero-shot)으로 이미지 내의 어떤 객체든 분할할 수 있는 대규모 비전 모델이다. (III.H 참고)
  • Foundation Model Compression: 대규모 파운데이션 모델을 경량화하여 모바일 기기나 제한된 환경에서도 사용할 수 있도록 만드는 기술이다. 예시:
  • Multimodal Integration: 텍스트, 이미지, 오디오, 비디오 등 여러 종류의 데이터(양식, modality)를 하나의 모델이 동시에 이해하고 처리하며 생성할 수 있는 기술이다. 최신 LLM(: GPT-4o, Gemini)들이 이러한 방향으로 발전하고 있다.
  • 대표 모델 (Representative Models): (III.D 참고) GPT-4o, Gemini, Claude 3, Mistral, LLaMA, Qwen, StableLM .

 

작년 이맘때쯤 수업을 들으면서 머신러닝을 처음 배우면서 관련 개념과 용어가 무슨 소리인지 아예 몰랐다.

당시 GPT를 이용해 뭔가 어떻게든 이해하기 위하여 정리도 해봤지만 솔직히 뭐가 뭔지 하나도 몰랐다.

정리한 것을 읽어도 한 문장마다 한 단어에는 꼭 걸려 넘어졌다.

예를 들어 Lasso Regression 에 대한 아래와 같은 설명을 읽을 때,
" L1 정규화를 사용하여 가중치 희소성을 유도하는 회귀다. "

L1은 무엇인지 정규화는 수학에서의 그 정규화가 맞는지 가중치 희소성은 무슨 말인지 회귀의 구체적 정의는 무엇인지 그려지지 않았다.


그러다 1년이 흘렀고 오늘 우연히 예전에 써둔 글을 다시 봤다.

이제는 왜 그렇게 묶이고 어떤 차이가 있는지 보인다. 문장을 읽을 때 머릿속에 무언가가 그려지고

개념을 아는 게 아니라 '구조'를 이해한 것 같다.

그게 너무 신기하고 좀 기뻐서 예전에 복붙해놓고도 몰랐던 알고리즘들을
지금의 나 기준에서 다시  GPT(초안) + Gemini Deep Research를 이용하여 정리해보기로 했다.

다음 1년 아니 이번엔 더 짧게

6개월 후에는 이것들 모두가 빠짐없이 머릿속에 그려지기를 바란다.


I. 머신러닝 기초 및 학습 패러다임 (Fundamentals & Learning Paradigms)

A. 기본 개념 (Basic Concepts)

  • 머신러닝 (Machine Learning): 명시적인 프로그래밍 없이 데이터로부터 학습하여 패턴을 인식하고 예측 또는 결정을 내리는 시스템을 구축하는 인공지능의 한 분야이다.
  • 데이터 (Data), 특징 (Features), 레이블 (Labels): 학습의 기반이 되는 정보(데이터), 모델의 입력으로 사용되는 개별 속성(특징), 지도 학습에서 예측 대상이 되는 정답(레이블)이다.
  • 모델 (Model): 데이터로부터 학습된 패턴의 수학적 표현으로, 입력을 받아 출력을 생성한다.
  • 학습/훈련 (Learning/Training): 데이터를 사용하여 모델 파라미터를 조정하는 과정이다.
  • 추론/예측 (Inference/Prediction): 학습된 모델을 사용하여 새로운 데이터에 대한 결과를 생성하는 과정이다.
  • 과적합 (Overfitting) / 과소적합 (Underfitting): 모델이 훈련 데이터에만 너무 잘 맞거나(과적합), 훈련 데이터의 패턴조차 제대로 학습하지 못하는(과소적합) 현상이다.
  • 편향-분산 트레이드오프 (Bias-Variance Tradeoff): 모델의 예측 오차는 편향(모델의 단순성으로 인한 오류)과 분산(데이터 변화에 대한 민감성) 요소로 나뉘며, 이 둘 사이의 균형을 맞추는 것이 중요하다. 일반적으로 복잡도를 높이면 편향은 줄고 분산은 늘어난다.

B. 학습 패러다임 (Learning Paradigms)

  1. 지도 학습 (Supervised Learning)
    • 정의: 정답(레이블)이 주어진 데이터를 바탕으로 예측 모델을 학습하는 방법이다.
    • 주요 과제:
      • 분류 (Classification): 데이터를 미리 정의된 범주로 할당한다.
      • 회귀 (Regression): 연속적인 수치 값을 예측한다.
    • 관련 알고리즘 예시 (세부 내용은 II장에서 다룸): Logistic Regression, Softmax Regression, LDA, SVM, Optimal Bayes Classifier, Minimum Distance Classifier, KNN, Decision Tree, Neural Network (분류/회귀 적용 시), Linear Regression, Polynomial Regression, Ridge/Lasso/Elastic Net Regression, SVR, Gaussian Process Regression.
  2. 비지도 학습 (Unsupervised Learning)
    • 정의: 정답 없이 데이터의 구조나 패턴을 스스로 학습하는 방법이다.
    • 주요 과제 및 관련 알고리즘:
      • 군집화 (Clustering): 유사한 데이터 포인트를 그룹으로 묶는다.
        • K-Means: 데이터를 k개의 중심점 기준으로 클러스터링한다.
        • Hierarchical Clustering: 데이터를 유사도 기반 트리 구조로 병합 또는 분할한다.
        • DBSCAN: 밀도 기반 클러스터링으로, 잡음 데이터에도 강건하다.
        • Gaussian Mixture Model (GMM): 데이터가 여러 정규분포의 혼합으로 구성되었다고 가정하고 클러스터링한다.
        • Spectral Clustering: 그래프 라플라시안의 고유벡터를 사용한 클러스터링이다.
      • 차원 축소 (Dimensionality Reduction): 특징의 수를 줄인다. (세부 내용은 II.H장에서 다룸)
        • PCA: 최대 분산 방향을 기준으로 축을 회전시켜 데이터를 투영한다.
        • ICA: 통계적으로 독립인 성분을 추출하는 기법이다.
        • t-SNE: 조건부 확률 기반으로 이웃 정보를 보존하며 시각화한다.
        • UMAP: 저차원 위상 구조를 보존하도록 임베딩한다.
        • Autoencoder 계열 (표현 학습과도 연관): 입력을 재구성하면서 중간 표현(잠재 공간)을 학습한다. (세부 내용은 II.H장에서 다룸)
      • 밀도 추정 (Density Estimation): 데이터의 확률 분포를 추정한다.
        • Kernel Density Estimation (KDE): 커널 함수로 확률 밀도함수를 추정한다.
        • Parzen Window: 고전 KDE 방식으로, 슬라이딩 윈도우 기반 밀도 추정이다.
  3. 강화 학습 (Reinforcement Learning)
    • 정의: 에이전트가 환경과 상호작용하며 보상을 극대화하는 정책(행동 전략)을 학습하는 방식이다.
    • 주요 접근법 및 관련 알고리즘:
      • 값 기반 (Value-Based): 상태 또는 상태-행동 쌍의 가치를 학습한다.
        • Q-Learning: Q값을 반복적으로 갱신해 최적 정책을 찾는다.
        • Deep Q Network (DQN): Q-Learning에 신경망을 적용하여 고차원 상태를 처리한다.
        • Double Q-Learning: Q-Learning의 과추정을 줄인다.
        • SARSA: on-policy 방식의 Q-learning이다.
        • Rainbow DQN: 여러 개선 기법을 통합한 DQN 구조이다.
      • 정책 기반 (Policy-Based): 정책을 직접 학습하고 최적화한다.
        • REINFORCE: 기대 보상을 최대화하도록 정책 확률을 직접 업데이트한다.
        • Policy Gradient: 정책에 직접 기울기를 계산하여 학습한다.
        • Proximal Policy Optimization (PPO): KL 발산을 제한해 안정적으로 정책을 업데이트한다.
        • Trust Region Policy Optimization (TRPO): Trust Region 안에서만 정책을 업데이트한다.
      • 액터-크리틱 (Actor-Critic): 값 함수(크리틱)와 정책(액터)을 함께 학습한다.
        • A2C, A3C: 액터와 크리틱을 분리해 서로를 보완하며 학습한다.
        • Deep Deterministic Policy Gradient (DDPG): 연속 액션을 다루는 deterministic 정책 기반 알고리즘이다.
        • Twin Delayed DDPG (TD3): DDPG의 overestimation 문제를 개선한 구조이다.
        • Soft Actor-Critic (SAC): stochastic 정책을 사용하며 entropy 보상을 포함한다.
      • 모델 기반 (Model-Based): 환경의 동작 방식(모델)을 학습하거나 사용하여 계획한다.
        • MuZero: 환경 모델 없이도 상태 전이와 보상을 예측하며 학습한다.
        • Dreamer: 상태-행동 예측을 위한 모델을 학습해 시뮬레이션으로 탐색을 효율화한다.
      • 심화 기술 (Advanced Techniques): (세부 내용은 V.E장에서 다룸)
  4. 준지도 학습 (Semi-Supervised Learning)
    • 정의: 라벨이 있는 데이터와 없는 데이터를 함께 활용하여 학습한다.
    • 관련 기법:
      • Label Propagation: 그래프 기반으로 라벨을 전파한다.
      • Pseudo-Labeling: 예측 결과를 임시 라벨로 사용해 비라벨 데이터를 학습에 포함시킨다.
      • FixMatch: 강한 증강에 대해 confident prediction만 반영하는 기법이다.
  5. 자기지도 학습 (Self-Supervised Learning)
    • 정의: 데이터 내부의 특성에서 스스로 레이블을 생성해 학습하는 방법 (비지도 학습의 한 형태). 주로 표현 학습(Representation Learning)에 사용된다.
    • 관련 기법:
      • SimCLR, BYOL: 대조 학습(Contrastive Learning) 기반으로 표현을 학습한다.
      • MAE, SimMIM: 입력의 일부를 마스크하고 복원하는 과제를 통해 표현을 학습한다.
      • DINO, DINOv2: 예측 대상의 다양한 증강본을 통해 표현을 정렬한다.

II. 주요 머신러닝 모델 및 알고리즘 (Key ML Models & Algorithms)

A. 모델 분류 기준 (Model Classification Criteria)

  1. 파라메트릭 모델 (Parametric Models)
    • 정의: 모델 구조가 고정되어 있으며, 학습을 통해 정해진 수의 파라미터만 학습한다.
    • 예시: Linear Regression, Logistic Regression, LDA, Naive Bayes, Neural Network (구조 고정 시), Transformer, Diffusion Model (구조 고정 시).
  2. 비파라메트릭 모델 (Non-Parametric Models)
    • 정의: 모델 복잡도가 데이터 크기에 따라 유동적으로 증가하며, 전체 데이터가 모델의 일부가 될 수 있다.
    • 예시: KNN, Decision Tree, Random Forest, KDE, Parzen Window.
  3. 준파라메트릭 모델 (Semi-Parametric Models)
    • 정의: 모델 일부는 파라메트릭, 일부는 비파라메트릭 특성을 가진다.
    • 예시: Gaussian Process, Generalized Additive Model (GAM), Cox Model (생존 분석).

B. 선형 모델 (Linear Models)

  • Linear Regression: 입력과 출력 사이의 선형 관계를 추정하는 회귀 모델이다.
  • Polynomial Regression: 입력 변수의 다항식을 사용해 비선형 관계를 모델링한다 (선형 모델의 확장).
  • Logistic Regression: 입력 변수의 선형 조합을 통해 이진 분류 클래스 확률을 예측한다.
  • Softmax Regression: 다중 클래스 분류를 위한 확장형 선형 모델이다. 출력층에 Softmax 함수를 적용해 확률 분포를 만든다.
  • Linear Discriminant Analysis (LDA): 클래스 간 분산을 최대화하고 클래스 내 분산을 최소화하는 선형 판별 분류 모델이다. (차원 축소 기법으로도 사용됨 - II.H 참고)
  • Ridge Regression: L2 정규화를 사용하여 과적합을 줄이는 선형 회귀다.
  • Lasso Regression: L1 정규화를 사용하여 가중치 희소성을 유도하는 회귀다.
  • Elastic Net: L1과 L2 정규화를 혼합하여 사용하는 회귀 방법이다.

C. 결정 트리 및 앙상블 (Decision Trees & Ensembles)

  1. Decision Tree: 데이터 특성을 기반으로 조건 분기를 반복하여 예측하는 나무 구조 모델이다.
  2. 앙상블 학습 (Ensemble Learning): 여러 개의 약한 모델을 조합해 더 강한 모델을 만든다.
    • 배깅 (Bagging): 독립적인 모델들을 병렬로 학습시켜 결합한다 (분산 감소 효과).
      • Random Forest: 다수의 결정 트리를 훈련 데이터의 bootstrap 샘플 및 특징 서브셋으로 학습하여 평균/다수결로 예측한다.
      • Extra Trees (Extremely Randomized Trees): 트리 구조 생성 시 분기점과 특징을 더욱 무작위화하여 편차를 줄인다.
    • 부스팅 (Boosting): 모델들을 순차적으로 학습하며 이전 모델의 오류를 보정한다 (편향 감소 효과).
      • AdaBoost (Adaptive Boosting): 이전 모델이 틀린 샘플에 가중치를 부여해 다음 모델을 학습시킨다.
      • Gradient Boosting Machines (GBM): 이전 모델의 잔여 오차(gradient)를 학습하여 점진적으로 성능을 개선한다.
      • XGBoost: 정규화와 가지치기, 병렬 처리 등을 추가하여 성능과 속도를 높인 GBM 기법이다.
      • LightGBM: 히스토그램 기반 분할과 리프 중심 트리 성장으로 학습 속도가 매우 빠르다.
      • CatBoost: 범주형 변수 처리에 특화되어 있으며, 과적합 방지 기술이 내장되어 있다.
    • 스태킹 / 보팅 / 블렌딩 (Stacking / Voting / Blending): 여러 다른 모델들의 예측을 결합하는 방식이다.
      • Voting: 각 모델의 예측을 다수결(분류) 또는 평균(회귀)으로 결합한다.
      • Stacking: 여러 기본 모델들의 예측 결과를 입력으로 사용하여 최종 예측을 하는 메타 모델을 학습시킨다.
      • Blending: 홀드아웃(검증) 데이터셋에 대한 기본 모델들의 예측을 입력으로 메타 모델을 학습시킨다.

D. 서포트 벡터 머신 (Support Vector Machines - SVM)

  • Support Vector Machine (Classifier): 마진(margin) 최대화를 통해 최적의 분류 경계(결정 초평면)를 학습하는 모델이다. 커널 기법(Kernel Trick)을 통해 비선형 문제도 효과적으로 해결할 수 있다.
  • Support Vector Regression (SVR): SVM의 원리를 회귀 문제에 적용한 모델이다. 마진 내 오류는 허용하면서 마진 밖 오류를 최소화한다.

E. 베이즈 모델 (Bayesian Models)

  • Optimal Bayes Classifier: 베이즈 정리를 기반으로 사전 확률과 우도(likelihood)를 이용하여 분류 오류를 최소화하는 이론적인 최적 분류기이다. 실제 구현은 확률 분포 추정이 필요하다.
  • Naive Bayes: 모든 특징들이 클래스에 대해 조건부 독립(conditionally independent)이라고 가정하고 베이즈 정리를 적용하는 간단하면서도 효과적인 분류기이다.

F. 거리 기반 모델 (Distance-Based Models)

  • K-Nearest Neighbors (KNN): 새로운 데이터 포인트 주변의 가장 가까운 k개의 훈련 데이터 이웃을 참조하여 다수결(분류) 또는 평균(회귀)으로 예측하는 비파라메트릭 모델이다.
  • Minimum Distance Classifier: 각 클래스의 평균(또는 프로토타입)까지의 유클리드 거리(또는 다른 거리 척도)를 계산하여 가장 가까운 클래스로 분류하는 간단한 분류기이다.

G. 군집화 알고리즘 (Clustering Algorithms)

  • K-Means: 데이터를 k개의 중심점(centroid) 기준으로 반복적으로 할당하고 중심점을 업데이트하여 클러스터링한다.
  • Hierarchical Clustering: 데이터를 유사도(또는 거리) 기반으로 계층적인 트리 구조(덴드로그램)로 병합(agglomerative)하거나 분할(divisive)한다.
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise): 데이터 포인트의 밀도를 기반으로 클러스터를 형성하며, 임의 형태의 클러스터를 찾고 잡음(noise) 데이터 식별에 강건하다.
  • Gaussian Mixture Model (GMM): 데이터가 여러 개의 가우시안(정규) 분포의 혼합으로 구성되었다고 가정하고, 각 데이터 포인트가 각 분포에 속할 확률을 추정하여 클러스터링한다 (Soft Clustering).
  • Spectral Clustering: 데이터 포인트 간의 유사도를 그래프로 표현하고, 그래프 라플라시안 행렬의 고유벡터(eigenvectors)를 사용하여 저차원 공간으로 임베딩한 후 클러스터링을 수행한다. 복잡한 형태의 클러스터 분리에 효과적이다.

H. 차원 축소 및 표현 학습 (Dimensionality Reduction & Representation Learning)

  1. 선형 차원 축소 (Linear Dimensionality Reduction)
    • Principal Component Analysis (PCA): 데이터의 분산을 최대한 보존하는 주성분(principal components) 축으로 데이터를 투영하여 차원을 축소한다 (비지도).
    • Linear Discriminant Analysis (LDA): 클래스 간 분리를 최대화하는 축으로 데이터를 투영하여 차원을 축소한다 (지도). (II.B 참고)
    • Independent Component Analysis (ICA): 원본 데이터를 통계적으로 독립적인 비가우시안(non-Gaussian) 신호들의 선형 조합으로 분리하여 독립적인 성분을 추출한다.
    • Non-negative Matrix Factorization (NMF): 원본 행렬을 두 개의 음수 값을 갖지 않는 행렬의 곱으로 분해하여, 부분 기반(parts-based) 표현을 추출하는 데 유용하다 (예: 토픽 모델링).
  2. 비선형 차원 축소 (Non-linear Dimensionality Reduction)
    • t-Distributed Stochastic Neighbor Embedding (t-SNE): 고차원 공간에서의 데이터 포인트 간 유사도(조건부 확률)를 저차원 공간(주로 2D/3D)에서도 최대한 보존하도록 임베딩하여 시각화에 주로 사용된다.
    • Uniform Manifold Approximation and Projection (UMAP): 데이터의 국소적 위상 구조(local manifold structure)와 전역적 구조(global structure)를 모두 보존하도록 저차원 공간으로 임베딩하며, t-SNE보다 계산 효율성이 높고 시각화 및 일반 차원 축소에 사용된다.
    • Isomap (Isometric Mapping): 데이터 포인트 간의 측지선 거리(geodesic distance, 매니폴드 상의 최단 거리)를 기반으로 다차원 척도법(MDS)을 적용하여 비선형 구조를 보존하며 차원을 축소한다.
    • Locally Linear Embedding (LLE): 각 데이터 포인트가 이웃들의 선형 조합으로 잘 근사될 수 있다고 가정하고, 이러한 지역적 선형 관계를 저차원 공간에서도 유지하도록 임베딩한다.
  3. 표현 학습 (Representation Learning) - 주로 Autoencoder 기반
    • Autoencoder (AE): 인코더(encoder)와 디코더(decoder)로 구성된 신경망 구조로, 입력을 저차원의 잠재 공간(latent space)으로 압축했다가 다시 원본 입력으로 재구성하도록 학습하여 데이터의 유용한 표현(representation)을 학습한다 (비지도).
    • Denoising Autoencoder (DAE): 입력에 의도적으로 노이즈를 추가한 후 원본 노이즈 없는 입력을 복원하도록 학습하여, 더 강건하고 일반화된 표현을 학습한다.
    • Variational Autoencoder (VAE): 잠재 공간을 확률 분포(주로 가우시안)로 모델링하는 생성형 오토인코더이다. 잠재 공간에서 샘플링하여 새로운 데이터를 생성할 수 있다.
    • β-VAE: VAE의 손실 함수에 가중치(β)를 추가하여 잠재 공간의 각 차원이 더 독립적이고 해석 가능한 의미 단위(disentangled representation)를 학습하도록 유도한다.
    • Diffusion Autoencoder: (Diffusion Model과 관련) 점진적인 노이즈 추가 및 제거 과정을 통해 데이터를 재구성하며 표현을 학습한다.

I. 신경망 기초 (Neural Network Basics)

  • Neural Network (Artificial Neural Network, ANN): 상호 연결된 노드(뉴런)들의 층(layer)으로 구성된 모델이다. 비선형 활성화 함수를 통해 복잡한 패턴을 학습할 수 있으며, 지도, 비지도, 강화 학습 등 다양한 패러다임에 적용될 수 있다.

J. 기타 모델 (Other Models)

  • Gaussian Process Regression (GPR): 함수 자체에 대한 사전 분포(prior distribution, 주로 가우시안 프로세스)를 정의하고, 관측 데이터를 통해 사후 분포(posterior distribution)를 업데이트하여 예측을 수행하는 베이즈 비파라메트릭 회귀 방법이다. 예측의 불확실성 추정이 가능하다.
  • Generalized Additive Model (GAM): 선형 회귀를 확장하여 각 특징 변수에 대해 비선형 함수(주로 스플라인)를 적용한 후 이들의 합으로 예측하는 준파라메트릭 모델이다. 선형 모델의 해석 가능성을 유지하면서 비선형 관계를 모델링할 수 있다.
  • Cox Proportional Hazards Model: 생존 분석(survival analysis)에 주로 사용되는 준파라메트릭 모델로, 특정 시점에서의 사건 발생 위험률(hazard rate)을 공변량(covariates)의 함수로 모델링한다. 기저 위험 함수(baseline hazard function)는 비모수적으로, 공변량의 효과(계수)는 모수적으로 추정한다.

III. 딥러닝 아키텍처 (Deep Learning Architectures)

딥러닝은 여러 개의 은닉층을 가진 심층 신경망(Deep Neural Network, DNN)을 사용하여 복잡한 문제를 해결하는 머신러닝의 하위 분야이다. 특정 과업에 특화된 다양한 아키텍처가 개발되었다.

A. CNN (Convolutional Neural Network) 계열

  • LeNet: 최초의 실용적인 CNN 중 하나로, 주로 손글씨 숫자 인식(MNIST)에 사용되었다.
  • AlexNet: GPU를 활용하여 대규모 이미지 분류(ImageNet)에서 획기적인 성능을 보여 딥러닝 부흥을 이끈 모델이다.
  • VGGNet: 3x3 크기의 작은 합성곱 필터를 깊게 쌓아 네트워크 깊이의 중요성을 보여준 모델이다.
  • ResNet (Residual Network): 잔차 연결(residual connection) 또는 스킵 연결(skip connection)을 도입하여 매우 깊은 네트워크(수백~수천 개 층)의 학습을 가능하게 하고 기울기 소실 문제를 완화했다.
  • DenseNet (Densely Connected Convolutional Network): 각 층이 이후의 모든 층과 직접 연결되는 구조(dense connection)를 통해 특징 재사용(feature reuse)을 극대화하고 정보 흐름을 개선했다.
  • EfficientNet: 네트워크의 깊이(depth), 너비(width), 입력 해상도(resolution)를 복합적인 스케일링 방법(compound scaling)으로 균형 있게 확장하여 효율성과 성능을 동시에 높인 모델이다.

B. 순환 신경망 (RNN) 및 관련 구조 (Recurrent Neural Networks & Related Architectures)

  • RNN (Vanilla RNN): 순환 연결을 통해 이전 스텝의 정보를 현재 스텝의 계산에 활용하여 순차 데이터(sequence data)를 처리하는 기본적인 순환 구조이다. 장기 의존성 문제(long-term dependency problem)에 취약하다.
  • LSTM (Long Short-Term Memory): 입력, 망각, 출력 게이트(gate) 메커니즘을 도입하여 장기 의존성 문제를 효과적으로 해결한 RNN의 변형 구조이다.
  • GRU (Gated Recurrent Unit): LSTM의 구조를 간소화(업데이트 게이트, 리셋 게이트 사용)하여 계산 효율성을 높이면서 유사한 성능을 보이는 구조이다.
  • Bi-LSTM (Bidirectional LSTM): 순방향과 역방향의 LSTM을 모두 사용하여 과거와 미래의 문맥 정보를 동시에 활용하는 구조이다.
  • Seq2Seq (Sequence-to-Sequence): 인코더 RNN이 입력 시퀀스를 고정된 크기의 문맥 벡터로 압축하고, 디코더 RNN이 이 문맥 벡터를 받아 출력 시퀀스를 생성하는 구조이다. 기계 번역 등에 사용된다. 초기 Seq2Seq 모델은 고정된 크기의 문맥 벡터가 정보 병목 현상을 일으킬 수 있다는 한계가 있었다.

C. 어텐션 메커니즘 (Attention Mechanism)

  • 정의: 어텐션은 모델이 출력 시퀀스의 특정 부분을 생성할 때, 입력 시퀀스 전체에서 관련성이 높은 부분에 '집중'하여 가중치를 부여하는 메커니즘이다. 이는 인간이 정보를 처리할 때 중요한 부분에 집중하는 방식과 유사하다.
  • 역할: 초기에는 RNN 기반 Seq2Seq 모델의 한계(고정된 문맥 벡터로 인한 정보 손실)를 극복하기 위해 도입되었다. 디코더가 각 타임 스텝에서 입력 시퀀스의 모든 은닉 상태(hidden states)를 참고하되, 현재 예측과 관련성이 높은 상태에 더 높은 가중치(어텐션 스코어)를 부여하여 동적인 문맥 벡터를 생성한다.
  • 핵심 요소 (Query, Key, Value): 일반적인 어텐션 메커니즘은 쿼리(Query, Q), 키(Key, K), 값(Value, V)이라는 세 가지 요소로 설명될 수 있다.
    • 쿼리(Q): 현재 타겟(예: 디코더의 현재 상태)을 나타낸다. "무엇을 찾고 있는가?"에 해당한다.
    • 키(K): 입력 시퀀스의 각 요소(예: 인코더의 각 은닉 상태)를 나타내는 식별자이다. 쿼리와 비교되어 관련성을 계산하는 데 사용된다. "내가 무엇을 가지고 있는가?"에 해당한다.
    • 값(V): 입력 시퀀스의 각 요소에 대한 실제 내용 또는 표현이다. 키와 쿼리의 관련성(어텐션 가중치)에 따라 가중 합산되어 최종 출력을 만드는 데 사용된다. "내가 실제로 제공하는 것은 무엇인가?"에 해당한다.
    • 계산 과정: 쿼리와 모든 키의 유사도(예: 내적)를 계산하여 점수(score)를 얻고, 이를 소프트맥스(softmax) 함수를 통해 정규화하여 어텐션 가중치를 구한다. 이 가중치를 해당 키에 대응하는 값들에 곱하여 가중 합(weighted sum)을 계산하면 최종 어텐션 출력(문맥 벡터)이 된다.
  • 진화: 어텐션 메커니즘은 Seq2Seq 모델의 성능을 크게 향상시켰으며, 이후 트랜스포머 아키텍처에서는 순환 구조를 완전히 대체하는 핵심 구성 요소(셀프 어텐션)로 발전했다.

D. Transformer 계열 (Transformer Family)

  • Transformer: RNN의 순환 구조를 완전히 제거하고, 셀프 어텐션(Self-Attention) 메커니즘만을 사용하여 입력 시퀀스 내의 요소 간 관계(의존성)를 직접 모델링하는 혁신적인 아키텍처이다. 순환 구조가 없어 병렬 처리가 매우 용이하며, 이는 대규모 모델 학습 시간을 크게 단축시켰다.
    • 셀프 어텐션 (Self-Attention): 입력 시퀀스 내의 각 요소(예: 단어)가 다른 모든 요소들과의 관련성을 계산하여 자신의 표현(representation)을 업데이트하는 방식이다. 이를 통해 모델은 문맥 내에서 단어의 의미를 더 잘 파악할 수 있다. Q, K, V 벡터가 모두 동일한 입력 시퀀스로부터 생성된다.
    • 멀티 헤드 어텐션 (Multi-Head Attention): 어텐션 계산을 여러 개의 '헤드'로 나누어 병렬로 수행하고 결과를 결합하는 방식이다. 각 헤드는 서로 다른 표현 부분 공간(representation subspace)에서 Q, K, V를 학습하여, 모델이 다양한 관점에서 정보의 관계를 파악하고 집중할 수 있도록 한다.
  • BERT (Bidirectional Encoder Representations from Transformers): Transformer의 인코더 구조만을 사용하여, 문장 내 양방향 문맥을 동시에 고려하여 단어 및 문장 표현을 사전 학습(pre-training)하는 모델이다. 주로 자연어 이해(NLU) 작업에 강점을 보이며, 마스크된 언어 모델(Masked Language Model, MLM)과 다음 문장 예측(Next Sentence Prediction, NSP)이라는 두 가지 목표로 사전 학습된다.
  • GPT (Generative Pre-trained Transformer): Transformer의 디코더 구조를 기반으로, 대규모 텍스트 데이터로 사전 학습되어 주로 텍스트 생성(text generation) 작업에 강력한 성능을 보이는 모델이다. 이전 단어들을 바탕으로 다음 단어를 예측하는 방식으로 학습하며, 단방향(왼쪽에서 오른쪽) 문맥만을 고려한다.
  • T5 (Text-to-Text Transfer Transformer): 모든 NLP 문제를 텍스트 입력에서 텍스트 출력으로 변환하는 통일된 프레임워크(text-to-text)를 제안한 모델이다. 인코더-디코더 구조를 사용한다.
  • 최신 대형 언어 모델 (Large Language Models - LLMs):
    • 오픈소스 기반: LLaMA, Falcon, Qwen, Mistral 등
    • 상용/주요 모델: GPT-4o, Claude 3, Gemini 등 (멀티모달 기능 포함)

E. Vision Transformer (ViT) 계열

  • ViT (Vision Transformer): 이미지를 여러 개의 작은 패치(patch)로 나누고, 각 패치를 시퀀스 데이터처럼 처리하여 Transformer 구조를 이미지 인식에 적용한 모델이다.
  • DeiT (Data-efficient Image Transformers): ViT를 더 적은 데이터로도 효율적으로 학습시키기 위해 지식 증류(knowledge distillation) 등의 기법을 사용한 모델이다.
  • Swin Transformer: 이미지를 계층적(hierarchical)으로 처리하고, 이동된 윈도우(shifted window) 기반의 로컬 어텐션을 사용하여 계산 효율성과 성능을 높인 ViT 변형 모델이다.
  • ConvNeXt: CNN의 고전적인 구조(예: ResNet)에 Transformer의 설계 원칙(예: 레이어 정규화, 활성화 함수 변경 등)을 점진적으로 적용하여 CNN의 성능을 크게 향상시킨 모델이다.

F. 그래프 신경망 (Graph Neural Networks - GNN)

  • GCN (Graph Convolutional Network): 그래프 구조 데이터에서 노드의 특징을 업데이트할 때, 인접 노드들의 특징 정보를 평균(또는 다른 집계 함수)하여 사용하는 기본적인 그래프 합성곱 방식이다.
  • GAT (Graph Attention Network): 노드 특징을 집계할 때, 인접 노드들과의 관계 중요도(어텐션 가중치)를 학습하여 가중 평균을 사용하는 방식이다.
  • GraphSAGE (Graph Sample and Aggregate): 대규모 그래프에서 모든 이웃 대신 일부 이웃을 샘플링하여 특징을 집계함으로써 확장성과 효율성을 높인 방식이다.
  • Graph Transformer: Transformer의 셀프 어텐션 메커니즘을 그래프 데이터에 적용하여 노드 간의 장거리 의존성 및 복잡한 관계를 모델링하는 구조이다.

G. 생성 모델 (Generative Models)

  • GAN (Generative Adversarial Network): 실제 데이터와 유사한 데이터를 생성하는 생성자(Generator)와 생성된 데이터가 실제인지 가짜인지 판별하는 판별자(Discriminator)가 서로 경쟁하며 학습하는 구조이다. 고품질 이미지 생성 등에 뛰어나다.
  • VAE (Variational Autoencoder): 확률적인 잠재 공간을 학습하여 데이터를 생성하는 오토인코더 기반 생성 모델이다. (II.H.3 참고)
  • Diffusion Models: 데이터에 점진적으로 노이즈를 추가하는 과정(forward process)과 노이즈로부터 원본 데이터를 점진적으로 복원하는 과정(reverse process)을 학습하여 고품질의 다양한 데이터를 생성하는 모델이다. GAN보다 학습이 안정적이고 생성된 샘플의 다양성이 높다는 장점이 있다.
  • Latent Diffusion Models (LDM): 고차원 데이터(예: 이미지)를 직접 다루는 대신, 저차원의 압축된 잠재 공간(latent space)에서 확산(diffusion) 및 복원 과정을 수행하여 계산 효율성을 높인 모델이다 (예: Stable Diffusion).
  • ControlNet: 사전 학습된 대규모 확산 모델(예: Stable Diffusion)에 추가적인 조건(예: 스케치, 자세)을 입력하여 생성 과정을 제어할 수 있도록 확장한 구조이다.

H. 멀티모달 / 분할 / 3D (Multimodal / Segmentation / 3D)

  • SAM (Segment Anything Model): 입력 이미지와 프롬프트(예: 클릭, 박스)를 받아 이미지 내의 어떤 객체든 분할(segmentation)할 수 있는 범용적인 제로샷(zero-shot) 분할 모델이다.
  • NeRF (Neural Radiance Fields): 여러 각도에서 촬영된 2D 이미지들로부터 3D 장면을 연속적인 신경망 표현(신경 광채 필드)으로 학습하여, 새로운 시점에서의 이미지를 사실적으로 렌더링하는 기술이다.

IV. 모델 학습 및 평가 (Model Training & Evaluation)

A. 손실 함수 (Loss Functions)

모델의 예측값과 실제 값 사이의 오차를 측정하는 함수이다. 훈련 목표는 이 손실을 최소화하는 것이다.

  1. 회귀 문제용 (Regression Loss)
    • MSE (Mean Squared Error): 제곱 오차의 평균으로, 큰 오차에 민감하다.
    • MAE (Mean Absolute Error): 절대 오차의 평균으로, 이상치(outlier)에 덜 민감하다.
    • Huber Loss: 오차가 작을 때는 MSE처럼, 클 때는 MAE처럼 동작하여 두 함수의 장점을 결합한다.
    • Log-Cosh Loss: 로그 코사인 하이퍼볼릭 함수 기반으로, MSE와 유사하지만 더 부드러운(smooth) 손실 함수이다.
    • Quantile Loss: 예측 값이 특정 분위수(quantile)를 따르도록 유도하여, 예측 구간 추정 등에 사용된다.
  2. 분류 문제용 (Classification Loss)
    • Binary Cross-Entropy (Log Loss): 이진 분류 문제에서 모델의 확률 출력과 실제 레이블 간의 차이를 측정한다.
    • Categorical Cross-Entropy: 다중 클래스 분류 문제에서 사용되는 교차 엔트로피 손실이다.
    • Focal Loss: 정답을 맞추기 쉬운(easy) 샘플보다 어려운(hard) 샘플의 손실에 더 큰 가중치를 부여하여, 클래스 불균형 문제 등에 효과적이다 (주로 객체 탐지).
    • Hinge Loss: SVM에서 주로 사용되며, 올바른 클래스의 점수가 다른 클래스의 점수보다 특정 마진(margin) 이상 높도록 유도한다.
    • Squared Hinge Loss: Hinge Loss를 제곱한 형태로, 미분 가능하며 부드러운 경계를 만든다.
  3. 정보 이론 기반 손실 (Information Theory Based Loss)
    • KL Divergence (Kullback-Leibler Divergence): 두 확률 분포 간의 비대칭적인 거리(차이)를 측정한다. 예측 분포가 실제 분포에 얼마나 가까운지를 나타낸다.
    • Jensen-Shannon Divergence (JSD): KL Divergence를 대칭적으로 만들고 값 범위를 또는 [0, log2]로 제한하여 안정화시킨 거리 척도이다.
    • Cross-Entropy: (분류 손실과 연관) 실제 분포 P와 예측 분포 Q가 있을 때, P의 관점에서 Q를 사용하여 정보를 인코딩하는 데 필요한 평균 비트 수를 나타낸다. KL Divergence와 밀접한 관련이 있다 (CrossEntropy(P, Q) = Entropy(P) + KL(P | | Q)).
    • Energy Distance: 두 확률 분포 간의 통계적 거리를 측정하는 지표 중 하나로, 특성 함수(characteristic function)를 기반으로 한다.

B. 최적화 알고리즘 (Optimization Algorithms)

손실 함수를 최소화하기 위해 모델 파라미터(가중치)를 업데이트하는 방법이다.

  1. 1차 미분 기반 최적화 (First-Order Optimization): 기울기(gradient) 정보만 사용한다.
    • Gradient Descent (GD): 전체 훈련 데이터를 사용하여 한 번에 파라미터를 업데이트한다. 데이터가 크면 느리다.
    • Stochastic Gradient Descent (SGD): 무작위로 선택한 하나의 데이터 샘플 또는 작은 미니배치를 사용하여 파라미터를 업데이트한다. 빠르지만 불안정할 수 있다.
    • Mini-Batch Gradient Descent: 전체 데이터와 SGD의 절충안으로, 일정 크기의 미니 배치 단위로 파라미터를 업데이트한다. 가장 널리 사용된다.
    • Momentum: 이전 업데이트 방향을 일정 비율 유지하여 관성처럼 이동함으로써 지역 최적점(local minimum) 탈출 및 수렴 속도 개선을 돕는다.
    • Nesterov Accelerated Gradient (NAG): Momentum을 개선하여, 현재 위치가 아닌 관성 방향으로 미리 이동한 지점에서 기울기를 계산하여 업데이트한다.
    • Adagrad (Adaptive Gradient Algorithm): 각 파라미터마다 학습률을 다르게 조정한다. 자주 업데이트되지 않은 파라미터는 더 큰 학습률을 갖는다.
    • Adadelta: Adagrad의 학습률이 계속 감소하는 문제를 해결하기 위해, 과거 기울기 정보의 양을 제한한다.
    • RMSProp (Root Mean Square Propagation): Adagrad와 유사하게 파라미터별 학습률을 조정하지만, 지수 이동 평균을 사용하여 최근 기울기 정보에 더 큰 가중치를 둔다.
    • Adam (Adaptive Moment Estimation): Momentum과 RMSProp의 장점을 결합한 방식으로, 1차 모멘텀(평균)과 2차 모멘텀(분산의 제곱근)을 함께 사용하여 파라미터별 학습률을 적응적으로 조정한다. 널리 사용되는 최적화 기법이다.
  2. 2차 미분 기반 최적화 (Second-Order Optimization): 헤시안 행렬(Hessian matrix) 등 2차 미분(곡률) 정보를 사용한다. 수렴 속도가 빠를 수 있지만 계산 비용이 매우 높다.
    • Newton's Method: 헤시안 행렬의 역행렬을 사용하여 2차 근사를 통해 파라미터를 업데이트한다.
    • Quasi-Newton Methods (준-뉴턴 방법): 헤시안 행렬의 역행렬을 직접 계산하는 대신 근사하여 사용한다.
      • BFGS (Broyden–Fletcher–Goldfarb–Shanno): 가장 널리 사용되는 준-뉴턴 방법 중 하나이다.
      • L-BFGS (Limited-memory BFGS): 메모리 사용량을 제한하여 대규모 문제에 적용 가능하도록 BFGS를 개선한 방법이다.
    • Conjugate Gradient Method: 헤시안 정보를 직접 사용하지 않으면서도, 매 스텝마다 이전 방향과 켤레(conjugate)인 방향으로 이동하여 효율적으로 최적점을 탐색한다.
    • Gauss-Newton Algorithm: 비선형 최소 제곱(non-linear least squares) 문제에 특화된 방법으로, 헤시안 대신 자코비안(Jacobian) 행렬을 사용한다.
    • Levenberg-Marquardt Algorithm (LMA): Gauss-Newton 방법과 Gradient Descent 방법을 절충하여, 안정성과 수렴 속도를 개선한 방법이다.
  3. 제약 최적화 (Constrained Optimization): 특정 제약 조건 하에서 목표 함수를 최적화한다.
    • Lagrange Multipliers: 등식 제약 조건(equality constraints)을 목표 함수에 통합하여 제약 없는 문제로 변환한다.
    • Augmented Lagrangian Methods: 라그랑주 승수법에 벌점 항(penalty term)을 추가하여 수렴성과 안정성을 개선한다.
    • Sequential Quadratic Programming (SQP): 각 반복 단계에서 원본 비선형 제약 문제를 이차 계획법(Quadratic Programming) 부문제로 근사하여 해를 구한다.
    • Interior-Point Methods / Barrier Methods: 부등식 제약 조건(inequality constraints)을 만족하는 영역 내부에서 시작하여, 제약 경계에 가까워질수록 큰 값을 갖는 장벽 함수(barrier function)를 목표 함수에 추가하여 최적점을 탐색한다.
    • Penalty Methods: 제약 조건을 위반할 경우 벌점(penalty)을 부과하는 항을 목표 함수에 추가하여 최적화한다.
    • Trust-Region Methods: 현재 해 주변의 신뢰 영역(trust region) 내에서 모델 함수(주로 2차 함수)를 최소화하는 방식으로 다음 해를 결정하여 안정성을 확보한다.
  4. 메타휴리스틱 알고리즘 (Metaheuristic Algorithms): 문제에 대한 가정이 적고, 전역 최적해(global optimum)를 찾기 위한 경험적(heuristic) 탐색 기법이다. 주로 복잡하거나 미분 불가능한 문제에 사용된다.
    • Genetic Algorithm (GA): 생물의 진화 과정을 모방하여, 해집단(population)을 유지하면서 선택(selection), 교차(crossover), 돌연변이(mutation) 연산을 통해 세대를 반복하며 더 좋은 해를 탐색한다.
    • Differential Evolution (DE): GA와 유사하지만, 해 벡터들 간의 차이를 이용하여 새로운 후보 해를 생성하는 방식이다.
    • Particle Swarm Optimization (PSO): 새 떼나 물고기 떼의 사회적 행동을 모방하여, 여러 입자(particle)들이 각자의 경험(개인 최적해)과 집단의 경험(전역 최적해)을 바탕으로 해 공간을 탐색한다.
    • Simulated Annealing (SA): 금속의 담금질(annealing) 과정에서 영감을 얻은 방법으로, 온도를 점차 낮추면서 현재 해보다 나쁜 해도 일정 확률로 수용하여 지역 최적점에서 벗어나 전역 최적점을 찾으려 시도한다.
    • Ant Colony Optimization (ACO): 개미들이 먹이를 찾아 집으로 돌아갈 때 페로몬(pheromone)을 남기는 행동을 모방하여, 인공 개미들이 해 공간을 탐색하며 페로몬 농도를 조절하여 최적 경로(해)를 찾는 방식이다. 주로 조합 최적화 문제에 사용된다.
    • Tabu Search (TS): 지역 탐색(local search)을 기반으로 하되, 최근에 방문했던 해나 이동(move)을 금지 목록(tabu list)에 저장하여 탐색 과정이 순환(cycling)에 빠지는 것을 방지하고 다양한 영역을 탐색하도록 유도한다.
    • Iterated Local Search (ILS): 좋은 지역 최적해를 찾은 후, 현재 해를 약간 변경(perturbation)하고 다시 지역 탐색을 수행하는 과정을 반복하여 더 나은 해를 찾으려는 기법이다.
    • Hill Climbing: 현재 해에서 이웃한 해들 중 가장 좋은 해로만 이동하는 단순한 지역 탐색 기법이다. 지역 최적점에 빠지기 쉽다.
    • Sparse Evolutionary Search: (비교적 덜 일반적) 희소한 연결 구조나 특징 부분집합 등을 진화적으로 탐색하는 데 특화된 기법일 수 있다.
  5. 이산 최적화 (Discrete Optimization): 결정 변수가 정수 또는 이산적인 값을 갖는 최적화 문제이다.
    • Branch-and-Bound: 해 공간을 트리 형태로 분할(branch)하고, 각 노드에서 해의 상한 또는 하한(bound)을 계산하여 가능성 없는 가지를 제거(prune)하며 최적해를 탐색한다.
    • Branch-and-Cut: Branch-and-Bound 방법에 절단 평면(cutting plane)을 추가하여 해 공간을 더욱 효과적으로 줄여나가는 기법이다.
    • Branch-and-Price: 대규모 정수 계획 문제에서 열 생성(column generation) 기법과 분지 한정법(Branch-and-Bound)을 결합한 방법이다.
    • Hungarian Algorithm: 이분 그래프(bipartite graph)에서 최대 가중치 매칭(maximum weight matching) 또는 최소 비용 할당(minimum cost assignment) 문제를 효율적으로 푸는 알고리즘이다.
  6. 다목적 최적화 (Multi-Objective Optimization): 두 개 이상의 상충하는 목적 함수를 동시에 최적화하는 문제이다. 단일 최적해가 아닌 파레토 최적해(Pareto optimal solutions) 집합을 찾는 것을 목표로 한다.
    • NSGA-II (Non-dominated Sorting Genetic Algorithm II): 파레토 지배 관계(Pareto dominance)와 혼잡도 거리(crowding distance)를 사용하여 다양한 파레토 최적해를 효율적으로 찾는 대표적인 유전 알고리즘 기반 다목적 최적화 기법이다.
    • Weighted Sum Method: 각 목적 함수에 가중치를 부여하여 단일 목적 함수로 변환한 후 최적화한다. 가중치에 따라 다른 파레토 해를 찾을 수 있다.
    • ε-Constraint Method: 하나의 목적 함수를 최적화하면서 나머지 목적 함수들은 특정 값(ε) 이하 또는 이상이 되도록 제약 조건으로 설정하는 방법이다.

C. 정규화 기법 (Regularization Techniques)

모델의 복잡도를 제어하여 과적합(Overfitting)을 방지하고 일반화 성능을 높이는 기법이다.

  1. 매개변수 규제 (Parameter Norm Penalties): 모델의 가중치(파라미터) 크기에 직접 제약을 가한다.
    • L1 Regularization (Lasso): 가중치의 절댓값 합()을 손실 함수에 추가하여, 일부 가중치를 정확히 0으로 만들어 특징 선택(feature selection) 효과를 유도한다 (희소성, sparsity).
    • L2 Regularization (Ridge / Weight Decay): 가중치의 제곱 합()을 손실 함수에 추가하여, 가중치 값을 전반적으로 작게 만들어 모델을 부드럽게 한다.
    • Elastic Net: L1과 L2 정규화를 선형 결합하여 사용하는 방식으로, L1의 특징 선택 효과와 L2의 안정성(특히 상관관계 높은 특징들이 있을 때)을 동시에 얻으려 한다.
    • Group Lasso: 미리 정의된 특징 그룹 단위로 L1 또는 L2 정규화를 적용하여, 그룹 전체가 선택되거나 제외되도록 유도한다.
  2. 구조적/암시적 규제 (Structural/Implicit Regularization): 학습 과정이나 모델 구조 자체에 제약을 가하여 과적합을 막는다.
    • Dropout: 신경망 훈련 시 각 뉴런(노드)을 일정 확률로 무작위 비활성화(출력을 0으로 만듦)하여, 모델이 특정 뉴런에 과도하게 의존하는 것을 방지하고 여러 개의 작은 모델을 앙상블하는 효과를 낸다.
    • DropConnect: Dropout이 뉴런을 비활성화하는 것과 달리, 뉴런 간의 연결(가중치)을 확률적으로 제거(0으로 만듦)한다.
    • Early Stopping: 훈련 중 검증 세트(validation set)에 대한 성능(예: 손실, 정확도)을 모니터링하다가, 성능이 더 이상 개선되지 않거나 나빠지기 시작하면 훈련을 조기에 중단한다.
    • Data Augmentation: 기존 훈련 데이터를 변형(예: 이미지 회전, 자르기, 밝기 조절)하여 데이터의 양과 다양성을 인위적으로 늘려 모델의 일반화 성능을 높인다.
    • Batch Normalization (BatchNorm): 신경망의 각 층 입력에 대해 미니 배치 단위로 평균과 분산을 계산하여 정규화(평균 0, 분산 1로 조정 후 스케일 및 시프트)함으로써, 학습 과정을 안정화하고 수렴 속도를 높이며 약간의 규제 효과도 제공한다.
    • Layer Normalization (LayerNorm): BatchNorm과 달리 미니 배치가 아닌 개별 데이터 샘플 내의 모든 뉴런(또는 특징)에 대해 정규화를 수행한다. 주로 RNN이나 Transformer와 같이 시퀀스 길이가 가변적인 모델에 사용된다.
    • Weight Decay: 최적화 단계에서 가중치 업데이트 시 현재 가중치 값에 비례하는 항을 빼주는 방식으로, L2 정규화와 동일한 효과를 낸다.
  3. 특수 규제 (Specialized Regularization)
    • Total Variation Regularization: 주로 영상 처리나 역 문제(inverse problem)에서 사용되며, 예측 결과(예: 복원된 이미지)의 총 변동(픽셀 값의 차이 합)을 최소화하여 결과가 부드럽고 노이즈가 적도록 유도하면서도 중요한 경계(edge)는 보존하려 한다.

D. 평가 및 검증 (Evaluation & Validation)

모델의 성능을 측정하고 일반화 능력을 평가하는 방법 및 지표이다.

  1. 분류 문제용 지표 (Classification Metrics)
    • Accuracy (정확도): 전체 샘플 중 올바르게 분류된 샘플의 비율이다. 클래스 불균형이 심할 경우 부적절할 수 있다.
    • Precision (정밀도): 양성(Positive)으로 예측된 샘플 중 실제로 양성인 샘플의 비율이다 (TP / (TP + FP)). 모델이 Positive라고 예측한 것이 얼마나 정확한지를 나타낸다.
    • Recall (재현율 / 민감도): 실제 양성인 샘플 중 모델이 양성으로 올바르게 예측한 샘플의 비율이다 (TP / (TP + FN)). 실제 Positive를 얼마나 잘 찾아내는지를 나타낸다.
    • F1 Score: 정밀도와 재현율의 조화 평균()이다. 두 지표가 모두 중요할 때 사용된다.
    • AUC-ROC (Area Under the Receiver Operating Characteristic Curve): ROC 곡선(다양한 분류 임계값에서 FPR(False Positive Rate) 대비 TPR(True Positive Rate, Recall)을 그린 그래프) 아래의 면적이다. 1에 가까울수록 모델 성능이 좋음을 의미하며, 임계값에 관계없이 모델의 전반적인 판별 능력을 평가한다.
    • PR-AUC (Area Under the Precision-Recall Curve): Precision-Recall 곡선 아래 면적이다. 클래스 불균형이 심한 데이터셋에서는 ROC-AUC보다 더 유용한 평가 지표가 될 수 있다.
    • Cohen’s Kappa: 우연에 의한 예측 일치 수준을 고려하여 평가자 간 또는 모델 예측과 실제 값 간의 일치도를 측정하는 지표이다.
    • Matthews Correlation Coefficient (MCC): 이진 분류 성능을 종합적으로 측정하는 지표로, 클래스 불균형에 강건하며 -1(완전 불일치)부터 +1(완전 일치) 사이의 값을 가진다.
  2. 회귀 문제용 지표 (Regression Metrics)
    • R² (결정 계수, Coefficient of Determination): 모델이 종속 변수의 분산을 얼마나 잘 설명하는지를 나타내는 비율이다 (0~1 사이 값). 1에 가까울수록 설명력이 높다.
    • Adjusted R² (조정된 결정 계수): 독립 변수(특징)의 수가 증가하면 R²가 높아지는 경향을 보정하기 위해 변수 수를 고려한 R² 값이다.
    • RMSE (Root Mean Squared Error): MSE(평균 제곱 오차)에 제곱근을 취한 값으로, 오차의 크기를 원래 데이터와 동일한 단위로 해석할 수 있게 한다.
    • MAPE (Mean Absolute Percentage Error): 실제 값 대비 절대 오차의 백분율 평균이다. 오차의 상대적인 크기를 평가할 때 유용하지만, 실제 값이 0에 가까우면 불안정해질 수 있다.
    • SMAPE (Symmetric Mean Absolute Percentage Error): MAPE의 비대칭성(과대 예측과 과소 예측의 페널티가 다름) 문제를 개선한 지표이다.
  3. 검증 방법 (Validation Methods)
    • Hold-out Method: 데이터를 훈련 세트와 테스트 세트로 한 번 나누어 평가한다. 간단하지만 데이터 분할에 따라 결과가 달라질 수 있다.
    • k-Fold Cross-Validation: 데이터를 k개의 폴드(fold)로 나누고, 각 폴드를 한 번씩 테스트 세트로 사용하고 나머지 k-1개 폴드를 훈련 세트로 사용하는 과정을 k번 반복하여 성능을 평균낸다. 더 안정적인 성능 추정치를 제공한다.
    • Stratified k-Fold Cross-Validation: k-Fold 교차 검증 시 각 폴드의 클래스 비율이 원본 데이터의 클래스 비율과 동일하게 유지되도록 데이터를 분할한다. 클래스 불균형 데이터에 유용하다.
    • LOOCV (Leave-One-Out Cross-Validation): k-Fold에서 k가 데이터 샘플 수(N)와 같은 극단적인 경우이다. 각 샘플을 한 번씩 테스트 세트로 사용한다. 계산 비용이 매우 높다.
    • Time Series Split (시계열 교차 검증): 시계열 데이터에서는 미래의 데이터를 사용하여 과거를 예측하는 것을 방지해야 하므로, 훈련 세트는 항상 테스트 세트보다 시간적으로 앞서도록 데이터를 분할한다 (예: Expanding Window, Sliding Window).
  4. 불확실성 평가 (Uncertainty Evaluation)
    • Calibration Curve (신뢰도 곡선): 모델이 예측한 확률(신뢰도)이 실제 정확도와 얼마나 일치하는지를 시각적으로 보여주는 그래프이다. 완벽하게 보정된 모델은 대각선 형태를 띤다.
    • Expected Calibration Error (ECE): 예측 확률과 실제 빈도 간의 평균적인 차이를 정량화하여 모델의 보정(calibration) 정도를 측정하는 지표이다.

E. 하이퍼파라미터 탐색 (Hyperparameter Tuning/Search)

모델 성능에 영향을 미치는, 학습 전에 사용자가 설정해야 하는 하이퍼파라미터(예: 학습률, 정규화 강도, 트리 깊이)의 최적 조합을 찾는 과정이다.

  • Grid Search: 탐색할 하이퍼파라미터 값들의 조합을 격자(grid) 형태로 모두 시도하여 최적 조합을 찾는다. 계산 비용이 높다.
  • Random Search: 지정된 범위 내에서 하이퍼파라미터 값들을 무작위로 샘플링하여 탐색한다. Grid Search보다 효율적으로 좋은 조합을 찾을 수 있는 경우가 많다.
  • Bayesian Optimization: 이전 탐색 결과를 바탕으로 아직 탐색하지 않은 영역 중 성능 개선 가능성이 높은 지점(획득 함수(acquisition function) 최대화)을 확률적으로 선택하여 탐색하는 방식이다. 적은 시도 횟수로 최적 조합을 찾는 데 효과적이다.
  • Hyperband: 제한된 자원(예: 시간, 반복 횟수) 하에서 여러 하이퍼파라미터 조합을 병렬로 시도하고, 성능이 낮은 조합은 조기에 중단(early-stopping)하여 유망한 조합에 더 많은 자원을 할당하는 효율적인 탐색 기법이다.
  • BOHB (Bayesian Optimization and HyperBand): Hyperband의 효율적인 자원 할당 방식과 Bayesian Optimization의 지능적인 탐색 방식을 결합한 기법이다.
  • Optuna: 베이즈 최적화, TPE(Tree-structured Parzen Estimator), CMA-ES 등 다양한 최신 탐색 알고리즘을 지원하고, 분산 환경에서의 병렬 탐색, 탐색 과정 시각화 등을 제공하는 자동화된 하이퍼파라미터 최적화 프레임워크이다.
  • Population-Based Training (PBT): 여러 모델(개체군)을 병렬로 훈련시키면서, 주기적으로 성능이 좋은 모델의 가중치와 하이퍼파라미터를 성능이 낮은 모델로 복사하고 약간의 변형(mutation)을 가하는 방식으로, 하이퍼파라미터와 모델 가중치를 동시에 최적화한다.

V. 관련 이론 및 고급 주제 (Related Theory & Advanced Topics)

A. 정보 이론 (Information Theory)

데이터의 불확실성을 정량화하고, 확률 분포 간의 관계를 측정하는 수학적 이론이다. 머신러닝에서 손실 함수 정의, 모델 평가, 특징 선택 등에 활용된다.

  • Shannon Entropy: 확률 변수의 불확실성(정보량)을 측정하는 기댓값이다. 분포가 균일할수록 엔트로피가 높다.
  • Conditional Entropy: 다른 확률 변수 Y의 값이 주어졌을 때, 확률 변수 X의 남은 불확실성을 측정한다 (H(X|Y)).
  • Joint Entropy: 두 확률 변수 X와 Y가 함께 가질 수 있는 상태에 대한 총 불확실성을 측정한다 (H(X, Y)).
  • Mutual Information (상호 정보량): 두 확률 변수 X와 Y가 공유하는 정보량이다. 즉, Y를 앎으로써 X에 대한 불확실성이 얼마나 감소하는지를 나타낸다 (I(X; Y) = H(X) - H(X|Y)).
  • Cross-Entropy: 실제 분포 P에 대해 예측 분포 Q를 사용하여 정보를 인코딩할 때 필요한 평균 비트 수이다. 분류 문제의 손실 함수로 널리 사용된다.
  • KL Divergence (Kullback-Leibler Divergence): 두 확률 분포 P와 Q 사이의 비대칭적인 거리(차이)를 측정한다. P를 Q로 근사할 때의 정보 손실량을 나타낸다 (D_KL(P | | Q)).
  • Jensen-Shannon Divergence (JSD): KL Divergence를 대칭적으로 만들고 값 범위를 또는 [0, log2]로 제한한 거리 척도이다.

B. 설명 가능한 AI (Explainable AI - XAI)

복잡한 인공지능 모델(특히 딥러닝)의 예측 결과를 사람이 이해하고 신뢰할 수 있도록 설명하는 기술 및 방법론이다.

  • SHAP (SHapley Additive exPlanations): 게임 이론의 샤플리 값(Shapley value) 개념을 적용하여, 각 특징(feature)이 특정 예측 결과에 얼마나 기여했는지를 공정하게 측정하고 설명하는 통합 프레임워크이다.
  • LIME (Local Interpretable Model-agnostic Explanations): 특정 예측 결과 주변의 데이터를 샘플링하고, 이 로컬 영역에서 해석 가능한 간단한 모델(예: 선형 모델)을 학습시켜 해당 예측을 설명하는 모델 불특정(model-agnostic) 기법이다.
  • Integrated Gradients (IG): 예측 결과의 변화에 대한 입력 특징의 기여도를 계산할 때, 기준선(baseline) 입력부터 실제 입력까지의 경로를 따라 기울기를 적분하여 특징 중요도를 측정하는 방법이다.
  • Grad-CAM (Gradient-weighted Class Activation Mapping): CNN 모델에서 특정 클래스 예측에 중요한 영향을 미친 입력 이미지 영역(특징 맵)을 시각화하여 모델이 어디를 보고 판단했는지 보여주는 기법이다.

C. 분산 학습 및 MLOps (Distributed Learning & MLOps)

대규모 데이터나 모델을 처리하기 위한 기술과 머신러닝 모델의 개발, 배포, 운영을 자동화하고 효율화하는 방법론이다.

  1. 분산 학습 구조 (Distributed Learning Architectures): 여러 컴퓨팅 자원(장비, 프로세스)을 사용하여 모델 학습을 병렬로 수행한다.
    • Data Parallelism: 동일한 모델을 여러 장치(예: GPU)에 복제하고, 전체 훈련 데이터를 나누어 각 장치에서 병렬로 처리한 후 결과를 동기화(예: 기울기 평균)한다.
    • Model Parallelism: 모델 자체의 크기가 너무 커서 단일 장치에 올릴 수 없을 때, 모델의 다른 부분을 여러 장치에 나누어 배치하고 병렬로 연산한다.
    • Pipeline Parallelism: 모델의 계층(layer)들을 여러 장치에 순차적으로 배치하고, 미니 배치를 여러 마이크로 배치로 나누어 파이프라인처럼 처리하여 장치 활용률을 높인다.
    • Parameter Server Architecture: 파라미터 서버(중앙 서버)가 모델의 파라미터를 저장 및 관리하고, 여러 워커(worker) 노드가 데이터를 받아 학습을 수행하며 파라미터 업데이트를 요청/수신하는 구조이다.
    • 분산 학습 프레임워크/라이브러리:
      • Horovod: TensorFlow, PyTorch, Keras 등에서 MPI(Message Passing Interface) 기반의 효율적인 데이터 병렬 분산 훈련을 지원하는 프레임워크이다.
      • DeepSpeed: Microsoft에서 개발한 대규모 모델(수십억~수조 파라미터) 학습을 위한 최적화 라이브러리로, ZeRO(Zero Redundancy Optimizer) 등의 기술을 통해 메모리 효율성을 극대화한다.
      • TensorFlow Distributed: TensorFlow에서 제공하는 분산 훈련 전략(예: MirroredStrategy, MultiWorkerMirroredStrategy, ParameterServerStrategy)을 포함하는 프레임워크이다.
  2. MLOps (Machine Learning Operations): 머신러닝 모델의 전체 생명주기(데이터 준비, 실험, 훈련, 배포, 모니터링, 재훈련)를 안정적이고 효율적으로 관리하기 위한 원칙과 실천 방법이다. DevOps의 원칙을 머신러닝 시스템에 적용한 것이다.
    • 모델 관리 및 서빙 도구 (Model Management & Serving Tools):
      • MLflow: 실험 추적(tracking), 모델 패키징, 모델 레지스트리(저장 및 버전 관리), 모델 배포(serving) 등 머신러닝 생명주기 관리를 위한 오픈소스 플랫폼이다.
      • DVC (Data Version Control): Git과 유사하게 대규모 데이터셋과 머신러닝 모델 파일의 버전을 관리하고 실험 재현성을 높이는 도구이다.
      • Airflow: 워크플로우(작업 흐름)를 DAG(Directed Acyclic Graph) 형태로 정의하고 스케줄링, 모니터링, 실행하는 오픈소스 플랫폼이다. ML 파이프라인 자동화에 사용된다.
      • Kubeflow / Kubeflow Pipelines: Kubernetes 위에서 머신러닝 워크플로우를 구축, 배포, 관리하기 위한 플랫폼이다. 특히 컨테이너 기반의 확장 가능하고 이식성 있는 ML 시스템 구축에 유용하다.
      • BentoML: 학습된 머신러닝 모델을 고성능의 예측 서비스(REST API 등)로 쉽게 패키징하고 배포할 수 있도록 지원하는 프레임워크이다.
      • Seldon Core: Kubernetes 기반으로 머신러닝 모델을 배포, 확장, 모니터링하고 A/B 테스트, 카나리 배포 등을 지원하는 오픈소스 플랫폼이다.
    • 데이터 라벨링 도구 (Data Labeling Tools):
      • Label Studio: 이미지, 텍스트, 오디오, 비디오 등 다양한 유형의 데이터에 대한 라벨링(주석 작업) 인터페이스를 제공하는 오픈소스 도구이다.

D. 프라이버시 및 연합 학습 (Privacy & Federated Learning)

데이터 프라이버시를 보호하면서 머신러닝 모델을 학습하고 활용하는 기술이다.

  • Federated Learning (연합 학습): 원본 데이터를 중앙 서버로 보내지 않고, 각 사용자(클라이언트)의 로컬 장치에서 데이터를 사용하여 모델을 개별적으로 학습시킨 후, 모델 업데이트(예: 가중치 변화량)만을 중앙 서버로 보내 통합(aggregation)하는 분산 학습 방식이다. 데이터 프라이버시 보호에 유리하다.
  • Split Learning (분할 학습): 모델의 일부는 사용자 장치에서, 나머지 부분은 서버에서 나누어 학습하는 방식으로, 연합 학습과 달리 모델 구조를 분할하여 프라이버시를 보호하고 계산 부담을 분산시킨다.
  • Differential Privacy (차분 프라이버시): 데이터셋에 대한 질의(query) 결과나 학습된 모델 파라미터에 통계적인 노이즈를 추가하여, 특정 개인의 정보가 결과에 미치는 영향을 제한함으로써 개인 식별 위험을 수학적으로 보장하는 프라이버시 보호 기법이다.

E. 강화학습 심화 기술 (Advanced Reinforcement Learning Techniques)

  • MuZero: 게임 규칙이나 환경 모델을 명시적으로 알지 못해도, 스스로 상태 표현, 전이(dynamics), 보상 함수를 학습하는 모델 기반 강화학습 알고리즘이다. (I.B.3 참고)
  • Dreamer (DreamerV3): 환경 모델을 학습하여 잠재 공간(latent space)에서 미래 상태와 보상을 예측하고, 이를 바탕으로 상상(imagination) 속에서 정책을 효율적으로 학습하는 모델 기반 강화학습 구조이다. (I.B.3 참고)
  • MADDPG (Multi-Agent Deep Deterministic Policy Gradient): 여러 에이전트가 존재하는 환경에서, 각 에이전트가 다른 에이전트들의 정책 정보를 활용하여 협력 또는 경쟁하며 학습하는 다중 에이전트 강화학습 알고리즘이다.
  • QMIX: 개별 에이전트의 Q 함수를 비선형적으로 결합하여 팀 전체의 공동 Q 함수를 추정하고, 이를 통해 협력적인 다중 에이전트 환경에서 분산된 정책을 학습하는 기법이다.
  • Offline Reinforcement Learning (오프라인 강화학습): 환경과의 실시간 상호작용 없이, 미리 수집된 고정된 데이터셋(로그 데이터 등)만을 사용하여 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Conservative Q-Learning (CQL), Implicit Q-Learning (IQL), Advantage-Weighted Actor-Critic (AWAC).
  • Constrained Reinforcement Learning (제약 강화학습): 보상 최대화뿐만 아니라, 특정 제약 조건(예: 안전 제약, 비용 제약)을 만족하도록 정책을 학습하는 강화학습 방식이다. 관련 기법 예시: Constrained Policy Optimization (CPO), Shielded Reinforcement Learning.

F. 수학적 최적화 (Mathematical Optimization) - ML과의 관계

머신러닝 모델 학습(손실 함수 최소화) 자체가 최적화 문제이며, 다양한 수학적 최적화 기법들이 직간접적으로 활용된다. (IV.B 최적화 알고리즘과 중복되는 내용이 많으나, 보다 이론적인 관점에서 분류)

  1. 선형 계획법 (Linear Programming - LP): 선형 목적 함수를 선형 등식/부등식 제약 조건 하에서 최적화한다.
    • Simplex Method: 해 공간의 꼭짓점(vertex)을 따라 이동하며 최적해를 탐색하는 고전적인 해법이다.
    • Interior-Point Methods: 해 공간의 내부(interior)에서 시작하여 중심 경로(central path)를 따라 최적점에 점근적으로 접근하는 해법이다.
  2. 이차 계획법 (Quadratic Programming - QP): 이차 목적 함수를 선형 제약 조건 하에서 최적화한다. SVM 등에서 활용된다.
    • Active Set Methods (e.g., Wolfe's Method): 활성 제약 조건(active constraints) 집합을 관리하며 최적해를 찾는 방식이다.
    • Primal-Dual Interior Point Methods: LP와 유사하게 내부점 방법을 적용하여 QP 문제를 해결한다.
  3. 비선형 계획법 (Nonlinear Programming - NLP): 비선형 목적 함수 또는 비선형 제약 조건을 갖는 최적화 문제이다. 대부분의 딥러닝 학습이 여기에 해당한다.
    • Gradient Descent 계열: (IV.B.1 참고)
    • Newton's Method, SQP, Trust-Region Methods: (IV.B.2, IV.B.3 참고)
  4. 혼합 정수 계획법 (Mixed-Integer Programming - MIP): 일부 변수는 연속적이고 일부 변수는 정수인 최적화 문제이다.
    • Branch-and-Bound, Branch-and-Cut, Branch-and-Price: (IV.B.5 참고)
  5. 동적 계획법 (Dynamic Programming - DP): 최적 부분 구조(optimal substructure)와 중복되는 부분 문제(overlapping subproblems) 특성을 갖는 문제를 작은 부분 문제로 나누어 해결하고, 그 결과를 저장하여 재활용하는 방식이다. 강화학습의 벨만 방정식(Bellman Equation) 등에서 활용된다.
    • Bellman Equation: 현재 상태의 가치 함수를 다음 상태의 가치 함수와 즉각적인 보상으로 표현하는 재귀적인 관계식이다. DP 및 강화학습의 핵심 원리이다.
    • Viterbi Algorithm: 은닉 마르코프 모델(Hidden Markov Model, HMM)과 같은 시퀀스 모델에서 가장 가능성 높은 은닉 상태(hidden state) 시퀀스를 찾는 동적 계획법 기반 알고리즘이다.
  6. 제약 충족 문제 (Constraint Satisfaction Problems - CSP): 변수 집합, 각 변수의 도메인, 변수 간 제약 조건이 주어졌을 때, 모든 제약 조건을 만족하는 변수 값 할당을 찾는 문제이다.
    • Backtracking Search: 변수에 값을 할당해 보면서 제약 조건을 만족하는지 확인하고, 만족하지 않으면 이전 단계로 돌아가 다른 값을 시도하는 완전 탐색 기반 알고리즘이다.
    • Forward Checking: 변수에 값을 할당할 때마다, 해당 할당으로 인해 제약 조건에 영향을 받는 다른 변수들의 도메인에서 불가능한 값들을 미리 제거하는 기법이다.
    • Arc Consistency (AC-3 Algorithm): 변수 쌍 간의 제약 조건을 반복적으로 검사하여, 각 변수의 도메인에서 제약을 만족하는 값이 없는 값들을 제거하여 도메인을 축소하는 기법이다.
  7. 이진 결정 다이어그램 (Binary Decision Diagrams - BDD): 부울 함수(Boolean function)를 효율적으로 표현하고 조작하기 위한 데이터 구조이다.
    • ROBDD (Reduced Ordered Binary Decision Diagram): 변수 순서가 고정되고, 중복 노드와 불필요한 노드가 제거된 표준적인 형태의 BDD이다.
    • ZDD (Zero-suppressed Binary Decision Diagram): 희소한 조합 구조(예: 특징 부분집합) 표현에 특화된 BDD 변형이다.
  8. 유한차분법 (Finite Difference Method): 미분 방정식을 이산적인 격자점(grid points)에서의 함수 값 차이를 이용하여 근사적인 대수 방정식으로 변환하여 수치적으로 해를 구하는 방법이다. (머신러닝 자체보다는 물리 시뮬레이션 등 관련 분야에서 사용)
    • Forward/Backward Euler Method: 시간 또는 공간에 대해 전진(forward) 또는 후진(backward) 차분을 사용하여 1차 미분을 근사하는 가장 간단한 방법이다.
    • Crank-Nicolson Method: 시간 축에서 현재와 다음 시간 스텝의 평균을 사용하여 미분을 근사하는 암시적(implicit) 방법으로, 안정성이 높다.

G. 최신 연구 키워드 (Recent Research Keywords - 2023~2025 기준)

머신러닝 및 딥러닝 분야의 최신 연구 동향을 나타내는 주요 키워드이다.

  • Diffusion Models: 고해상도 이미지, 비디오, 오디오 등 다양한 데이터를 생성하는 데 탁월한 성능을 보이는 생성 모델 계열이다. (III.G 참고)
  • RAG (Retrieval-Augmented Generation): 대형 언어 모델(LLM)이 답변을 생성할 때, 외부 지식 베이스(예: 문서 데이터베이스)에서 관련 정보를 검색(retrieve)하여 이를 참고함으로써 답변의 정확성과 최신성을 향상시키는 기법이다.
  • PEFT (Parameter-Efficient Fine-Tuning): 사전 학습된 대규모 모델(Foundation Model)을 특정 작업에 맞게 미세 조정(fine-tuning)할 때, 모델의 모든 파라미터를 업데이트하는 대신 일부 파라미터(또는 추가된 작은 파라미터)만 학습하여 계산 비용과 메모리 사용량을 크게 줄이는 기법이다. 예시:
    • LoRA (Low-Rank Adaptation): 기존 가중치 행렬의 업데이트를 저차원(low-rank) 행렬의 곱으로 근사하여 학습 파라미터 수를 줄인다.
    • QLoRA: LoRA를 더욱 개선하여, 사전 학습된 모델의 가중치를 낮은 비트(예: 4비트)로 양자화(quantization)하고 저차원 어댑터만 학습하여 메모리 효율성을 극대화한다.
    • 기타: Adapter Tuning, Prompt Tuning, P-tuning 등.
  • RLHF (Reinforcement Learning from Human Feedback) / DPO (Direct Preference Optimization): 인간의 피드백(선호도 데이터 등)을 사용하여 언어 모델의 출력을 인간의 의도나 가치에 맞게 정렬(alignment)하고, 유해하거나 편향된 출력을 줄여 안전성을 높이는 기법이다.
    • RLHF: 인간 선호도를 학습한 보상 모델(reward model)을 구축하고, 이 보상 모델을 최대화하도록 강화학습을 통해 언어 모델을 미세 조정한다.
    • DPO: RLHF의 복잡한 파이프라인(보상 모델 학습 + 강화학습) 대신, 선호도 데이터를 직접 사용하여 선호되는 응답의 확률은 높이고 선호되지 않는 응답의 확률은 낮추는 방향으로 언어 모델을 직접 최적화(분류 문제로 변환)하는 더 간단하고 안정적인 방법이다.
  • Long-Context Transformers: 표준 Transformer 모델이 처리하기 어려운 매우 긴 입력 시퀀스(예: 수십만~수백만 토큰)를 효율적으로 처리할 수 있도록 확장된 아키텍처 및 기법이다 (예: FlashAttention, Ring Attention).
  • NeRF (Neural Radiance Fields): 3D 장면을 연속적인 신경망 표현으로 학습하여 새로운 시점 렌더링(novel view synthesis)을 가능하게 하는 기술이다. (III.H 참고)
  • SAM (Segment Anything Model): 제로샷(zero-shot)으로 이미지 내의 어떤 객체든 분할할 수 있는 대규모 비전 모델이다. (III.H 참고)
  • Foundation Model Compression: 대규모 파운데이션 모델을 경량화하여 모바일 기기나 제한된 환경에서도 사용할 수 있도록 만드는 기술이다. 예시:
    • Pruning (가지치기): 모델의 중요도가 낮은 가중치나 연결, 또는 구조(채널, 레이어 등)를 제거하여 모델 크기를 줄인다.
    • Quantization (양자화): 모델의 가중치나 활성화 값을 높은 정밀도(예: 32비트 부동소수점)에서 낮은 정밀도(예: 8비트 정수)로 변환하여 모델 크기와 계산량을 줄인다.
    • Knowledge Distillation (지식 증류): 크고 성능 좋은 교사 모델(teacher model)의 지식을 작고 빠른 학생 모델(student model)에게 전달하여 학습시키는 방식이다.
    • Low-Rank Factorization/Decomposition (저차원 분해): 모델 내의 큰 가중치 행렬을 더 작은 행렬들의 곱으로 분해하여 파라미터 수를 줄인다. (LoRA도 이 원리를 활용한다)
  • Multimodal Integration: 텍스트, 이미지, 오디오, 비디오 등 여러 종류의 데이터(양식, modality)를 하나의 모델이 동시에 이해하고 처리하며 생성할 수 있는 기술이다. 최신 LLM(예: GPT-4o, Gemini)들이 이러한 방향으로 발전하고 있다.
  • 대표 모델 (Representative Models): (III.D 참고) GPT-4o, Gemini, Claude 3, Mistral, LLaMA, Qwen, StableLM 등.

언리얼 엔진에 NevarokML 설치하는 것이 생각보다 오래 걸렸다. 
언리얼 엔진으로 강화학습 환경 구성하려던 게 몇시간짜리 트러블슈팅이 됐다
처음엔 UE5.5 C++ 프로젝트로 빌드했는데 C++ 컴파일러 버전이 안 맞는다는 오류가 떴다
Visual Studio 설치부터 다시 하고 맞는 버전 찾는 데 시간 쓰고 드디어 빌드 환경 맞췄다
NevarokML 플러그인을 깃헙에서 클론해서 Plugins 폴더에 넣었는데 또 NNE 플러그인이 없다고 했다
언리얼 에디터에서 플러그인 설정 가서 NNE 활성화했지만 여전히 같은 오류
혹시나 해서 UE5.4로 버전 바꾸고 컴파일러 또 바꾸고 같은 작업 반복
그래도 안 됐다

이쯤 되면 누구나 고민한다 다른 플러그인 써야 하나 내가 뭐 놓쳤나
그때 NevarokML 공식 문서를 다시 봤다
거기엔 분명히 UE5.2까지만 지원한다고 적혀 있었다
UE5.2로 다시 설치하고 세팅했더니 아무 문제 없이 플러그인이 돌아갔다


이 과정에서 LLM의 약점을 명확히 느꼈다
코드 설명 문법 오류 알고리즘 이런 건 정말 빠르고 정확하다
근데 환경 세팅 버전 문제 플러그인 호환성 같은 건 기대 이하였다
왜냐면 LLM은 내가 주는 정보만으로 답을 만들어야 하는데 문제는 내가 뭘 모르는지조차 모를 때다
환경 설정에서 오류가 날 때는 내가 정확히 어떤 설정을 했고 어떤 구조에서 오류가 발생하는지 전체 상황을 공유하지 않으면 LLM도 그냥 이럴 수도 있고 저럴 수도 있다 수준에서 끝난다

게다가 실시간으로 상태를 점검할 수 없다는 한계도 크다
LLM은 내가 지금 어떤 파일을 열었고 어떤 버전을 설치했고 어떤 경로에 어떤 플러그인이 들어있는지 모른다
그걸 일일이 설명해줘야 하는데 정작 설명하는 나도 헷갈리는 경우가 많다
이게 LLM이 코드를 이해하지 못한다는 말과는 좀 다르다
LLM은 상태를 추적하지 못한다
시스템에서 벌어지는 일련의 흐름을 보는 눈이 없다


이번에 느낀 건 하나다
LLM은 결국 상황이 명확할 때만 제대로 작동한다
초기 설정이 꼬였거나 내가 뭘 놓쳤는지 감이 안 올 때는 공식 문서를 보고 하나하나 짚어보는 게 더 빠르다
LLM이 해줄 수 없는 건 상황 판단이다
지금 이 문제의 본질이 뭔지 전체 그림에서 뭐가 틀렸는지 찾는 건 여전히 사람 몫이다

그리고 이건 앞으로 어떤 프로젝트를 하든 꼭 기억해야 할 부분 같다
LLM은 강력한 도구지만 모든 걸 맡길 수는 없다
특히 환경 세팅 같은 거 직접 확인하고 체크하는 습관이 없으면 LLM이 아니라 누구도 답 못 준다

우리는 경우의 수 문제를 풀 때마다 선택을 하고 그 선택들의 수를 세어왔다. 하지만 조금만 깊게 생각해본다.

"같다"는 건 도대체 무엇일까.

A-B-C와 C-A-B는 정말 다른 것인가. 이 색칠 배열과 저 배열은 정말 다른 것인가. 원탁에 앉은 이 배치와 저 배치는 구분할 수 있는 것인가.

문제마다 "같다"는 기준이 달랐다. 수학은 이 모호함을 그냥 둘 수 없었다. 그래서 '군의 작용'이라는 개념을 만들어냈다.

 

1. 우리는 늘 '같은 것'을 하나로 세고 있다

경우의 수를 셀 때 가장 먼저 하는 일은 구별이다. 그런데 진짜 중요한 것은 어디까지 구별하고 어디서부터 하나로 묶을지를 정하는 일이다.

무엇을 다른 것으로 보고 무엇을 같은 것으로 볼 것인가. 이 기준이 정해지지 않으면 제대로 셀 수 없다.

 

2. 군의 작용 — '같다'는 기준을 수학적으로 표현하는 방법

수학은 이 문제를 군(group)이라는 개념으로 다룬다. 군이란 여러 가지 변환 규칙들의 모임이다. 이 군이 어떤 집합 위에 작용하면 그 작용을 통해 "같다"는 것을 정의할 수 있다.

예를 들어 보자.

6개의 구슬을 원형으로 배열한다. 시계 방향으로 한 칸 돌린다. 이 돌리는 행동은 '회전 군 C₆'의 작용이다.

여기서 '군의 작용'이란 집합의 원소에 군의 원소를 적용해서 다른 원소로 보내는 규칙을 의미한다.

이제 어떤 배열 A가 있을 때 시계 방향으로 한 칸 돌려서 B가 된다면 A와 B는 같은 것으로 본다.

즉 군의 작용은 "무엇을 같은 것으로 볼 것인가"를 수학적으로 정하는 도구이다.

 

3. 궤도(orbit) — 우리가 진짜 세야 하는 것

어떤 원소 x가 있을 때 그 위에 군의 모든 작용을 적용해서 나오는 결과들의 집합을 궤도라고 부른다.

Orb(x) = {g ⋅ x | g ∈ G}

쉽게 말해 x를 변형해서 얻을 수 있는 모든 결과들의 집합이다.

우리가 경우의 수를 셀 때 진짜로 세야 하는 것은 원소 하나하나가 아니라 이 궤도들의 개수이다.

 

4. Burnside's Lemma — 궤도의 수를 세는 방법

그렇다면 군의 작용이 주어졌을 때 궤도의 개수를 어떻게 구할까.

수학은 Burnside의 보조정리라는 간명한 답을 준다.

서로 다른 경우의 수 = (1 / |G|) × ∑ Fix(g)

여기서

|G|는 군의 크기 Fix(g)는 군의 원소 g가 적용되었을 때 변하지 않는 경우의 수를 의미한다.

쉽게 말하면 각 변환이 얼만큼의 배열을 그대로 고정시키는지를 다 더해서 전체 군의 크기로 나눈 것이다.

모든 변환을 평균 내는 셈이다.

 

5. 예시 — 구슬 목걸이 색칠 문제

구슬 6개를 두 가지 색(흑, 백)으로 칠한다고 하자. 회전으로 같은 배열은 하나로 본다.

처음 생각하면 가능한 배열은 2⁶ = 64가지이다.

하지만 회전을 고려하면 겉모양은 달라도 본질은 같은 배열이 생긴다.

이제 각 회전별로 Fix(g)를 계산해본다.

  • R₀ (0칸): 모든 배열 유지 → Fix = 64
  • R₁ (1칸): 6개가 모두 같아야 한다 → Fix = 2
  • R₂ (2칸): 3개씩 반복해야 한다 → Fix = 8
  • R₃ (3칸): 2개씩 반복해야 한다 → Fix = 4
  • R₄ (4칸): 3개씩 반복해야 한다 → Fix = 8
  • R₅ (5칸): 6개가 모두 같아야 한다 → Fix = 2

Fix 합계는 64 + 2 + 8 + 4 + 8 + 2 = 88이다.

이제 88 ÷ 6 = 14.666...이 나오는데 배열이 완전히 균등하게 나눠지지 않는 이유는 회전군의 작용이 모든 배열을 똑같이 다루지 않기 때문이다.

여기서 우리는 알게 된다. 모든 나눗셈이 깔끔히 떨어지는 게 아니다. 회전이나 대칭에 따라 고정되는 배열의 수가 달라지기 때문이다.

 

6. 모든 경우의 수는 궤도 세기이다

우리가 무심코 했던 나누기 3! 나누기 2! 나누기 n! 이 모든 것은 사실 궤도를 세는 과정이었다.

조편성 문제에서는 조 이름을 무시하는 순열을 하나로 본 것이고 중복 문자 배열에서는 같은 문자의 자리바꿈을 무시한 것이며 원순열 문제에서는 회전을 통한 배열을 하나로 본 것이었다.

항상 묻자. 이 문제에서는 무엇을 같은 것으로 보는가.

그 판단이 서야 군 G가 정해지고 그 위에서 작용이 정의되며 그에 따라 궤도가 정의된다.

 

 

- 다음 편에 이어서 -

우리는 경우의 수를 배울 때 네 가지 방식을 접한다.
순열, 조합, 중복순열, 중복조합.

겉으로 보면 네 가지 방식이 전혀 달라 보인다.
하지만 실제로는 모두 같은 길을 걷는다.

곱하고 나누는 일.
이 두 가지만으로 세상의 모든 경우의 수는 계산된다.


1. 순열 – 구별을 만들고 그대로 둔다

순열은 가장 단순하다.
5명을 일렬로 세우면
5 × 4 × 3 × 2 × 1 = 5!.
이게 전부다.

곱셈만 있다.
나눗셈은 없다.

왜냐.
우리가 만든 순서는 모두 구별되기 때문이다.

A-B-C-D-E와
B-A-C-D-E는
다른 줄이다.

따라서 구별할 것도 없고 묶을 것도 없다.
곱하고 그대로 둔다.


2. 조합 – 구별을 만들고 일부를 묶는다

조합은 여기서 한 단계 더 들어간다.

예를 들어 5명 중 2명을 고른다고 하자.
처음에는 순열처럼 곱셈을 한다.

5 × 4 = 5P2.

하지만 곧 문제에 부딪힌다.
A-B와 B-A를 따로 세고 있는 것이다.

뽑힌 둘의 순서는 의미가 없다.

그래서 이 의미 없는 구별을 제거한다.
2명 뽑은 경우는 2! = 2가지.
따라서 나눈다.

5P2 ÷ 2! = 5C2.

곱하고 나눈다.
구별을 만들고 불필요한 구별을 묶는다.


3. 중복순열 – 줄어들지 않는 선택을 반복한다

중복순열은 더 단순하다.
0부터 9까지 숫자로 4자리 비밀번호를 만든다고 하자.

각 자리마다 10개의 선택지가 있다.
그리고 선택할 때마다 가능한 선택지가 줄어들지 않는다.

그러니까
10 × 10 × 10 × 10 = 10⁴.

순열보다도 계산이 쉽다.

여기도 나눗셈은 없다.
왜냐.
순서를 모두 구별하기 때문이다.

곱하고 끝낸다.


4. 중복조합 – 줄어들지 않는 선택에서 순서를 무시한다

중복조합은 여기서 복잡해진다.

5종류 과자 중 3개를 고른다고 하자.
같은 종류를 여러 번 골라도 된다.

처음에는 중복순열처럼 생각한다.
각 번마다 5개 선택지가 있다.

하지만 문제는
똑같은 과자 2개, 다른 과자 1개를 고르더라도
선택 순서를 따지지 않는다는 것이다.

그래서 곱한 결과를 그대로 쓸 수 없다.

별 3개와 막대 4개를 일렬로 배열한다고 바꾸면
총 7개 자리 중 별 3개를 고르는 문제가 된다.

7C3 = 35.

중복조합의 공식은 (n + r - 1)Cr.

줄어들지 않는 대상들에서
고른 결과들의 순서를 무시하고 세는 방식이다.


(※) 합의 법칙은?

물론 경우의 수에는 합의 법칙도 있다.

서로 다른 선택지를 가진 경우에는
경우의 수를 더하는 방식으로 계산한다.

하지만 여기서 말하는 '곱하고 나눈다'는 구조는
하나의 경우의 수 덩어리 안에서
구별을 만들고 통합하는 과정을 뜻한다.

더하는 것은
서로 완전히 다른 선택지를 단순히 합치는 것이고,
곱하고 나누는 것은
한 선택 안에서 구별과 무시를 다루는 것이다.

우리는 조합 공식을 외우고 쓴다

nCr = n! ÷ (r! × (n - r)!)

하지만 이 공식이 진짜로 말하는 것은 따로 있다
이것은 단순한 계산 방법이 아니라
곱셈으로 만든 질서를 나눗셈으로 정제하는 사고의 구조이다

왜 덧셈이나 다른 수식이 아니라 곱하고 나누는 구조여야 하는가
그 이유를 차근차근 따져보자


  1. 조합은 '몇 개 고른다'가 아니라 '구별을 제거하는 것'이다

"10명 중 3명을 뽑는다"라는 문제를 생각해보자
보통은 10C3을 바로 떠올린다

하지만 이 과정은 단순히 3명을 고르는 것이 아니다

실제로는
10명을 순서 있게 3명 뽑고
그 안의 순서를 제거하는 과정이다

즉 먼저

10 × 9 × 8 = 10P3

순열을 만든다

그 다음 뽑힌 3명의 서로 다른 순서를 제거한다
서로 다른 3명의 순서는 3! = 6가지이므로

10P3 ÷ 3! = 10C3

결국 조합은
순서를 만들고
그 순서를 없애는 두 단계를 반드시 거친다


  1. 수학은 순서를 통해서만 세상을 구별할 수 있다

다시 "10명 중 3명을 뽑는다"는 문제를 보자
A-B-C와 C-B-A는 같은 조로 보지만
경우의 수를 세기 위해서는 처음에는 반드시 구별해야 한다

'경우의 수'란 구별 가능한 상태의 수를 세는 것이다

A-B-C와 C-B-A를 처음부터 같은 것으로 보면
경우를 셀 수 없다

따라서 우리는 먼저 모든 구별 가능한 상태를 만든다
그 후 실제로 같다고 보는 것들끼리 하나로 묶는다

묶는 과정이 바로 나눗셈이다


  1. 조합은 '몫집합'을 센다 – 동치 관계를 세우고 그 클래스를 센다

수학적으로 표현하면 조합은 몫집합을 세는 과정이다

먼저 순열로 전체 경우의 수를 만든다

nPr = n! ÷ (n - r)!

그리고 동치관계를 설정한다
"뽑힌 r명의 순서는 의미 없다"는 조건을 세운다

따라서 서로 다른 r명의 순서에 해당하는 r!개의 경우를 모두 하나로 묶는다

몫집합을 만드는 과정은 다음과 같다

전체 경우 수 ÷ 동치 클래스의 크기 = 조합

nCr = n! ÷ (r! × (n - r)!)

여기서 r!은 한 클래스 안에 몇 개의 순열이 들어 있는지를 나타낸다


  1. 왜 나눗셈인가 – 나눗셈은 '동일시'를 의미하기 때문이다

수학에서 나눗셈은 단순한 연산이 아니다
나눗셈은 항상 "여러 개를 하나로 묶는" 행위이다

예를 들어

똑같은 물건 12개를 3개씩 나누면 12 ÷ 3 = 4
같은 값을 여섯 번 더한 후 평균을 내면 (a + a + a + a + a + a) ÷ 6 = a

조합에서도 마찬가지이다
우리는 "이 세 명은 순서가 달라도 같다"는 판단을 한다
그리고 그 판단에 따라 r!개의 서로 다른 순서를 하나의 덩어리로 묶는다

조합은

곱셈으로 만든 '구별된 상태'를
나눗셈으로 '의미 없는 덩어리'로 바꾸는 과정이다

이 사고가 조합 전반에 깔려 있다


  1. 그 외의 조합 공식도 결국 같은 구조이다

예를 들어
6명을 2명씩 3개의 조로 나누는 문제를 생각하자
조 이름이 없다고 가정한다

곱셈으로 순서 있게 나누면

6C2 × 4C2 × 2C2

이 결과는 조들의 순서까지 구별한 경우의 수이다

조 이름이 없으므로 조들의 순서를 제거해야 한다
따라서 3!으로 나눈다

최종적으로는

6! ÷ (2! × 2! × 2! × 3!)이 된다

여기서도 곱하고 나눈다
곱셈은 모든 구별을 만들고
나눗셈은 그 중에서 의미 없는 구별을 제거한다


결론 – 조합은 곱셈이 아니라 '곱셈 다음의 판단'이다

조합을 "곱하고 나눈다"고만 기억하는 것은 표면적인 계산에 머무는 것이다

조합이란

먼저 순서를 만든다
그 순서가 실제로 의미가 없는 경우라면
그때 나눗셈을 통해 구별을 제거한다

덧셈이나 다른 연산은 이 과정을 표현할 수 없다

오직 곱셈과 나눗셈만이

  • 구별을 만들고
  • 의미 없는 구별을 없애는
    이 사고 구조를 구현할 수 있다

그래서 조합은 곱셈과 나눗셈으로만 완성된다

경우의 수를 셀 때 우리는 자연스럽게 곱셈을 사용한다
6명 중 2명을 고르고 남은 사람 중에서 다시 2명을 고르고 이런 과정을 따른다
겉으로 보기에는 계산이 정확하고 절차가 타당해 보인다

하지만 단순히 곱한 결과가 언제나 문제의 답이 되는 것은 아니다

곱셈은 우리가 의식하지 못하는 사이에 '순서'를 만들어낸다
이 순서가 문제 상황에서 실제로 의미가 있다면 그대로 두면 되지만
만약 의미가 없다면 반드시 제거해야 한다

조합에서 나눗셈이 등장하는 이유는 단순한 공식 때문이 아니다
우리가 곱셈으로 만들어낸 불필요한 순서를 지워주기 위함이다
곱셈이 만들어낸 가짜 질서를 나눗셈으로 정제하는 것이다

이제 다양한 예시를 통해 곱셈과 나눗셈이 왜 등장하는지 그 근본을 하나씩 살펴보자


  1. 조편성 문제 – 조의 순서가 왜 생기고 왜 제거해야 하는가

문제
남학생 6명을 2명씩 3개의 조로 나눈다 조 이름은 없다

먼저 자연스럽게 곱셈으로 계산해 본다

첫 번째 조를 6명 중 2명 고르는 방법은 6C2이다
두 번째 조는 남은 4명 중 2명을 고르는 방법이므로 4C2이다
마지막 두 명은 자동으로 남는다

따라서 경우의 수는 6C2 × 4C2 × 2C2 = 15 × 6 × 1 = 90이다

그런데 이 90이라는 수는 '조의 순서'를 구별한 결과이다
즉 첫 번째 조 두 번째 조 세 번째 조를 서로 다르게 본 것이다

하지만 문제는 조 이름이 없고 조끼리의 순서를 구분하지 않는다
따라서 동일한 세 조의 자리 바꿈인 3! = 6으로 나누어야 한다

6C2 × 4C2 × 2C2 ÷ 3! = 15

곱셈은 조마다 순서를 부여했고
나눗셈은 그 불필요한 구별을 없앴다


  1. 카드 손패 – 순서가 없는 선택은 어떻게 만들어지는가

문제
52장의 카드 중에서 5장을 뽑아 손패를 만든다 순서는 고려하지 않는다

곱셈으로 풀어보면
52 × 51 × 50 × 49 × 48 = 311,875,200

하지만 이 계산은 5장의 카드를 순서까지 구별한 경우를 모두 세었다
A-K-Q-J-10과 10-J-Q-K-A는 같은 손패지만 여기서는 다르게 세어버린 것이다

따라서 중복된 순서를 제거하기 위해 5! = 120으로 나눈다

52 × 51 × 50 × 49 × 48 ÷ 5! = 52C5

조합은 '순서 없는 선택'을 다루기 위해 곱셈 결과에 나눗셈을 적용한 것이다
순서를 만든 것은 곱셈이었고 그것을 정리한 것이 나눗셈이었다


  1. 원탁 문제 – 회전이란 대칭을 어떻게 제거하는가

문제
8명을 원탁에 둘러 앉힌다 의자는 고정되지 않는다

일렬로 세운다면 경우의 수는 8!이다
하지만 원탁에서는 A-B-C-D와 D-A-B-C를 같은 배열로 본다

회전이 자유로운 구조에서는 맨 앞에 오는 사람을 고정해야 중복 없이 셀 수 있다

따라서 8! ÷ 8 = 7!

회전으로 생기는 중복을 없앤 결과이다
여기서도 곱셈은 모든 순서를 구별했고
나눗셈은 실제 의미 없는 구별을 제거했다


  1. 중복 문자 배열 – 같은 것이 섞여 있으면 왜 나눠야 하나

문제
MISSISSIPPI의 철자를 재배열한다

총 문자는 11개이고 모두 다르다고 가정하면 11!이다
하지만 실제로는 S가 4개 I가 4개 P가 2개 M이 1개이다

같은 문자는 서로 바꿔도 결과가 같으므로 중복을 제거해야 한다

따라서

11! ÷ (4! × 4! × 2!) = 34,650

곱셈은 모든 문자를 구별했고
나눗셈은 같은 문자끼리의 바꿈을 하나로 묶었다


  1. 정수 분배 (Stars and Bars) – 눈에 보이지 않는 순서를 나눗셈으로 제거

문제
x + y + z = 7을 만족하는 음이 아닌 정수해의 개수를 구한다

이 문제는 별 7개와 막대 2개를 일렬로 배열하는 문제로 변환할 수 있다
총 9개의 자리 중에서 막대 2개를 어디에 넣을지를 결정하면 된다

곱셈으로 생각하면 별과 막대를 구별해 9!로 배열할 수 있다
하지만 별끼리 막대끼리는 구별하지 않는다

따라서 9! ÷ (7! × 2!) = 9C2 = 36

곱셈은 별과 막대를 각각 독립된 대상으로 구별했지만
나눗셈은 서로 같은 것을 하나로 묶었다


핵심 정리

우리가 곱셈을 하면

  • 대상을 구별하고
  • 순서를 부여하게 된다

하지만 문제의 조건이 그 순서를 요구하지 않으면
곱셈이 만들어낸 가짜 구별을 반드시 제거해야 한다

곱셈은 구별을 만들고
나눗셈은 무의미한 구별을 없앤다

조합 공식의 구조는 이 원리를 그대로 반영한다

n! ÷ (r! × (n - r)!)

n!은 전체 순열을 의미한다
r!은 선택된 r명의 순서를 제거하는 것이다
(n - r)!은 선택되지 않은 나머지의 순서를 제거하는 것이다

전체적으로 보면 조합 공식은 곱셈으로 발생한 불필요한 순서를 모두 정리하는 과정이다


수학은 언제나 구별과 동일시 사이의 균형을 고민한다

곱셈은 차이를 만들고
나눗셈은 필요 없는 차이를 없앤다

경우의 수 문제를 볼 때마다
"지금 만든 순서가 진짜 필요한가"를 스스로 묻고 답해야 한다

필요한 순서라면 남기고
필요하지 않다면 반드시 없애야 한다

그렇게 해야만
우리는 정확한 경우의 수를 구할 수 있다

1. 숫자 개수/간격 문제

공식
개수 = (끝 - 시작) + 1
간격 = (끝 - 시작)

개수는 +1, 간격은 그대로 뺀다.

 

예시

  • 5부터 13까지 숫자 개수 = (13 - 5) + 1 = 9개
  • 5부터 13까지 간격 = 13 - 5 = 8
  • 1부터 100까지 숫자 개수 = (100 - 1) + 1 = 100개
  • 2020년부터 2025년까지 개수 = (2025 - 2020) + 1 = 6개
  • 2020년부터 2025년까지 간격 = 2025 - 2020 = 5

2. 등차/등비 수열 문제

공식
등차수열 일반항: aₙ = a₁ + (n-1)d
등비수열 일반항: aₙ = a₁ × r^(n-1)
등비수열 합: Sₙ = a₁(rⁿ - 1)/(r - 1)

등차나 등비 모두 초항으로부터 (n-1)번 변화를 적용한다.

 

예시

  • 초항 5, 공차 3 → 8번째 항: 5 + (8-1)×3 = 26
  • 초항 2, 공비 2 → 5번째 항: 2×2 = 32
  • 초항 7, 공차 4 → 10번째 항: 7 + (10-1)×4 = 43
  • 초항 3, 공비 3 → 6번째 항: 3×3 = 729

3. 일차(n일차, n년차) 문제

공식
기본: (n - 1) 경과
시작일이나 시작연도 주어지면: 시작 + (n - 1)

차(次)는 무조건 -1 경과로 처리한다.

 

예시

  • 5일차 → (5 - 1) = 4일 경과
  • 3년차 → (3 - 1) = 2년 경과
  • 3일부터 시작해 12일차 → 3 + (12 - 1) = 14일
  • 2020년에 시작해서 5년차 → 2020 + (5 - 1) = 2024년

4. 후(n일 후, n년 후) 문제

공식
n일 후 = 시작 + n
n년 후 = 시작 + n

후(後)는 그냥 시작에서 n만 더한다.

간격이 n이라는 것이다.

 

예시

  • 5일 후 = 오늘 + 5일
  • 3년 후 = 올해 + 3년
  • 2일부터 7일 후 = 2 + 7 = 9일
  • 2020년부터 4년 후 = 2020 + 4 = 2024년

5. 구간/일차/후 한꺼번에 정리

공식

  • 개수 = 끝 - 시작 + 1
  • 간격 = 끝 - 시작
  • 일차 = 시작일에서  (n - 1) 경과
  • 후 = 시작일에서 n 경과

개수는 +1, 간격은 그대로, 차(次)는 -1, 후(後)는 그대로.


6. 한국어 표현 대응표

한국어로 쓰인 표현을 보면 바로 수학적으로 변환해야 한다.
다음 기준으로 머리 없이 손이 가게 만들어야 한다.

한국어 표현수학적 변환공식 처리
n일차, n년차 (n - 1) 경과 초항에서 (n-1)번 변화
n일 후, n년 후 n 경과 초항에서 n번 변화
n일 동안, n년 동안 총 n일/년 전체 기간
시작일부터 종료일까지 며칠/몇 년 (끝 - 시작) + 1 개수 세기
시작일부터 종료일까지 간격 끝 - 시작 간격 구하기
처음 이후 n일, n년 n 경과 후와 동일

문제

한 개의 정삼각형 탁자가 있다.
이 탁자의 각 변에는 좌석 3개씩이 배치되어 있어, 총 9개의 좌석이 있다.

여기에 어른 4명, 어린이 5명을 앉히려고 한다.
단, 각 변에는 어른이 적어도 1명 이상 있어야 한다.

이 조건을 만족하면서 사람들을 앉히는 경우의 수는 몇 가지일까?

 

 


 

간단하게 생각해보면 하기 쉬운 풀이

이 문제를 처음 보면, 많은 사람들이 이렇게 접근하게 된다.

  1. 어른 4명 중 3명을 골라 각 변에 한 명씩 배치한다 → $ \binom{4}{3} $
  2. 각 변의 좌석 3개 중에서 어른을 앉힐 자리를 정한다 → $3 \times 3 \times 3 = 3^3$
  3. 나머지 6석에 남은 인원(어른 1명 + 어린이 5명)을 그냥 배열한다 → $6!$

이걸 다 곱하면:

$$
\binom{4}{3} \times 3^3 \times 6! = 4 \times 27 \times 720 = \boxed{77,760}
$$

언뜻 보면 맞는 것 같다 그렇지만 이 풀이엔 오류가 있다.

 

 


 

 

왜 이 풀이가 논리적으로 틀렸을까?

이 방식은 겉보기에는 문제를 잘 풀어낸 것처럼 보이지만, 사실은 계산 단계마다 논리적 구멍이 숨어 있다.

1. 어른 3명을 선택하는 과정에서 중복 계산 발생

예를 들어 어른 A, B, C를 선택하는 경우와 A, B, D를 선택하는 경우를 보자.
결국 C와 D 중 누가 한 변에 들어가느냐만 바뀌고, 전체 배치 형태는 똑같을 수 있다.

즉, 같은 최종 배치를 서로 다른 경우로 중복 계산하고 있는 것이다.

2. 각 변의 자리배치에서 회전 대칭 처리 오류

각 변은 3개의 좌석이 원형으로 연결되어 있다.
그럼 3명이 앉을 수 있는 방법은 $3!$이 아니라 원순열을 적용한 $(3 - 1)! = 2$가지가 되어야 한다.

그런데 위의 풀이는 각 변마다 3자리 중 하나를 고정한다는 식으로, 사실상 회전 대칭을 무시하고 3가지 경우로 계산하고 있다.
즉, 회전 중복을 제거하지 못하고 오히려 더 많이 세고 있는 셈이다.

3. 틀린 방식이지만 오차가 상쇄되어 답은 맞음

어른 선택에서 같은 배치를 여러 번 중복 계산해서 과잉 계산이 발생하고,
자리배치에서 회전 대칭을 무시해서 또 과잉 계산을 한다.

이 두 과잉 계산이 서로 상쇄되는 구조가 되면서,
놀랍게도 최종 답은 우연히 맞는 것이다.

즉,

 

답은 맞지만 논리적으로 엉망이다.



그럼 이 문제는 어떻게 풀어야 할까?

1. A변을 피봇으로 잡고 (어른 2, 어린이 1) 조 편성

  • 어른 4명 중 2명을 선택: A변에 들어갈 어른 2명 선택 → $ \binom{4}{2} $
  • 어린이 5명 중 1명 선택: A변에 들어갈 어린이 1명 선택 → $ \binom{5}{1} $
  • A변 자리배치 (3명 순열): $3!$

→ 총 경우의 수:

$$
\binom{4}{2} \times \binom{5}{1} \times 3!
$$

2. B변과 C변은 서로 대칭 (각각 어른 1명, 어린이 2명)

  • 남은 어른 2명 중 1명을 B변에 배정 → 나머지 한 명은 C변으로 자동
    → 대칭이지만 변을 구분하여 $ \binom{3}{1} $ 사용
  • 남은 어린이 4명 중 2명을 B변에 배정 → 나머지 2명은 C변으로 자동

→ 조편성 경우의 수:

$$
\binom{3}{1} \times \binom{4}{2}
$$

(※ 여기서 $\binom{3}{1}$은 남은 어른 3명 중에서 한 명을 B변에 배정한다는 뜻)

  • B변, C변 자리배치 (각 3명 순열): 각각 $3! \times 3!$

최종 식:

$$
\binom{4}{2} \times \binom{5}{1} \times 3! \times \binom{3}{1} \times \binom{4}{2} \times 3! \times 3!
$$

 

 

각 항목 해설

항목 설명 수식
A변 어른 선택 어른 2명 선택 $\binom{4}{2}$
A변 어린이 선택 어린이 1명 선택 $\binom{5}{1}$
A변 내부 자리배치 총 3명 순열 $3!$
B변 어른 선택 남은 어른 중 1명 선택 $\binom{2}{1}$
B변 어린이 선택 남은 어린이 중 2명 선택 $\binom{4}{2}$
B변 내부 자리배치 3명 순열 $3!$
C변 내부 자리배치 나머지 3명 자동 배정 $3!$

 

 

정답을 구하는 정확한 식은 다음과 같다:

$$
\binom{4}{2} \times \binom{5}{1} \times 3! \times \binom{2}{1} \times \binom{4}{2} \times 3! \times 3! \
= 6 \times 5 \times 6 \times 2 \times 6 \times 6 \times 6 = \boxed{77760}
$$


마무리

이 문제에서 자주 쓰이는 간단한 풀이는 사실 중복 계산과 회전 대칭 처리 오류로 논리적으로 맞지 않는다.
하지만 그 두 오류가 우연히 상쇄되면서 정답만은 맞게 되는 신기한 경우다.

반면, 올바른 풀이는

  • 조를 먼저 나누고,
  • 각 변별로 인원을 정한 후,
  • 각 조의 내부 자리배치를 정확히 계산하는 과정을 통해
    정확하고 논리적인 결과를 낸다.

우리가 수학 문제를 풀 때 단순히 “답이 맞았다”에 만족하지 않고 왜 그런지, 과정이 논리적으로 타당한지를 따지는 것이
진짜 수학적 사고를 키우는 길이 아닐까?

+ Recent posts