오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-04 00:00
관리 메뉴

우노

[DL] Neural Style Transfer 본문

AI/Deep Learning

[DL] Neural Style Transfer

운호(Noah) 2021. 2. 10. 21:43

Neural Style Transfer

  • Neural Style Transfer란, 두 이미지(Content Image & Style Image)가 주어졌을 때
  • Content Image의 형태는 유지하면서 Style Image와 유사한, 새로운 Image를 Generated 하는 것을 의미합니다.
  • 위 그림에서는, 건축물을 Content Image로 주고, 화가의 작품을 Style Image로 주어, 건축물의 형태와 배치는 유지되면서 화풍만 유사한 새로운 Image가 생성된 것을 볼 수 있습니다.

CNN 모델의 어느 Layer에서 특징(feature)를 추출할 것인가?

  • Neural Style Transfer은 CNN 모델을 통해 동작하며,
  • Content Representation과 Style Representation을 통해, 각 Layer마다 Content Image와 Style Image의 feature map을 추출하게 됩니다.
    • Feature map란 이미지의 중요한 특징을 의미합니다.
    • 추출된 Feature들은 Layer가 깊어질수록 다른 성질을 갖습니다.
  • 이후, 추출한 Content feature와 Style feature를 섞어 Generated Image를 만들게 됩니다.

Content Representation

  • 위 그림은, CNN에서 각 Layer마다 Content Image의 Feature가 어떻게 뽑히는지 나타낸 예시입니다.
  • a,b,c를 보면 원래의 사진과 거의 다를바가 없습니다.
  • 하지만, 깊은 Layer에 있는 사진을 보면, 사진의 일부분이 사라져있는데, 이는 중요한 Feature들을 빼고 나머지 Feature들은 제거됐다는 것을 의미합니다.
  • 이처럼, Content Image는 Layer가 깊어질수록 해당 Object를 구별하기 위한 고유한 특징들만 남기고 나머지는 사라지게 됩니다.

Style Representation

  • 위 그림은, CNN에서 각 Layer마다 Style Image의 Feature가 어떻게 뽑히는지 나타낸 예시입니다.

  • 얕은 Layer에서는 단조로운 패턴들이 반복되지만, 깊은 Layer로 갈수록 Feature들이 더 복잡해지고 확대되고 있는 것을 알 수 있습니다.

  • 이는, Max Pooling으로 인해 발생합니다.

    • 이미지가 점점 더 작아지게 되면서,
    • 얕은 Layer의 큰 이미지에는 많은 양의 Feature들을 담을 수 있지만,
    • 깊은 Layer의 작은 이미지에는 적은 양의 Feature들만 담을 수 있기 때문에 일어나는 현상입니다.
  • 이처럼, Style Image는 Layer가 깊어질수록, 원래 그림의 전체적인 배열(global arrangement)은 사라지고, 반복되는(Texturised) 특징들만 남는다는 것을 알 수 있습니다.

  • 따라서, Content Representation은 Layer가 깊어질수록 이미지의 전체적인 틀(global arrangement)이 남으며

  • Style Representation은 Layer가 깊어질수록 이미지의 반복되는 Texture만 남게 되므로

  • Generated Image는 Content의 전체적인 틀(global arrangement)에 Style의 Texture를 입힌 모습으로 생산될 수 있는 것입니다.

Cost Function

  • Neural Style Transfer의 Cost Function에 대해 알아보겠습니다.

  • Cost Function 공식은 아래와 같습니다.

    • C : Content Image
    • S : Style Image
    • G : Generated Image
    • Jcontent(C, G) : Content Image와 Generated Image가 얼마나 비슷한지
    • Jstyle(S, G) : Style Image와 Generated Image가 얼마나 비슷한지
    • α, β : Jcontent(C, G)와 Jstyle(S, G)의 상대적인 가중치
      • 두 개의 파라미터가 아닌 한 개의 파라미터로도 가능하다.
  • 따라서, 위와 같은 Cost Function을 최소화함으로써, 원하는 이미지를 생성할 수 있게 됩니다.

  • 또한, G(Generated Image)는 J(G)에 미분계수를 적용한 값을 빼며 업데이트 됩니다.

    • 실제로 G(Generated Image)의 픽셀 값이 Cost Function을 최소화하는 방향으로 업데이트 됩니다.
Comments