더북(TheBook)

2. (μx|z, Σx|z)의 가우시안 분포에서 z를 샘플링한 후 x'를 구합니다.

x'x|z ~ N(μx|z, Σx|z)

3. 역전파를 이용하여 L(x(i), θ, >)의 값이 높아지는 방향으로 기울기를 업데이트합니다. 즉, 가능도가 증가하는 방향으로 파라미터 θ를 업데이트합니다.

 

최종적으로 x와 유사한 x'라는 이미지가 생성됩니다.

다음은 인코더와 디코더에서 사용된 수식을 정리한 내용입니다. 변형 오토인코더의 목표는 L(x(i), θ, )를 높이는 방향으로 학습합니다.

①항은 z가 주어졌을 때 x'를 표현하기 위한 확률밀도 함수로 디코더 네트워크를 나타냅니다. 즉, 디코더 네트워크의 가능도(likelihood)가 크면 클수록 θ가 그 데이터를 잘 표현한다고 해석할 수 있습니다. 따라서 ①항이 크면 클수록 모델 가능도가 커집니다.

②항은 x에서 z를 표현하는 확률밀도 함수로 인코더 네트워크와 가우시안 분포가 얼마나 유사한지 나타냅니다. 유사한 정도가 높을수록 쿨백-라이블러 발산(Kullback–Leibler Divergence, DKL6)은 낮은 값을 나타내므로, 인코더 네트워크가 가우시안 분포를 최대한 잘 표현할 수 있도록 가능도가 최대화됩니다. 따라서 ②항이 작을수록 모델 가능도가 커집니다.

이제 변형 오토인코더를 예제로 알아보겠습니다. 변형 오토인코더 예제를 시작하기에 앞서 필요한 라이브러리를 설치합니다.

> pip install tensorflow_probability

 

 


  6 두 확률 분포의 차이를 계산하는 데 사용하는 함수입니다. 딥러닝 모델을 예로 들면, 수집된 데이터 분포 P(x)와 모델이 추정한 데이터 분포 Q(x)의 차이를 구할 때 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.