Machine Learning & Deep Learning/핸즈온

ch.17.8 변이형 오토인코더

유방울 2023. 11. 30. 18:11

1. 변이형 오토인코더 

variational autoencoder

2014 다이데릭 킹마, 맥스 웰링 소개

가장 인기 있는 오토인코더

but GAN이 훨씬 실제같이 또렷한 이미지를 만들 수 있어서 더 인기있음

2. 변이형 오토인코더 2가지 속성

1. 확률적 오토인코더(probabilistic)

: 훈련이 끝난 후에도 출력이 부분적으로 무작위성 사용!

<-> 잡음 제거 오토인코더는 훈련 시에만 무작위성 사용!

2. 생성 오토인코더(generative)

: 중요!

: 마치 훈련 세트에서 샘플링된 것 같은 새로운 샘플 생성 가능

 

이는 변이형 오토인코더를 RBM과 유사하게 만듦

RBM(제한된 볼츠만 머신, restricted Boltzmann machine)

: 새로운 샘플을 만들기 전에 네트워크가 '열평형' 상태로 안정될 때까지 기다림

: 가시 유닛과 히든 유닛 사이에만 연결이 있음

but 변이형 오토인코더는 훈련이 더 쉽고 샘플링 과정이 훨씬 빠름

: 효율적인 근사 베이즈 추론 방법인 변분 베이즈 추론 수행함

 

변분 베이즈 추론 variational Bayesian inference

: 베이즈 추론과 기계 학습에서 사용됨

: 데이터로부터 모델의 파라미터 추정하고 주어진 데이터에 대한 확률 분포를 근사화하는 방법

: 실제로 계산하기 힘든 적분을 근사하는 것이 목표

: 핵심 아이디어로는 원래 복잡한 확률 분포를 -> 간단한 분포로 대체!

: 이를 위해 KL 발산(Kullback-Leibler divergence) 개념 사용

-> 이는 원래의 확률 분포와 근사화된 분포 사이의 차이를 최소화함

 

2.3 변이형 오토인코더 구성

: 인코더, 디코더로 구성됨

but 다른점은!!

주어진 입력에 대한 코딩을 바로 만들기 x

인코더는 평균 코딩(mean coding) , 표준편차 시그마를 만듦

-> 평균 뮤, 표준편차가 시그마인 가우시안 분포에서 랜덤하게 코딩을 샘플링

-> 그 후 디코더가 샘플링된 코딩을 보통처럼 디코딩

-> 훈련 샘플을 닮은 최종 출력 만듦

 

가우시안 분포(Gaussian normal distribution) = 정규 분포(normal distribution)

: 확률 밀도 함수로 나타낼 때 엎어진 종모양 (bell shape)

: 여기서 빨간 선은 평균 0, 분산 1인 정규분포로 표준 정규 분포

 

 

오른쪽 : 오토인코더를 통과하는 샘플

복잡한 분포를 가져도 -> 가우시안 분포에서 샘플링된 것처럼 보이는 코딩을 만듦!!

how?

훈련하는 동안 비용 함수가 코딩을 가우시안 샘플들의 군집처럼 보이도록 코딩공간(잠재공간) 안으로 점진적으로 이동시킴

-> 그래서 훈련이 끝난 뒤 새로운 샘플을 매우 쉽게 생성함!

 

2.4 변이형 오토인코더의 비용함수

두 부분으로 구성됨

1. 오토인코더가 입력을 재생성하도록 만드는 일반적인 재구성 손실(크로스 엔트로피 사용)

2. 단순한 가우시안 분포에서 샘플된 것같은 코딩을 가지도록 오토인코더를 강제하는 잠재 손실 latent loss

: 가우시안 분포와 실제 코딩 분포 사이의 KL 발산을 사용함

: 희소 인코더보다 수식이 복잡함

: Why? 코딩 층으로 전달될 수 있는 정보 양을 제한하는 가우시안 잡음 때문에 그러함!

 

가우시안 잡음(Gaussian noise)

: 가우시안 분포에서 나오는 잡음

: 이미지의 압축, 전송 과정에서 일어남

: 이미지가 압축되고 이후 다시 복구하는 과정에서 원래 화소 값이 아니라 오차 값이 들어감!

: 이렇게 생기는 노이즈를 의미함 

아래 사진처럼 지지직 거리는 느낌!

 

 

잠재 손실 계산식

n: 코딩의 차원

뮤i, 시그마i : i번째 코딩 원소의 평균과 표준편차

식 2

이 식이 더 수학적으로 안정적, 훈련 속도를 높임