SW/인공지능

인공지능 : Text to Image : 텍스트를 이미지로 변환 : 기술, 원리

얇은생각 2019. 7. 24. 07:30
반응형

텍스트를 이미지로

64x64 RGB 이미지로 "작은 새가 짧은 오렌지색 부리와 흰 배가 있습니다"와 같은 자연어 텍스트를 변환하는 흥미로운 논문에있는 실험 및 이론을 설명합니다.




소개

자연 언어 텍스트 설명을 이미지로 변환하는 것은 딥러닝의 놀라운 데모입니다. 정서 분석과 같은 텍스트 분류 작업은 텍스트에서 차별적인 벡터 표현을 학습할 수있는 Deep Recurrent Neural Networks에서 성공했습니다. 다른 영역에서는 딥 컨볼 루션 GAN이 정상 분포에서 샘플링 한 랜덤 잡음 벡터로부터 침실 내부와 같은 이미지를 합성 할 수 있습니다. Conditional-GAN의 아이디어에서 영감을 얻은 DCGAN을 사용하여 Deep RNN 텍스트 삽입 및 이미지 합성의 발전을 이루러낸 것입니다.


Conditional-GAN은 임의로 샘플링 된 잡음 벡터에 추가하여 생성기 및 판별기에 대한 입력으로 one-hot 클래스 레이블 벡터를 입력하여 작동합니다. 결과적으로 훈련 안정성이 향상되고 시각적으로 매력적인 결과를 얻을 수있을 뿐 아니라 제어 가능한 출력이 가능합니다. 기존의 Conditional-GAN과 제시된 Text-to-Image 모델의 차이점은 컨디셔닝 입력에 있습니다. GAN을 컨디션하기 위한 희미한 시각적 속성 설명자를 생성하는 대신 GAN은 딥 뉴럴 네트워크 (Deep Neural Network)로 배운 텍스트 임베딩을 조건으로합니다. 희소한 시각적 속성 설명자는 "오렌지 부리가있는 작은 새"를 다음과 같이 설명 할 수 있습니다.


 [0 0 0 1. . . 0 0. . . 1 . . . 0 0 0. . . 0 0 1. . .0 0 0]


벡터에있는 것들은 주황색 (1/0), 작은 (1/0)? 새 (1/0)? 과 같은 속성 질문을 나타낼 것입니까? 이 설명은 수집하기가 어렵고 실제로 잘 작동하지 않습니다.


Word Embedding은 Word2Vec과 같은 개념을 사용하여 자연 언어 처리의 영웅이었습니다. Word2Vec은 주어진 단어의 컨텍스트를 예측하는 방법을 배우면서 embedding을 만듭니다. 불행하게도 Word2Vec은 단어의 컨텍스트가 시각적 속성뿐만 아니라 명시적으로 수행되도록 포함된 임베디드를 캡처하지 않기 때문에 텍스트 대 이미지로 변환하지 않습니다. 이 문제를 극복하기 위해 이미지의 대칭 구조적 조인트 삽입과 텍스트 설명을 제시하며, 뒷 부분에서 자세히 설명합니다.


훌륭한 텍스트 삽입 기능을 구축하는 것 외에도 텍스트에서 이미지로 변환하는 것은 다중 모델이 필요합니다. '멀티 모델'이라는 용어는 딥 학습 (Deep Learning) 연구에 익숙해지기 위해 중요합니다. 이것은 텍스트 설명 "새"에 해당하는 많은 새 이미지가 있음을 나타냅니다. 또 다른 예는 텍스트 "새"에 해당하는 다른 노이즈를 유발하는 여러 가지 악센트 등이 있다는 것입니다. 다중 모델 학습은 이미지 캡션 (이미지 - 텍스트)에도 있습니다. 그러나 이것은 모델이 이전에 예측된 단어뿐만 아니라 이미지에 컨디셔닝된 다음 단어를 예측할 수 있도록 텍스트의 순차적 구조로 인해 크게 촉진됩니다. 다중 모델 학습은 전통적으로 매우 어렵지만 GAN (Generative Adversarial Networks)의 발전으로 훨씬 쉽게 만들어졌으며이 프레임 워크는 텍스트와 이미지 같은 다중 모드 작업에 적합한 적응형 손실 기능을 만듭니다.




