🎶 오토인코더, GAN, 확산 모델의 개념에 대해 살펴보자.
1. 오토인코더
오토인코더(autoencoder)는 지도 방식을 사용하지 않고도 잠재 표현 또는 코딩이라고 부르는 입력 데이터의 밀집 표현을 학습할 수 있는 인공 신경망을 말한다. 코딩은 일반적으로 입력보다 훨씬 낮은 차원을 갖기 때문에, 오토인코더는 차원 축소 혹은 시각화에 유용하게 사용된다.
일부 오토인코더는 훈련 데이터와 매우 비슷하면서 새로운 데이터를 생성할 수 있는, 생성 모델로써의 역할도 수행할 수 있다. 예로 얼굴 사진으로 오토인코더를 학습시키면 이 모델은 새로운 얼굴을 생성할 수 있게 되는 것이다.
오토인코더는 단순히 입력을 출력으로 복사하는 방법을 배우는데, 다양한 방법을 통해 네트워크에 제약을 가해 단순히 입력을 출력으로 바로 복사하지 못하도록 막고 데이터를 효율적으로 표현하는 방법을 배우도록 한다.
2. GAN(generative adversarial networks) 이하 생성적 적대 신경망
신경망 두 개로 구성되는 모델로써, '생성자(generator)'는 훈련 데이터와 비슷하게 보이는 데이터를 생성하며, '판별자(discriminator)'는 가짜 데이터와 진짜 데이터를 구분하는 역할을 맡는다.
이 모델의 구조는 신경망이 훈련하는 동안 생성자와 판별자가 서로 경쟁을 하게 되는데, 이러한 훈련 방법을 '적대적 훈련(adversarial training)'이라고 부른다.
3. 확산 모델(diffusion model)
GAN보다 다양하고 고품질의 이미지를 생성하면서도 훨씬 더 쉽게 훈련할 수 있게 해주는 모델로써, 대표 모델 중 하나인 잡읍 제거 확산 모델(DDPM)은 모델은 이미지에서 아주 작은 잡음을 제거하도록 훈련된다.
다음 포스트에서는 각 모델을 python으로 직접 구현해보고 더 구체적인 내용에 대해 알아보도록 하겠다.
'머신러닝' 카테고리의 다른 글
오토인코더 - 기본 개념 및 PCA 수행, 그리고 적층 오토인코더 python 구현 (0) | 2025.04.26 |
---|---|
[RL] 강화학습 - 심층 Q-러닝 알고리즘의 여러 가지 변형 (0) | 2025.04.20 |
[RL] 강화학습 - 근사 Q-러닝과 심층 Q-러닝 개념 및 Python 구현 (0) | 2025.04.18 |
[RL] 강화학습 - Q-러닝 개념, 수식 및 Python 구현, 그리고 입실론-그리디 정책 (2) | 2025.04.14 |
[RL] 강화학습 - 마르코프 결정 과정과 벨만 최적 방정식, Q-가치 반복 알고리즘, 그리고 Python 구현 (0) | 2025.04.10 |
OpenAI Gym - OpenAI Gym 개념과 cartPole-v1, 그리고 정책 하드코딩 (0) | 2025.04.06 |
앙상블(Ensemble) - 배깅(Bagging), 부스팅(Boosting), 스태킹 (0) | 2025.01.30 |
[RL] 강화학습(Reinforcement Learning) - 에이전트, 정책, 정책탐색, 환경, 리턴, 할인율 (2) | 2025.01.16 |