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
이 식이 더 수학적으로 안정적, 훈련 속도를 높임

'Machine Learning & Deep Learning > 핸즈온' 카테고리의 다른 글
ch.17.7 희소 오토인코더 (0) | 2023.11.30 |
---|---|
ch.17.4~6 합성곱, 순환, 잡음 제거 오토인코더 (0) | 2023.11.30 |
ch17. 오토인코더와 GAN ~ 17.1 효율적인 데이터 표현 (0) | 2023.11.28 |
핸즈온 ch.4 모델 훈련(선형회귀, 경사 하강법) - 미완 (0) | 2023.08.29 |
핸즈온 ch15. RNN과 CNN을 사용해 시퀀스 처리하기 (0) | 2023.08.29 |