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,α||X−Dα||2F+λ||α||1
- X∈RD×N: 입력 데이터 행렬(N개의 데이터포인트, D개의 특징값)
- D∈RD×K: 학습 목적인 사전 D, K개의 원자(벡터)로 구성. 기저벡터가 꼭 직교하지 않아도됨.
- α∈RK×N: 각 데이터가 사전 원자들을 얼마만큼 조합하는지 나타내는 계수 행렬(=코딩이라고도 부름)
- λ||α||1: 희소성 제약(L1 정규화). 즉, 수 많은 조합의 원자로 구성하는게 아니라 최대한 단일의 원자로 구성하기를 원함.
이 사전학습(Dictionary learning)은 사전과 계수를 번갈아가면서 업데이트 하는 방식(Alternating optimization)을 사용합니다.
- Step 1: Sparse coding (D고정, α 최적화)
- 현재 사전 D가 주어졌다고 가정하고, 각 데이터 xi를 D\mathbf{D}의 희소 조합으로 표현하도록 α\mathbf{\alpha}를 찾습니다.
- 이는 L1 정규화된 선형 시스템 문제로, 라쏘(Lasso) 회귀 또는 OMP(Orthogonal Matching Pursuit) 등의 방법을 사용합니다.
- 이 과정은 데이터 포인트 N개 각각에 대해 독립적으로 수행됨.
αi=argminα||xi−Dα||22+λ||α||1
- Step 2: Dictionary Update (α\mathbf{\alpha}
- 희소 계수 α\mathbf{\alpha}가 주어졌다고 가정하고, 데이터를 잘 설명하도록 사전 D\mathbf{D}를 업데이트합니다.
- 이때, D\mathbf{D}의 원자 벡터들은 정규화(∥dk∥2≤1\|d_k\|_2 \leq 1) 조건을 가짐.
- 일반적으로 최소제곱법(Least Squares) 기반으로 최적화가 수행됨.
고정, D\mathbf{D} 최적화)
D=argminD||xi−Dα||2F, subject to ||dk||2≤1,∀k
- 반복 (Alternating Optimization)
- 1단계(코딩)와 2단계(사전 학습)를 번갈아 수행하면서 수렴할 때까지 반복.
'기초과학 > 선형대수' 카테고리의 다른 글
PDM (Positive definite matrix) 이란? 5분컷 이해 (0) | 2022.01.16 |
---|---|
고윳값, 고유벡터, 대각화, 요르단 표준형 (1) (0) | 2021.06.16 |
LU분해 5분컷 이해: python (0) | 2021.06.15 |
랭크, 역행렬, 일차방정식 풀이- 요약 (numpy) (0) | 2021.06.09 |
벡터, 행렬, 행렬식의 표기 (0) | 2021.06.08 |