[Text2img PART4] USE + Text2Img

2 분 소요

USE와 Residual-Attention을 이용한 text2Image GAN

이번 문서는 part3에서 언급한 문제를 해결하기 위해 진행했던 방식을 설명하는 문서입니다.

코드 확인하러가기 // 발표자료 보러가기

  1. Sentence Embeding –>USE
  2. Residual Attention

1.Sentence Embedding

기존 임베딩 방식을 이용하면

Red rose with yellow stem = ⅕ * (1, 1, 1, 1, 1) = (0.2, 0.2, 0.2, 0.2, 0.2)

yellow rose with red stem = ⅕ * (1, 1, 1, 1, 1) = (0.2, 0.2, 0.2, 0.2, 0.2)

보는 것과 같이 서로 다른 mode이지만 충돌이 불가피한 문제가 발생한다. 따라서 순서 정보를 담고 있는 embedding의 필요성이 대두되었다. 기존 모델들은 대부분 Glove나 Word2Vec을 더하거나 평균을 내어 sentence embedding으로 활용하였으나 근본적으로 한계가 있다. 따라서 순서 정보를 포함하는 임베딩의 필요성을 느끼게 되었고 해당 문제를 USE( Universal-sentence-encoder)을 이용하여 해결하고자 한다.


USE란

이번 문서는 해당 링크를 참고하여 작성했습니다.

Universal sentence Encoder는 텍스트 분류, 의미론적 유사성, 클러스터링 및 기타 자연어 처리에 사용할 수 있는 고차원 벡터를 이용하여 텍스트를 인용하는 방법이다.

해당 모델은 문장, 구 또는 짧은 단락과 같이 단어 길이가 더 긴 텍스트에 대해 학습되며 최적화된 방식이다. 또한 단순히 단어가 아닌 시퀀스의 의미를 모델링하였다. 뚜렷한 설계 목표를 달성하기 위해 서로 다른 encoder 아키텍쳐를 가진 Transformer Encoder와 DAN(Deep Average Network)을 사용한다.

  • Transformer Encoder는 더 큰 모델의 complexity와 자원의 consumption의 비용으로 높은 정확성을 목표로 한다. 해당 모델은 6개의 스택으로 구성되어 있고, 각각의 레이어는 두개의 서브 레이어로 구성되어 있다. 첫번째 레이어는 ‘multi-head self-attention mechanism’으로 h개의 레이어를 이용하여 . 두번째 레이어는 simple position-wise fully conntected feed-forward network이다. 두개의 서브레이어는 residual로 연결되어있으며 layer normalizaion가 이어진다.

    해당 모델은 recurrence나 convolution에 대한 정보가 없기 때문에, 시퀀스의 순서 정보를 사용하기 위해 상대적 혹은 절대적인 시퀀스 토큰의 위치 정보를 이용한 정보를 입력해주어야 한다. 이것이 바로 ‘positional encoding’이하는 것이다.

    encoder를 기반으로한 transformer는 transfer 작업에있어 최고의 성능을 달성한다고한다. 하지만 문장의 길이에 따라 컴퓨팅 시간과 메모리 사용량이 급격히 느는 결과를 가져오는 문제점도 있다.

  • DAN Encoder은 Deep Averaging Network(DAN)을 이용하여 정확도가 약간 감소된 효율적인 추론을 목표로 한다. DAN은 단어나 bi-gram(마코프 모형이라고도하며, 단어의 활용이 바로 전 단어에만 의존할 경우에 주로 사용된다. )를 먼저 평균화한 다음, DNN을 통과하여 문장 임베딩을 생성하기 때문에 훨씬 단순하다. 따라서 DAN encoder의 주요 장점은 입력 시퀀스의 길이에 대해서 컴퓨팅 시간이 선형적이다.

    keras로 USE 맛보기

    이전에 USE를 ‘‘embed”로 로드했지만. 케라스에서 잘 동작하게 하기 위해서 케라스 Lambda 층을 이용한다.

    풀 코드보기

2.Residual Attention Network

이번 문서는 해당링크를 참고하여 작성했습니다.

해당 논문에서는 Residual Attention Network를 제안한 것으로, attention mechanism을 아주 깊은 구조의 convolutonal network에 적용한 것이다. 해당 네트워크는 여러개의 attention module로 구성되어있으며(stacking 했다고 표현), 각각의 attention module은 attention-aware feature를 생성한다. 각각의 모듈에서 생성된 attention-aware feature은 layer가 깊어지면 깊어질 수 록 adaptively

카테고리:

업데이트: