오토인코더
최근 수정 시각: ()
분류
1. 개요2. 구조3. 손실 함수4. 종류
4.1. Undercomplete autoencoder4.2. 희소 오토인코더(Sparse Autoencoder)4.3. 디노이징 오토인코더(Denoising Autoencoder, DAE)4.4. 수축 오토인코더(Contractive Autoencoder, CAE)4.5. 마스크드 오토인코더 (Masked Autoencoder, MAE)4.6. 변분 오토인코더(Variational Autoencoder, VAE)4.7. 희소 오토인코더(Sparse Autoencoder, SAE)
5. 활용 분야6. 장단점7. 주성분 분석 (PCA)과의 비교1. 개요 [편집]
오토인코더(Autoencoder, AE)는 인공신경망의 한 종류로, 비지도학습 방식으로 사용되는 대표적인 인공지능 모델이다. 주된 목적은 입력 데이터의 저차원 표현(latent representation)을 학습하는 것으로, 차원 축소, 특징 학습, 생성 모델[1], 기계적 해석 가능성[2]등 다양한 분야에서 활용된다.
오토인코더의 가장 기본적인 아이디어는 입력을 압축하여 저차원 벡터로 만들고(인코딩), 이 저차원 벡터로부터 다시 원본 입력을 복원(디코딩)하는 것이다. 이 과정에서 네트워크는 데이터의 중요한 특징을 스스로 학습하게 된다. 즉, 입력 를 받아서 잠재 변수 로 압축하고, 다시 로부터 복원된 를 출력하며, 이때 와 의 차이(재구성 오류, reconstruction error)를 최소화하도록 학습된다.
오토인코더의 가장 기본적인 아이디어는 입력을 압축하여 저차원 벡터로 만들고(인코딩), 이 저차원 벡터로부터 다시 원본 입력을 복원(디코딩)하는 것이다. 이 과정에서 네트워크는 데이터의 중요한 특징을 스스로 학습하게 된다. 즉, 입력 를 받아서 잠재 변수 로 압축하고, 다시 로부터 복원된 를 출력하며, 이때 와 의 차이(재구성 오류, reconstruction error)를 최소화하도록 학습된다.
2. 구조 [편집]
오토인코더는 크게 인코더와 잠재 공간, 디코더의 세 부분으로 구성된다.
2.1. 인코더(Encoder) [편집]
입력 데이터 를 받아서 저차원의 잠재 변수(Latent Variable) 또는 코드(Code) 로 변환하는 역할을 한다. 보통 여러 개의 신경망 레이어로 구성되며, 입력 차원보다 낮은 차원으로 점진적으로 줄여나간다.
- 함수 형태:
- 역할: 입력 데이터의 중요한 특징을 추출하고 압축하여 잠재 공간(Latent Space)에 매핑한다.
2.2. 잠재 공간(Latent Space) [편집]
인코더에 의해 압축된 저차원 표현 가 존재하는 공간이다. 이 공간의 차원은 보통 입력 데이터의 차원보다 훨씬 작으며 데이터의 핵심적인 특징이 응축되어 있다고 가정한다. 오토인코더의 성능과 학습 능력에 큰 영향을 미치는 부분이다. 이 부분이 가장 차원이 낮기 때문에 병목(bottleneck)이라고도 불린다.
2.3. 디코더(Decoder) [편집]
잠재 공간의 변수 를 받아서 다시 원래 입력 데이터의 차원으로 복원하는 역할을 한다. 인코더와 대칭적인 구조를 가지는 경우가 많으며, 저차원 표현으로부터 원본과 유사한 데이터 를 생성한다.
- 함수 형태:
- 역할: 잠재 변수로부터 원본 데이터를 재구성한다.
3. 손실 함수 [편집]
오토인코더의 학습 목표는 입력 와 복원된 출력 사이의 차이를 최소화하는 것이다. 이를 위해 재구성 손실(Reconstruction Loss)을 사용한다.
- 평균 제곱 오차(Mean Squared Error, MSE): 입력 데이터가 연속적인 실수 값일 경우 주로 사용된다.
- 이진 교차 엔트로피(Binary Cross-Entropy, BCE): 입력 데이터가 0 또는 1과 같은 이진 값이거나, 픽셀 값처럼 [0, 1] 사이의 확률로 해석될 때 주로 사용된다.[3]
)]
여기서 은 데이터 샘플 수, 는 데이터의 차원이다.
4. 종류 [편집]
기본적인 오토인코더 구조 외에도 다양한 변형 모델들이 존재한다.
4.1. Undercomplete autoencoder [편집]
가장 단순한 형태로, 잠재 공간의 차원이 입력 데이터의 차원보다 작은 경우이다. 인코더는 데이터를 압축하고 디코더는 압축을 해제하는 역할을 하며, 데이터의 주요 특징을 학습하도록 강제한다. 주성분 분석(PCA)과 유사한 역할을 하지만, 비선형 변환이 가능하다는 차이점이 있다.
4.2. 희소 오토인코더(Sparse Autoencoder) [편집]
잠재 공간의 차원이 입력 데이터의 차원보다 크더라도, 잠재 변수 의 대부분의 요소가 0에 가깝도록(희소성, Sparsity) 정규화 제약을 추가한 모델이다. 이는 네트워크가 특정 패턴에만 활성화되는 소수의 뉴런을 사용하여 데이터를 표현하도록 유도한다. 재구성 손실에 희소성 페널티 항을 추가하여 학습한다.
여기서 는 희소성 강도 조절 파라미터, 는 목표 희소성 비율(작은 값, 예: 0.05), 는 잠재 변수 번째 뉴런의 평균 활성화 값, 은 쿨백-라이블러 발산이다.
여기서 는 희소성 강도 조절 파라미터, 는 목표 희소성 비율(작은 값, 예: 0.05), 는 잠재 변수 번째 뉴런의 평균 활성화 값, 은 쿨백-라이블러 발산이다.
4.3. 디노이징 오토인코더(Denoising Autoencoder, DAE) [편집]
입력 데이터에 의도적으로 약간의 노이즈(잡음)를 추가한 후, 이를 인코더에 입력하고 디코더가 원본의 깨끗한 데이터를 복원하도록 학습하는 모델이다. 이는 입력의 작은 변화에 덜 민감하고 더 강인한(Robust) 특징 표현을 학습하도록 돕는다. 디노이징 오토인코더에서의 학습 과정은 다음과 같다.
- 원본 데이터 에 노이즈를 추가하여 손상된 데이터 를 만든다.
- 를 인코더에 입력하여 를 얻는다.
- 를 디코더에 입력하여 복원된 데이터 를 얻는다.
- 손실 함수는 원본 데이터 와 복원된 데이터 사이의 차이 를 최소화하도록 계산한다.
4.4. 수축 오토인코더(Contractive Autoencoder, CAE) [편집]
DAE와 유사하게 입력의 작은 변화에 둔감한 특징 표현을 학습하는 것을 목표로 한다. 이를 위해 재구성 손실에 인코더의 야코비 행렬(Jacobian Matrix)의 프로베니우스 노름(Frobenius Norm) 제곱에 해당하는 페널티 항을 추가한다. 이는 입력 데이터의 변화에 대해 잠재 변수 가 덜 변하도록(수축, Contractive) 제약하는 효과를 가진다.
여기서 는 입력 에 대한 인코더 함수 의 야코비 행렬이다.
여기서 는 입력 에 대한 인코더 함수 의 야코비 행렬이다.
4.5. 마스크드 오토인코더 (Masked Autoencoder, MAE) [편집]
2021년 카이밍 허(Kaiming He) 연구팀[4]이 발표한 자기지도학습 방식의 오토인코더로, 크게 보면 디노이징 오토인코더의 일종이다. 주로 컴퓨터 비전, 특히 Vision Transformer(ViT)의 사전훈련(pre-training)에 사용된다.
핵심 아이디어는 입력 이미지 패치의 대부분을 무작위로 가리고 가려지지 않은 보이는 패치만을 인코더로 처리하는 것이다. 이후 디코더는 이 정보와 마스크 위치 정보를 바탕으로 원본의 가려진 부분을 복원하도록 학습된다.
이 접근법은 인코더가 전체 데이터의 일부만 보기 때문에 계산 효율성이 매우 높고 대규모 모델 학습에 유리하다. 레이블 없는 데이터로부터 효과적인 시각적 표현(representation)을 학습할 수 있어, Vision Transformer와 같은 모델의 주요 자기지도학습 사전훈련 기법 중 하나로 자리 잡았다.
핵심 아이디어는 입력 이미지 패치의 대부분을 무작위로 가리고 가려지지 않은 보이는 패치만을 인코더로 처리하는 것이다. 이후 디코더는 이 정보와 마스크 위치 정보를 바탕으로 원본의 가려진 부분을 복원하도록 학습된다.
이 접근법은 인코더가 전체 데이터의 일부만 보기 때문에 계산 효율성이 매우 높고 대규모 모델 학습에 유리하다. 레이블 없는 데이터로부터 효과적인 시각적 표현(representation)을 학습할 수 있어, Vision Transformer와 같은 모델의 주요 자기지도학습 사전훈련 기법 중 하나로 자리 잡았다.
4.6. 변분 오토인코더(Variational Autoencoder, VAE) [편집]
생성 모델로서의 기능이 강화된 오토인코더이다.
4.7. 희소 오토인코더(Sparse Autoencoder, SAE) [편집]
기계적 해석 가능성 학계에서 많이 뜨고 있는 방법이다.
Anthropic이 2024년 5월 21일 자사 블로그에 해당 방법을 응용하여 자사 상용모델 claude 3 sonnet 모델의 내부 기전을 해석해낼 수 있었다는 내용의 블로그 글을 게시한 바 있다. 논문 원본을 보고 싶다면 여기로
Anthropic이 2024년 5월 21일 자사 블로그에 해당 방법을 응용하여 자사 상용모델 claude 3 sonnet 모델의 내부 기전을 해석해낼 수 있었다는 내용의 블로그 글을 게시한 바 있다. 논문 원본을 보고 싶다면 여기로
5. 활용 분야 [편집]
오토인코더와 그 변형 모델들은 다양한 분야에서 활용된다.
- 차원 축소 및 데이터 시각화: 고차원 데이터를 저차원 잠재 공간으로 압축하여 시각화하거나 다른 머신러닝 모델의 입력으로 사용한다. (예: t-SNE를 잠재 변수에 적용)
- 특징 학습: 레이블이 없는 대량의 데이터로부터 유용한 특징 표현을 비지도 방식으로 학습하여, 이를 지도 학습 모델의 초기 가중치로 사용하거나 특징 추출기로 활용한다. (전이 학습)
- 이상 탐지: 정상 데이터로 오토인코더를 학습시킨 후, 새로운 데이터의 재구성 오류를 측정한다. 정상 데이터는 오류가 작게 나타나지만, 비정상(이상) 데이터는 학습된 패턴과 다르므로 재구성 오류가 크게 나타나는 경향이 있다. 이를 이용해 이상치를 탐지할 수 있다.
- 노이즈 제거: 잡음 제거 오토인코더(DAE)를 사용하여 이미지나 오디오 신호 등에서 노이즈를 제거한다.
- 데이터 압축: 인코더를 사용하여 데이터를 압축하고, 디코더로 복원할 수 있다. 다만, 보통 손실 압축이며 압축 효율이 전문적인 압축 알고리즘보다 뛰어나지는 않다.
6. 장단점 [편집]
6.1. 장점 [편집]
6.2. 단점 [편집]
- 학습의 어려움: 네트워크 구조, 하이퍼파라미터 설정 등에 따라 학습이 불안정하거나 성능이 잘 나오지 않을 수 있다.
- 정보 손실: 차원 축소 과정에서 정보 손실이 발생할 수밖에 없다.
7. 주성분 분석 (PCA)과의 비교 [편집]
- PCA는 데이터의 분산을 최대한 보존하는 선형 변환을 찾는 통계적 기법이다.
- 오토인코더는 신경망을 이용한 비선형 변환이 가능하여 더 복잡한 데이터 구조를 표현할 수 있다.[5]
- PCA는 해석적인 해가 존재하지만, 오토인코더는 경사하강법 등을 이용한 반복적인 최적화 과정이 필요하다.
[1] 변분 오토인코더(variational autoencoder)에만 해당된다[2] 영어로 mechanistic interpretability[3] 여기서 0과 1사이의 확률로 표현되는 픽셀이란 총천연색 사진이나 일러스트의 픽셀을 의미하는 것이 아니라 MNIST 데이터셋처럼 검은색과 흰색 외에는 명도구분이 없는 가장 단순한 흑백 이미지의 픽셀을 말하는 것이다[4] 당시 페이스북 AI Research, 현 메타 AI.[5] 단, 인코더와 디코더에 활성화 함수 없이 선형 레이어만 사용한 기본 오토인코더는 PCA와 유사한 결과를 보인다.
Contents are available under the CC BY-NC-SA 2.0 KR; There could be exceptions if specified or metioned.
개인정보 처리방침
임시조치 및 기타 문의: [email protected]
떡밥위키 후원하기
개인정보 처리방침
임시조치 및 기타 문의: [email protected]
떡밥위키 후원하기