생성 모델링(Generative Modeling)이라는 새로운 주제에 대해서 알아보려고 한다.
일반적으로 이미지, 자연어를 처리하는 모델은 판별 모델링(Discriminative Modeling)이라고 한다.
앞에서 진행했던 가위바위보를 예로 든다면 가위, 바위, 보에 해당하는 사진을 촬영해 데이터셋을 만들고 이미지를 각 카테고리로 분류할 수 있게 학습했었다.
이러한 모델링을 판별모델링이라고 하고, 이는 입력받은 데이터를 기준에 따라 판별하는 것이 목표이다.
생성 모델링은 이름 그대로 없던 데이터를 생성하는 것이 목표이다. 똑같이 가위바위보를 예로 든다면 가위, 바위, 보가 담긴 데이터셋에서 각 이미지의 특징을 학습해 그와 비슷한 새로운 사진을 만드는 것이다. 이는 실제 사진과 구별이 어려울 정도로 좋은 품질의 이미지를 만드는 것이 목표이다.
정리하자면
- 판별 모델 : 입력된 데이터셋을 특정 기준에 따라 분류하건, 특정 값을 맞추는 모델
- 생성 모델 : 학습한 데이터셋과 비슷하면서 기존에는 없던 새로운 데이터셋을 생성하는 모델
Pix2Pix는 간단한 이미지(그림과 같은)를 입력할 때 실제 사진처럼 보이도록 바꿔줄때 많이 사용되는 모델이다.
모델은 단순화된 이미지(Input Image)와 실제 이미지(Ground Truth)가 쌍을 이루는 데이터셋으로 학습을 진행한다.
사진에서 처럼 Input Image를 입력하면, 내부 연산을 통해 Ground Truth와 비슷하게 변환된 Predicted Image를 출력한다.
학습초기에는 제대로 된 출력 결과를 보기 힘들지만 학습을 진행할 수록 실제와 유사한 출력을 볼 수 있다.
이러한 방식으로 이미지를 다른 이미지로 픽셀 단위 변환을 하는 Pixel to Pixel을 지칭하는 Pix2Pix
라는 이름을 갖게 되었다.
논문 : https://arxiv.org/pdf/1611.07004.pdf을 보면 서두에 Pix2Pix 응용 사례를 소개하고 있다.
네 가지 등과 같은 응용사례를 확인할 수 있다.
Pix2Pix
에서 더 발전된 모델은 CycleGAN
이 있다. 이름 그대로 이 모델은 한 이미지와 다른 이미지를 계속해서 변환할 수 있다.
Pix2Pix는 한 방향으로 변환만 가능하지만 CycleGAN은 양방향으로 이미지 변환이 가능한 차이점이 있다. 또한 Pix2Pix는 그림과 사진 한 쌍으로 이루어진 데이터셋이 필요했지만, CycleGAN은 쌍이 필요없이 아래 그림과 같이 말과 얼룩말 두 사진의 데이터셋이 있으면 학습시킬 수 있다.
(데이터 쌍이 필요없다는 것은 데이터를 그만큼 구하기 쉽다는 말로 모델링을 더 편리하게 해줄 수 있다는 의미)
CycleGAN의 유명한 활용 사례는 실제 사진을 유명 화가의 그림처럼 바꿀 수 있다는 점이다.
물론 그 반대의 경우도 가능하다
Neural Style Transfer는 스타일을 변환시키는 모델이다
Style Transfer라는 이름대로 이미지의 스타일을 변환할 수 있는 모델이다. 기본 Base Image에 변환하고 싶은 Style Image 데이터를 이용해 새로운 이미지를 만들어 낼 수 있다.
Neural은 신경망, 딥러닝이라는 의미이다.
왼쪽 첫번째 이미지가 Base Image이고 나머지 작은 Style Image를 통해 그 Style에 맞는 새로운 이미지가 생성된 것을 볼 수 있다.