티스토리 뷰

데이터 분석/딥러닝

AutoEncoder

yessen 2022. 12. 26. 13:29
728x90

AutoEncoder는 아래 그림과 같이 입력 데이터를 축소한 은닉 레이어를 만들고 이것을 다시 복원하여 출력 데이터를 입력 데이터와 같에 만드는 신경망 모델이다. Label이 따로 존재하지 않고 입력 데이터를 Label처럼 이용한다는 점에서 비지도 학습(Unsupervised Learning)이라고 할 수 있다.

 

AutoEncoder는 입력 데이터를 축소하면서 좀 더 추상적이고 특징을 함축하는  encoder부분과 이것을 바탕으로 입력 데이터로 복원하는 decoder부분으로 구성되어 있으며, 단순히 입력 데이터를 복사하는 것을 방지하기 위해 여러가지 정규화 기법(regularization)을 사용한다.

 

이 정규화 기법에는 Sparse, Denoising, Contractive 방법이 있으며 이들은 분류 과제에 적합하다.

또한 Variational autoencoder로서 생성 모델에 이용하기도 한다.

 

AutoEncoder는 얼굴 인식, 특성 추출, 이상 탐지. 단어 의미 추출 등의 과제에 사용될 수 있으며, 언급한 바와 같이 입력 데이터와 비슷한 출력 데이터를 생성하는 모델에도 활용될 수 있다. 

 

이미지 출처: 위키피디아

 

1. Sparse AotoEncoder (CS294A, Andrew Ng)

이미지 출처: CS294A

위 그림의 구조에서 오토인토더는 인풋 함수를 근사하려고 학습함. 즉, hW,b(x) ≈ x.

이 때 은닉층의 뉴런 유닛의 수를 줄이는 등의 제약을 가하면 흥미로운 인풋 데이터의 구조를 파악할 수 있음. 즉, 뉴런 유닛의 개수를 줄이면 그만큼 적은 수에 모든 특징을 압축해야 하는 것. 인풋 데이터가 완전히 독립적인 관계라면 이것이 무의미하지만 어느 정도 상관관계가 있으면  일부 상관관계의 유의미한 특성을 발견할 수 있음.

 

은닉 뉴런의 개수가 입력 데이터보다 많은 경우에도 다른 제약을 가함으로써 이러한 특징을 추출할 수 있는 데 그 중 하나가 바로 sparse 구조. sparse 구조는 뉴런의 활성화에 제약을 둠. 

ρˆ을 sparse parameter인 ρ (0.05 정도의 아주 작은 값)에 가깝도록 하기 위해 페널티를 추가함. 

페널티는 위와 같이 추가하는데, 이는 평균이 ρ인 베르누이 확률 변수와 평균이 ρj인 베르누이 확률 변수 사이의 Kullback-Leibler(KL) 발산과 같음. KL-divergence는 서로 다른 두 분포가 얼마나 다른지를 측정하기 위한 표준 함수이며, 이 페널티 함수는 ˆρj = ρ이면 KL(ρ||ρˆj ) = 0이고, 그렇지 않으면 ρj가 ρ에서 멀어짐에 따라 단조 증가함. 즉, 페널티 항을 최소화하면  ˆρj = ρ가 되는 것. 

 

 

2. Denoising AutoEncoder (Vincent et.al, 2008)

은닉 뉴런의 수나 입력 뉴런의 수가 많은 경우에 페널티를 주어도 흥미로운 특징을 뽑아낼 수 있음. 이 때 줄 수 있는 페널티로 noise 추가가 있음. 즉, noise로 손상된 데이터를 인풋으로 사용하고 noise가 제거된 데이터를 출력으로 사용하는 것.

결국, X에 Xe를 매핑하는 확률적 연산자 p(X|Xe)를 배우는 것이며, noised data는 manifold의 바깥에 형성되어 있을 가능성이 높고 깨끗한 데이터는 manifold 주변에 있을 가능성이 높기 때문에 낮은 확률값의 Xe에서 높은 확률값의 X로 이동하는 경향이 있는 map을 학습한다고 볼 수 있음. 

즉, Denoising AutoEncoder는 manifold를 정의하고 학습하는 과정이라고 볼 수 있음. 일반적으로 Y = f(X)는 데이터의 주요 변화, 즉 manifold를 캡처하는 데 매우 적합한 X의 표현으로 이해할 수 있는 것.

또한, Denoising AutoEncoder를 훈련하는 것은 특정 생성 모델에 대한 변이 범위를 최대화하는 것과 동일하기도 함.

 

 

3. Contractive AutoEncoder (Rifai et. al., 2011)

Contractive AutoEncoder는 주어진 데이터에 대해 중요하지 않은 변환에 대한 불변 표현(invariant representation)을 목표로 학습함. 그렇게 함으로써 데이터의 변화에 대한 민감도가 감소하게 되고 결과적으로 robust한 결과를 기대할 수 있음.

이 regularizer는 입력과 관련된 인코더 활성화 시퀀스에 대해 Jacobian 행렬의 Frobenius 표준을 준수해야 하며, 이 값이 0이면 변화를 관찰하지 않음. 이 값이 크면 입력 데이터에 따른 출력에 변화가 크다는 의미가 됨. 일반적으로 많은 autoencoder의 노드 중 하나에 적용함. 

 

 

4. Variational autoencoder (Kingma & Welling, 2013)

VAE는 우도 기반의 생성 모델(likelihood-based generative model)임. AutoEncoder의 기본적인 아이디어를 가져와서 입력 데이터의 분포에서 여러 샘플을 뽑아 같은 데이터 분포의 다른 값으로 샘플을 생성해 내는 기법이라고 이해할 수 있음. 

이미지 출처: https://data-science-blog.com/blog/2022/04/19/variational-autoencoders/

 

'데이터 분석 > 딥러닝' 카테고리의 다른 글

모델 평가 방법 (Chi-square, C-statistic, AUROC, NRI, IDI)  (0) 2023.01.05
Transformer Model  (0) 2022.12.27
Best AI papers in 2022  (0) 2022.12.26
LSTM & GRU  (0) 2022.12.15
CNN 모델들  (0) 2022.12.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함