반응형
AutoEncoder란?
AutoEncoder는 비지도 학습 신경망 모델로, 레이블되어 있지 않은 훈련 데이터를 사용하여 압축(인코딩)하고 다시 복원(디코딩)하는 과정을 통해 효율적인 데이터 표현을 학습합니다.
또한, unsupervised learning(비지도 학습)을 supervised learning(지도 학습) 문제로 바꿔서 해결한다고 표현할 수 있습니다.
- 일반적으로 지도 학습은 입력 데이터 X와 타겟 데이터 y를 모두 사용하여 학습합니다. 반면, 비지도 학습은 입력 데이터 X만 사용하여 모델을 학습시킵니다.
- AutoEncoder의 특징은 입력 데이터 X만 주어지지만, 타겟 데이터도 X라는 점입니다: 원본 데이터 X를 입력으로 받고 재구성된 데이터 X'을 출력합니다.
- AutoEncoder의 목표는 X와 X'의 차이(reconstruction error)를 최소화하는 것 입니다.
- 다시 말해, 입력과 타겟이 쌍으로 존재한다고 볼 수 있고, 손실 함수로 입력과 출력의 차이를 계산하고 이 차이를 최소화하는 방향으로 학습하기 때문에 위와 같이 표현할 수 있는 것입니다.
압축 과정에서 추출된 데이터 Z는 latent vector이라고 부르고 code, feature, hidden representation 등으로 이해할 수도 있습니다.
- encoder: 입력 데이터를 더 낮은 차원의 잠재 공간으로 압축
- 잠재 공간(latent space): 압축된 데이터의 표현
- decoder: 압축된 표현을 원래의 입력 차원으로 복원
오토인코더의 특징:
- 입력과 출력이 동일: 오토인코더는 일반적으로 입력 데이터를 받아 그 데이터를 다시 reconstruct(재구성)하는 것을 목표로 합니다.
- 레이블 불필요: 비지도 학습의 차원 축소에 해당하는 기법이기 때문에 학습 과정에서 타겟 데이터가 없는 훈련 데이터를 사용합니다.
- 차원 축소와 특성 학습: 인코더 부분에서 입력 데이터의 중요한 특성을 학습하고, 종종 더 낮은 차원의 표현(잠재 공간 - latent space)을 생성합니다.
- 데이터 압축과 노이즈 제거: 입력 데이터를 효율적으로 압축하거나 노이즈를 제거하는데에 사용될 수 있습니다.
오토인코더가 비지도 학습으로 분류되는 이유:
- Self-Supervised: 오토인코더는 입력 데이터 자체를 타겟으로 사용하므로 외부 레이블 없이 학습합니다.
- 패턴 발견: 데이터의 내제된 구조와 패턴을 스스로 학습합니다.
- 특성(feature) 추출: 레이블 없이 데이터의 중요한 특성(feature)을 자동으로 학습합니다.
기본적인 구조를 가지는 일반 오토인코더, 노이즈가 있는 입력을 정제하는 Denoising AutoEncoder, 확률적 모델링을 통해 생성 능력을 향상하는 Variational AutoEncoder, 활성화를 제한하여 특징을 학습하는 Sparse AutoEncoder 등의 종류가 있습니다.
따라서, 차원 축소, 특징 추출, 이미지 압축 및 노이즈 제거, 이상 감지, 추천 시스템 등에 사용됩니다.
AutoEncoder는 특히 입력 데이터의 특성(feature)를 추출할 때 많이 사용됩니다.
시계열 데이터와 AutoEncoder
위에 설명된 AutoEncoder의 특징 덕분에 시계열 데이터에 적용했을 때도 이점이 있습니다.
1. 차원 축소
- 시계열 데이터는 일반적으로 여러 변수가 동시에 측정되거나 시퀀스의 길이가 길기 때문에 고차원적입니다.
- AutoEncoder는 고차원 데이터를 더 낮은 차원의 표현으로 압축할 수 있다는 이점이 있습니다.
- 결과적으로, 고차원 데이터를 더 낮은 차원의 잠재 공간으로 압축하기 때문에 차원의 저주 문제(Curse of Dimensionality)를 완화해서 아래와 같은 성과를 이룰 수 있습니다.
- 데이터 포인트 간의 관계가 더 의미있게 표현됩니다.
- 실제로 중요한 패턴이 있는 부분만 보존되게 됩니다.
- 다시 말해, 일반화 능력 향상 효과를 보게 됩니다.
2. 특성(feature) 자동 학습
- 데이터의 중요한 특성(feature)을 자동으로 학습합니다.
- 시계열 데이터에서 중요한 패턴을 포착하는데 유용합니다.
- 더 적은 차원으로 데이터를 표현하면서 중요한 정보들은 보존되고, 불필요한 정보는 자연스럽게 제거되기 때문에 데이터의 본질적인 구조를 파악하는데에 있어서 효과적입니다.
3. 노이즈 제거
- 시계열 데이터는 노이즈를 포함할 수 있습니다.
- AutoEncoder는 입력을 재구성하는 과정에서 이러한 노이즈를 제거할 수 있습니다.
- 일반 AutoEncoder, 노이즈 제거에 특화된 Denoising AutoEncoder 둘 다 노이즈 제거에 이점이 있지만 동작 방식이 다릅니다.
- 일반 AutoEncoder:
- 잠재 공간의 차원이 입력 데이터의 차원보다 작습니다.
- 따라서, 중요한 특징만 잠재 공간에 압축되어 저장됩니다.
- 재구성 과정에서 중요하지 않은 변동성(노이즈)는 자연스럽게 제거됩니다.
- Denoising AutoEncoder:
- 노이즈 제거에 특화되어 있는 구성입니다.
- 입력에 의도적으로 노이즈를 추가해서 진행하여 깨끗한 데이터를 타겟으로 학습합니다.
- 일반 AutoEncoder:
4. 결측치 추정
- 입력 데이터로부터 패턴을 학습하고 변수 간의 관계성을 파악하기 때문에(시계열 데이터의 경우 시간적 의존성 학습) 학습된 패턴을 기반으로 결측치를 추정하는 것이 가능해집니다.
- 학습된 주변 데이터의 문맥과 변수 간 상관관계를 활용하여 추정하게 됩니다.
시계열 데이터와 차원의 저주에 대한 자세한 내용은 다음 포스트에서 다루겠습니다:
Reference
할 수가 없었기 때문에 포기한 게 아니라, 포기했기 때문에 할 수 없었던 것이다
- 김계란 -
반응형
'캐글' 카테고리의 다른 글
[Kaggle Extra Study] 4. Curse of Dimensionality 차원의 저주 (9) | 2024.10.23 |
---|---|
[Kaggle Extra Study] 3. Time-series Data (2) | 2024.10.22 |
[Kaggle Extra Study] 1. 지도 학습 vs. 비지도 학습 (1) | 2024.10.22 |
근황 - 2024.10.21 (2) | 2024.10.21 |
ML/DL(3) - 손실 함수와 경사 하강법의 관계 (0) | 2023.07.08 |