오토인코더

입력 데이터를 인코더로 압축한 후, 디코더로 복원하는 신경망
잠재공간을 학습하지만, 잠재 공간의 분포를 명시적으로 다루지 않습니다

변분 오토인코더 (VAE)

오토인코더를 확장하여 잠재변수를 확률적 분포로 모델링

인코더가 입력 데이터를 압축하면서 잠재변수의 분포를 추정하고,
디코더가 이 분포에서 샘플링한 값을 사용해 데이터틀 복원함

결과적으로 VAE는 생성할 수 있는 생성 모델 역할을 한다

재구성 손실
디코더가 입력 x를 재구성한 "x와의 차이를 최소화하는 항

정규화 항
잠재변수 z가 정규 분포 N(0,1)와 비슷한 분포를 따르도록 하는 항

모델은 입력을 충실히 재구성하면서도 잠재 공간이 잘 구조화되도록 학습

정규화 항

머신러닝 모델이 overfitting이 되는 것을 방지하기 위해서
손실함수에 추가되는 패널티 항을 이야기한다

overfitting 즉, 과적합은 모델이 훈련 데이터에 너무 맞춰져서
새로운 데이터 일반화를 하지 못하는 것을 의미한다

인코더가 추정한 잠재 분포를 사전분포와 가까워지게 만드는 항은 KL발산 이라는것을 사용해서 계산

잠재분포 : 데이터를 간단히 요약한 숨겨 있는 정보
인코더 : 데이터를 잠재공간으로 변환하는 역할을 하는 함수나 모델
사전분포 : 데이터를 보기 전에 우리가 잠재 변수의 분포에 대해 설정하는 기본적인 가정

KL 발산

KL 발산은 두 분포 간 "거리를 측정"하는 용도로 사용되며
이 거리가 클수록 두 분포가 더 다른다는 것을 의미한다

샘플링을 통해 새로운 데이터를 생성

Generative adversarial networks (GANs)

GAN은 두 개의 신경망이 서로 경쟁하며 생성 모델을 만드는 방법

Generator (생성기)
랜덤 노이즈 z를 입력으로 받아, 진짜 데이터처럼 보이는 가짜 데이터를 생성
판별기를 속여 가짜 데이터를 진짜 데이터라고 믿게 만든다

Discriminator (판별기)
진짜 데이터 x와 생성된 가짜 데이터 x를 구분
진짜 데이터를 진짜로, 가짜 데이터를 가짜로 잘 분류하는 것

GAN의 직관적 이해

Generator는 노이즈에서 시작하여 데이터를 모방하려고 시도

  • Generator(생성자)는 노이즈(무작위 입력)

Generator가 Discriminator를 속이기 위해 점점 더 진짜와 비슷한 데이터를 생성
Generator는 점점 더 진짜처럼 보이도록 가짜 데이터를 개선

처음에는 Generator가 학습이 안되었기 매우 성능이 떨어지지만
Discriminator가 판별을 해주면서 성능을 높일 수 있게 도와준다

profile
Shine like a star, Just like a star

0개의 댓글