더북(TheBook)

, 그리고 , 는 두 배씩 업(up)샘플링을 한 후 컨볼루션 과정을 처리합니다. 커널 크기를 5로 해서 5×5 크기의 커널을 썼습니다. 바로 앞서 설명했듯이 padding='same' 조건 때문에 모자라는 부분은 자동으로 0이 채워집니다.

generator.add(UpSampling2D()) ----- ➍
generator.add(Conv2D(64, kernel_size=5, padding='same')) ----- ➎

에서 활성화 함수로 LeakyReLU(리키렐루)를 썼습니다. GAN에서는 기존에 사용하던 ReLU() 함수를 쓸 경우 학습이 불안정해지는 경우가 많아, ReLU()를 조금 변형한 Leaky ReLU() 함수를 씁니다.

 

TIP

LeakyReLU() 함수는 ReLU() 함수에서 x 값이 음수이면 무조건 0이 되어 뉴런들이 일찍 소실되는 단점을 보완하기 위해, 0 이하에서도 작은 값을 갖게 만드는 활성화 함수입니다. 케라스 함수를 이용해 LeakyReLU(0.2) 형태로 설정하면 0보다 작을 경우 0.2를 곱하라는 의미입니다.

generator.add(Dense(128*7*7, input_dim=100, activation=LeakyReLU(0.2)))  ----- ➊
generator.add(Activation(LeakyReLU(0.2))) ----- ➐
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.