- AI Dev - 인공지능 개발자 모임
- 정보공유
- 챗봇 딥러닝
글 수 293
https://arxiv.org/pdf/1612.03242.pdf
이미지를 문장으로 변환하는 것은 이미 상당한 수준에 올라있습니다. CNN으로 사진을 벡터로 변환하고 이를 다시 RNN으로 넣어 텍스트를 생성합니다. 예를 들어, 어떤 사진을 보고 "고양이가 의자위에 앉아있다"라고 문장을 만들 수 있습니다.
< Image to Text 데모 >
- http://www.cs.toronto.edu/~nitish/nips2014demo/index.html
하지만 반대로 문장을 입력하면 사진을 생성하는 것도 가능합니다. 여기서 사용되는 기법이 최근 페이크 영상 합성으로 유명한 GAN입니다. 생성자와 구분자 두 가지 모델이 서로 경쟁하면서 조금씩 학습을 수행합니다. 생성자는 특정 벡터값이 주어졌을때 이를 확률분포로 하는 이미지로 변환하고, 구분자는 생성자가 만든 사진과 실제 사진을 번갈아서 진짜인지 판단합니다.
이때 문장을 벡터로 임베딩하여 생성자의 입력으로 사용하면 텍스트를 이미지로 생성할 수 있습니다. 하지만 학습이 잘 되지 않아 품질이 많이 떨어지는 단점이 있었는데 StackGAN은 256x256 사이즈의 고해상도 사진이 가능합니다.
가장 큰 특징은 여러 단계로 학습을 했다는 것입니다. 1단계에서는 기존과 같이 저해상도의 사진을 만들고 2단계에서는 1단계의 사진과 문장 벡터를 다시 입력으로 하여 고해상도 사진을 생성합니다. 이처럼 GAN을 쌓아서 만들었다고 해서 StackGAN이라고 부릅니다.
본문에 "생성자는 특정 벡터값이 주어졌을때 이를 확률분포로 하는 이미지로 변환하고, -"에서 생성자의 input인 특정 벡터값이 무엇인가요??
다른글에서는 noise라고도 하고 random latent vector라고도 하더라구요....
특정벡터값이 뭔지 자세히 알려주세요...
감사합니다!