더북(TheBook)

1 가짜 제조 공장, 생성자

 

생성자(generator)는 가상의 이미지를 만들어 내는 공장입니다. 처음에는 랜덤한 픽셀 값으로 채워진 가짜 이미지로 시작해서 판별자의 판별 결과에 따라 지속적으로 업데이트하며 점차 원하는 이미지를 만들어 갑니다.

DCGAN은 생성자가 가짜 이미지를 만들 때 컨볼루션 신경망(CNN)을 이용한다고 했습니다. 우리는 컨볼루션 신경망을 이미 배웠는데(16장) DCGAN에서 사용되는 컨볼루션 신경망은 앞서 나온 것과 조금 차이가 있습니다. 먼저 옵티마이저(optimizer)를 사용하는 최적화 과정이나 컴파일하는 과정이 없다는 것입니다. 판별과 학습이 이곳 생성자에서 일어나는 것이 아니기 때문입니다. 이는 이 장에서 차차 다루게 될 것입니다.

또한, 일부 매개변수를 삭제하는 풀링( pooling) 과정이 없는 대신 앞 장에서 배운 패딩( padding) 과정이 포함됩니다. 빈 곳을 채워서 같은 크기로 맞추는 패딩 과정이 여기서 다시 등장하는 이유는 입력 크기와 출력 크기를 똑같이 맞추기 위해서입니다. 이것을 이해하기 위해 그림 19-2를 보기 바랍니다. 커널을 이동하며 컨볼루션 층을 만들 때 이미지의 크기가 처음보다 줄어든다는 것을 떠올려 보면 패딩 과정이 왜 필요한지 알 수 있습니다(17장 '실습 | 영화 리뷰가 긍정적인지 부정적인지를 예측하기' 참조).

 

그림 19-2 | 생성자의 결과물이 실제 데이터와 같은 크기여야 하므로 차원 축소 문제를 해결해야 한다

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