사용된 아키텍처


인공지능 : Text to Image : 텍스트를 이미지로 변환 : 기술, 원리


이 텍스트 - 이미지 GAN 모델을 학습하는 데 사용됩니다. 이 다이어그램에서 가장 주목할만한 테이크 아웃은 텍스트 임베딩이 모델의 순차 처리에 어떻게 적용되는지를 시각화 한 것입니다. 생성기 네트워크에서 텍스트 삽입은 완전히 연결된 레이어를 통해 필터링되고 랜덤 노이즈 벡터 z와 연결됩니다. 이 경우 텍스트 삽입은 1024x1 벡터에서 128x1로 변환되고 100x1 랜덤 노이즈 벡터 z와 연결됩니다. 판별자 네트워크 측면에서 텍스트 삽입은 완전히 연결된 레이어를 통해 128x1 벡터로 압축 된 다음 4x4 매트릭스로 다시 모양이 바뀌고 이미지 표현과 심도가 연결됩니다. 이 이미지 표현은 입력 이미지가 여러번 조합된 후 파생되어 공간 해상도를 줄이고 정보를 추출합니다. 판별기에 대한 이러한 삽입 전략은 삽입이 원본 이미지 행렬에 연결되고 그 다음에 컨볼루션되는 조건부 GAN 모델과는 다릅니다.


아키텍처 다이어그램에 대한 일반적인 사항 중 하나는 DCGAN이 고해상도 이미지를 생성하기 위해 벡터 또는 저해상도 이미지를 업 샘플링하는 방법을 시각화하는 것입니다. 각 디 - 컨벌루션 레이어가 이미지의 공간 해상도를 증가시키는 것을 볼 수 있습니다. 또한 피쳐 맵의 깊이는 레이어 당 감소합니다. 마지막으로, 판별자 네트워크의 컨볼 루션 레이어가 어떻게 공간 해상도를 감소시키고 이미지를 처리 ​​할 때 피쳐 맵의 깊이를 증가시키는 지 확인할 수 있습니다.


이 교육 과정에서 흥미로운 점은 텍스트 설명과 일치하지 않는 생성된 이미지를 기반으로 현실감이나 손실이 없는 생성 된 이미지를 기반으로 손실을 분리하는 것이 어렵다는 것입니다. 이 논문의 저자는 처음에는 판별자가 텍스트 삽입에 아무런 주의를 기울이지 않는다는 훈련의 역학을 설명합니다. 발전기에 의해 생성된 이미지가 전혀 보이지 않기 때문입니다. G가 적어도 실제와 가짜 기준을 통과한 이미지를 생성할 수 있으면 텍스트 포함도 고려됩니다.


저자는 실제 이미지 쌍에 '가짜'라는 라벨이 붙은 잘못된 텍스트 설명을 추가하여 교육의 역학 관계를 원활하게합니다. 판별자(discriminator)는 진짜 대 가짜의 이진 작업에 전적으로 초점을 두어 텍스트와 구별되는 이미지를 별도로 고려하지 않습니다. 이것은 one-hot으로 인코딩된 클래스 레이블을 가진 AC-GAN과 같은 접근 방식과는 대조적입니다. AC-GAN 판별 가는 실수와 위조를 출력하고 이미지의 클래스 레이블을 분류하기 위해 중간 피쳐를 공유하는 보조 분류자를 사용합니다.




시각적 속성을위한 텍스트 임베딩 만들기

이 백서의 가장 흥미로운 구성 요소는 표현할 이미지의 시각적 속성을 포함하는 고유한 텍스트 포함을 구성하는 방법입니다. 이 벡터는 다음 프로세스를 통해 생성됩니다.


인공지능 : Text to Image : 텍스트를 이미지로 변환 : 기술, 원리


