본문 바로가기

전체 글

(10)
GAN의 발전-DCGAN, CGAN (1) DCGAN 초기 GAN의 성능은 좋지 않았는데 그 이유는 Fully-Connected 되어 있는 구조이기 때문이다. 이에 Facebook은 Fully-Connected 구조를 CNN으로 바꾸어 GAN의 성능 향상을 도모했고, 이 모델을 DCGAN이라 한다. G: Transposed Convolutioinal Network를 사용해 Up-sampling하여 원하는 사이즈의 이미지를 생성 D: 단순 CNN을 사용 *Transposed Convolutioinal Network란? 기존의 CN처럼 줄어드는 것이 아닌 확대되는 것. [최적의 결과를 위한 DCGAN 모델 생성방법] 1. pooling layer 제거 -> Convolution layer로 대체 (pooling layer는 미분이 불가능하기 때문) ..
GAN에 대한 정리 (2) GAN에 대한 정리 (2)에서는 GAN의 코드를 살펴보고자 한다. 구현에 사용된 이미지는 mnist 손글씨 데이터로, 하나의 채널(흑백이미지)를 가진 28x28 픽셀의 이미지다 noise vector z & img_shape img_rows = 28 img_cols = 28 channels = 1 #색깔 img_shape = (img_rows, img_cols, channels) z_dim = 100 ##생성자의 입력으로 사용될 잡음 벡터의 크기, generator에 넣을 입력층 생성자 ##완전 연결층을 이용하는 코드는 데이터를 1차원으로 평탄화 시켜야함. def build_generator(img_shape, z_dim): model = Sequential() model.add(Dense(128, in..
GAN에 대한 정리 (1) GAN에 대한 정리 (1)에서는 개념과 원리 위주로 설명할 예정이다. 아직 학부생인 만큼 완전하지 못해 수정 할 부분이 있다면 댓글 바랍니다. [GAN이란?] Generative Adversial Network의 준말로 한국어로 하면 생성적 적대 신경망이다. GAN은 Generator와 Discriminator가 서로 경쟁하며 이미지를 생성해내는 모델이다. (앞으로 generator는 G로, discrimnator는 D로 표현하겠다) GAN에 대해 설명할 때 가장 많이 나오는 예시가 위조지폐범과 경찰이다 간단히 보자면 G: 위조지폐범, D: 경찰 G가 위조지폐를 만들고 D가 그것을 찾아내는데, 이 과정에서 G는 점점 더 그럴싸한 위조지폐를 만들게 된다. G의 목표는 D가 가짜라고(위조지폐라고) 판별 할 ..