본문 바로가기
기초과학/선형대수

Dictionary learning (사전학습) 이란? 적용분야

by 연금(Pension)술사 2025. 3. 12.

 

Dictionary learning의 필요성(motivation)


“원자(atom)”라는 기저 벡터들의 희소 조합(sparse combination)으로 표현하는 기법입니다. 이때 ‘원자’들의 집합을 ‘사전(dictionary)’이라고 부릅니다. 다음은 Dictionary Learning의 주요 필요성입니다.

 

  • 희소성(Sparsity)을 통한 효율적 표현
    • 데이터를 사전의 원자 몇 개만으로(= 소수의 계수만 사용) 표현할 수 있게 함으로써,
    • 압축, 복원(denoising), 특징 추출(feature extraction) 등에서 유리한 표현이 가능해집니다.
    • 즉, “중요한 정보만 남기고 불필요한 잡음이나 중복을 줄일 수 있다”는 것이 큰 장점입니다.
  • 기존 기저(예: PCA)보다 유연한 모델
    • PCA(주성분분석)나 SVD 등은 직교(orthogonal) 기저나 특정 제약이 있는 선형 변환을 가정합니다.
    • Dictionary Learning은 원자 벡터들 간의 직교성 제한 없이, 데이터에 맞춰 ‘가장 잘’ 표현하는 원자들을 직접 학습할 수 있습니다.
    • 이로 인해, 잡음이 많거나, 데이터 구조가 복잡해도, 데이터 특성에 맞춘 기저를 찾을 수 있습니다.
  • 다양한 제약 조건 가능
    • Dictionary Learning은 L1(희소성), 양수 제약, 원자 노름 제한 등 다양한 제약을 유연하게 적용해가며 원하는 형태의 사전을 학습시킬 수 있습니다.
    • 예컨대, 의료영상(H&E 스테인 분해)처럼 “양의 값만을 갖는 해”를 원하는 경우, Dictionary Learning에서 쉽게 반영할 수 있습니다.

 

Dictionary 라고 부르는 이유


Dictionary(사전)이라고 부르는 이유는 문장을 단어의 조합으로 표현하듯이, 데이터(신호)를 원자(벡터)의 희소 조합으로 표현한다는 개념 때문입니다.

  • 사전(Dictionary) = 원자1, 원자2,... 의 집합. 원자가 모여있는 행렬을 일컫는 말
  • 원자(Atom): 벡터
  • 코딩(Coding): 데이터를 사전 내에 원자들의 선형조합으로 표현할 때, 필요한 계수들. 예를 들어, 데이터=(사전)x(계수)라고 표현할 때의 계수

 

Dictionary learning의 목표 및 동작알고리즘


Dictionary Learning의 목표는

  • 데이터를 잘 표현할 수 있는 ‘사전(Dictionary)’(즉, 여러 개의 ‘원자(atom)’ 벡터)와
  • 각 데이터가 이 원자들을 어떻게 조합해서 만들어지는지를 알려주는 ‘희소 계수(코딩, αα)’
    이 두 가지를 동시에 찾는 것입니다.

즉, (데이터 행렬) = (사전 행렬) × (계수 행렬) 형태로 나타낼 수 있도록,

  • 사전(Dictionary) D: 데이터를 구성하는 핵심 패턴 벡터(원자)들의 모음
  • 계수(Coefficients) α : 각 원자들을 얼마만큼씩 섞어서 원 데이터를 구성하는지

를 구하는 게 Dictionary Learning입니다. 그리고 스파스(sparse) 제약, 양수 제약 등 다양한 조건을 함께 적용해,
데이터를 적은 수의 원자 조합으로(희소 표현) 설명하도록 유도합니다.

 

다음과 같은 수식을 만족하는 **사전(Dictionary) D와 희소 계수(Coefficients) α**를 찾는 문제입니다

minD,α||XDα||2F+λ||α||1

  • XRD×N: 입력 데이터 행렬(N개의 데이터포인트, D개의 특징값)
  • DRD×K: 학습 목적인 사전 D, K개의 원자(벡터)로 구성. 기저벡터가 꼭 직교하지 않아도됨.
  • αRK×N: 각 데이터가 사전 원자들을 얼마만큼 조합하는지 나타내는 계수 행렬(=코딩이라고도 부름)
  • λ||α||1: 희소성 제약(L1 정규화). 즉, 수 많은 조합의 원자로 구성하는게 아니라 최대한 단일의 원자로 구성하기를 원함.

 

이 사전학습(Dictionary learning)은 사전과 계수를 번갈아가면서 업데이트 하는 방식(Alternating optimization)을 사용합니다.

  • Step 1: Sparse coding (D고정, α 최적화)
    • 현재 사전 D가 주어졌다고 가정하고, 각 데이터 xiD\mathbf{D}의 희소 조합으로 표현하도록 α\mathbf{\alpha}를 찾습니다.
    • 이는 L1 정규화된 선형 시스템 문제로, 라쏘(Lasso) 회귀 또는 OMP(Orthogonal Matching Pursuit) 등의 방법을 사용합니다.
    • 이 과정은 데이터 포인트 N개 각각에 대해 독립적으로 수행됨. 

 

αi=argminα||xiDα||22+λ||α||1

  • Step 2: Dictionary Update (α\mathbf{\alpha} 고정, D\mathbf{D} 최적화)
    • 희소 계수 α\mathbf{\alpha}가 주어졌다고 가정하고, 데이터를 잘 설명하도록 사전 D\mathbf{D}를 업데이트합니다.
    • 이때, D\mathbf{D}의 원자 벡터들은 정규화(∥dk∥2≤1\|d_k\|_2 \leq 1) 조건을 가짐.
    • 일반적으로 최소제곱법(Least Squares) 기반으로 최적화가 수행됨.

D=argminD||xiDα||2F,   subject to   ||dk||21,k

  • 반복 (Alternating Optimization)
    • 1단계(코딩)와 2단계(사전 학습)를 번갈아 수행하면서 수렴할 때까지 반복.

 

 

반응형