방정식 (2)로 표시된 손실 함수는 두 가지 손실 함수 사이에서 게이트 손실을 최적화하는 텍스트 분류기의 전반적인 목표를 나타냅니다. 이러한 손실 함수는 식 3과 4에 나와 있습니다.이 프로세스에서는 "텍스트 인코딩은 다른 클래스와 비교하여 해당 클래스의 이미지와의 호환성 점수가 높아야하며 반대의 경우도 마찬가지입니다"라는 직관을 설명합니다. 두 용어는 각각 이미지 인코더 및 텍스트 인코더를 나타냅니다. 이미지 인코더는 GoogLeNet 이미지 분류 모델에서 가져옵니다. 이 분류 기준은 이미지가 1024x1 벡터로 압축 될 때까지 이미지의 차원을 줄입니다. 따라서 목적 함수는 GoogLeNet의 이미지 표현과 문자 수준 CNN 또는 LSTM의 텍스트 표현 간의 거리를 최소화하는 것을 목표로합니다. 본질적으로 이미지 분류를 위한 벡터 인코딩은 유사한 이미지와의 유사성을 기반으로 텍스트 인코딩을 안내하는 데 사용됩니다.




Manifold Interpolation

Generative Adversarial Networks의 흥미로운 특징 중 하나는 잠재성 벡터 z가 새로운 인스턴스를 보간하는 데 사용될 수 있다는 것입니다. 이것은 일반적으로 "잠재 공간 추가"라고합니다. 예를 들어 "안경을 쓴 남자"- "안경을 쓰지 않은 남자"+ "안경을 쓰지 않은 여성"을 하고 안경을 든 여성을 얻는 것이 그 예입니다. 이 논문에서 저자는 텍스트 삽입 사이를 보간하는 것을 목표로 합니다. 이것은 다음 방정식으로 수행됩니다.


discriminator는 이미지와 텍스트 쌍이 일치하는지 아닌지 예측할 수 있도록 훈련되었습니다. 따라서 보간된 텍스트 포함에서 가져온 이미지는 교육 도중 데이터 매니폴드의 갭을 채울 수 있습니다. 이를 훈련 데이터 공간에 대한 정규화 방법으로 사용하는 것이 본 백서에 제시된 모델의 성공적인 결과에있어 가장 중요합니다. 이것은 보간된 텍스트 삽입이 텍스트-이미지 GAN을 학습하는 데 사용되는 데이터 세트를 확장 할 수 있기 때문에 데이터 보강의 한 형태입니다.




결과 / 결론

실험은 3 개의 데이터 세트, 200 개의 카테고리에서 11,788 개의 새 이미지, 102 개의 다른 카테고리에서 8,189 개의 이미지를 포함하는 Oxford-102의 꽃 이미지, 그리고 제시된 알고리즘의 일반화 가능성을 설명하기 위한 MS-COCO 데이터 셋을 포함하는 새 이미지의 CUB 데이터 세트로 수행됩니다.

CUB 및 Oxford-102의 이미지에는 각각 5 개의 텍스트 캡션이 포함되어 있습니다.


인공지능 : Text to Image : 텍스트를 이미지로 변환 : 기술, 원리

CUB Birds 데이터 세트에 대한 결과


인공지능 : Text to Image : 텍스트를 이미지로 변환 : 기술, 원리

Oxford-102에 대한 검색 결과


인공지능 : Text to Image : 텍스트를 이미지로 변환 : 기술, 원리

MS-COCO 결과


위에 제시된 모든 결과는 Zero-Shot Learning 과제에 포함되어 있습니다. 즉, 훈련 중에 모델이 텍스트 설명을 본 적이 없다는 것을 의미합니다. 위의 각 이미지는 64x64x3에서 상당히 낮은 해상도입니다. 그럼에도 불구하고,이 알고리즘이 텍스트 - 이미지의 매우 어려운 멀티 - 모델 작업에서 어느 정도 성공하는 것을 보는 것은 매우 고무적입니다.

반응형