AutoEncoder 개념
- 기본적으로 위와 같은 Layer로 구성이 된 형태를 AutoEncoder라고 합니다.
- 비지도 기반의 학습방법을주로 사용하면서 기본형태를 Input과 Output 출력층이 같습니다.
- 그 이유로는 Input값에서 뽑아낸 [code] (특징값) 을 사용해서 같은 형태의 Output으로 나오면서 이러한 [code]에서 유용한 feature들을 뽑아내는지 확인하는 과정을 통하기 때문에 같은 크기의 출력층을 가집니다.
- 위와 같은 이유로 Encoder와 Decoder 부분으로 분리할수가 있는데 이를 그림으로 살펴보면 다음과 같은형태가 나옵니다.
- 입력값으로부터 feature를 뽑아내는 부분을 encoder, feature로부터 output을 만들어내는 과정을 decoder라고 주로 합니다.
Code?
그렇다면 위에서 code라는 부분은 결국 input 으로부터 얻게된 출력층을 뜻하고 이는 input layer로부터 데이터가 암호화 (압축화) 되었다고 합니다.
- 그렇다면 어떻게 input layer에서 작은 부분[code]로 압축이나 암호화를 시킬수 있을까?
차원 축소 방법 : PCA : Principal Component Analysis
- 차원 축소 방법으로는 PCA라고 불리는 차원 축소기법을 주로 사용합니다.
- PCA에 대한 설명은 다양하게 많이 있으나 간단하게 설명하자면 데이터로부터 가장 중요한 특징 순서대로 추출을 해 중요한 feature를 가지는 순으로 데이터를 압축하는 방법입니다. 자신이 원하는 만큼 데이터를 압축가능하나 너무많이 압축을하면 중요한 데이터를 잃게 될수 있으므로 적절한 크기의 PCA를 설정하는 것이 중요합니다.
AutoEncoder 학습은?
- 입력층과 출력층이 동일한 차원을 가지는 신경망 설계
- Encoder의 출력이 -> [code]로 압축됌 ( PCA )
- Code로부터 다시 OutputLayer로 출력
- Loss 계산 => Input값과 Output값의 차이를 loss로 사용
- 주로 위와 같은 순서로 AutoEncoder를 만들고 학습시킵니다.
AutoEncoder의 활용은?
- AutoEncoder를 학습시킨후 Encoder부분, 즉 InputLayer와 code 의 layer들을 활용해 사용합니다.
'AI' 카테고리의 다른 글
Stable Diffusion + Controlnet 을 통한 Logo 이미지 생성 (1) | 2024.04.19 |
---|---|
Stable Diffusion의 기본적인 이해와 설치! (1) | 2024.04.12 |
Transformer Attention이란? (0) | 2023.12.14 |