본문 바로가기

Deep Learning/Hands On Machine Learning34

GAN(Generative Adversarial Network) GAN * GAN은 생성적 적대 신경망이라는 이름에서 알 수 있듯이 신경망의 경쟁을 통해 더 나은 네트워크를 도출해내는 기법을 뜻한다. Generator(생성자) * generator random한 분포, 이를테면 Gaussian distribution과 같은 분포를 입력으로 받고, 이를 coding과 같이 취급해 이미지를 생성해내는 역할을 한다. 이는 variational autoencoder의 decoder부분과 비슷한 역할이다. Discriminator(판별자) * discriminator는 입력된 이미지가 training set에서 나온 real image인지, Gaussian distribution에서 추출되어 generator가 생성한 fake image인지를 판별하는 판별자이다. 훈련 과정 .. 2022. 1. 1.
17.8 Variational AutoEncoder Variational AutoEncoder(변이형 오토인코더) * variational autoencoder는 여태껏 살펴봤던 autoencoder들과는 조금 다르다. 먼저 probabilistic autoencoder이다. 훈련 과정 뿐만 아니라 테스트 과정에서도 출력이 부분적으로 우연에 의해 결정되기 때문이다(denoise autoencoder가 훈련시에만 gaussian noise 혹은 dropout을 적용하는 것과는 차이가 있다). 두 번째로는 generative autoencoder이다. 훈련 sample에서 생성한 것과 같은 sample을(분포가 같은) 생성할 수 있는 autoencoder이다. 자 이제 variational autoencoder의 구조를 살펴보자. * 구조는 일반적인 auto.. 2021. 12. 28.
17.7 Sparse AutoEncoder Sparse AutoEncoder * Sparse AutoEncoder는 규제 기법을 통해 coding층의 훈련시마다 뉴런 개수를 제한함으로서 각 뉴런들이 더 유용한 특성을 학습하여 coding을 만들어낼 수 있도록 하는 기법이다. 이는 dropout에서 일부 뉴런을 의도적으로 훈련에서 누락시켜 나머지 뉴런들이 더 유용한 특성을 학습하도록 하게 만드는 것과 비슷하다. * 규제 방법으로는 각 뉴런의 평균 활성화 정도를 측정해서 목표 평균 활성화 정도와 비교해 loss에 더하는 것을 들 수 있다. 예를 들어 각 뉴런이 평균적으로 0.3만큼 활성화 되었고, 목표 평균 활성화 정도가 0.1이라면 loss에 $(0.3 - 0.1)^2$를 더하는 방식을 사용할 수도 있다. 실전에서 더 좋은 방법은 Kullback-.. 2021. 12. 28.
17.6 Denoising AutoEncoder Denoising AutoEncoder * autoencoder를 훈련시킬 때 일부러 원본에 noise를 추가하는 방식을 사용하면 더욱 효율적인 결과를 얻을 수 있게 된다. 더 자세히 설명하자면, autoencoder의 encoder부분에서 원본 데이터를 입력 받은 후 noise(Gaussian noise같은 random한 noise)를 추가하거나, dropout을 사용해 원본 데이터의 일부를 의도적으로 훼손하는 방법을 사용해 특징 vector를 구성하고, 이 특징 vector로부터 decoder가 원본 데이터를 복원하는 훈련을 하는 방법을 사용하는 것이다. 1) Gaussian noise 사용 tf.random.set_seed(42) np.random.seed(42) denoising_encoder =.. 2021. 12. 26.