➍, ➎ 그리고 ➑, ➒는 두 배씩 업(up)샘플링을 한 후 컨볼루션 과정을 처리합니다. 커널 크기를 5로 해서 5×5 크기의 커널을 썼습니다. 바로 앞서 설명했듯이 padding='same' 조건 때문에 모자라는 부분은 자동으로 0이 채워집니다.
----- ➍ .add(Conv2D(64, =5, ='same')) ----- ➎.add(UpSampling2D())
➊과 ➐에서 활성화 함수로 LeakyReLU(리키렐루)를 썼습니다. GAN에서는 기존에 사용하던 ReLU() 함수를 쓸 경우 학습이 불안정해지는 경우가 많아, ReLU()를 조금 변형한 Leaky ReLU() 함수를 씁니다.
TIP
LeakyReLU() 함수는 ReLU() 함수에서 x 값이 음수이면 무조건 0이 되어 뉴런들이 일찍 소실되는 단점을 보완하기 위해, 0 이하에서도 작은 값을 갖게 만드는 활성화 함수입니다. 케라스 함수를 이용해 LeakyReLU(0.2) 형태로 설정하면 0보다 작을 경우 0.2를 곱하라는 의미입니다.
128*7*7, =100, =LeakyReLU(0.2))) ----- ➊ .add(Activation(LeakyReLU(0.2))) ----- ➐.add(Dense(