피피티를 옮겨놓고 재정리를 하다만 포스트... 추후 수정 예정입니당 ㅎ0ㅎ
이번 겨울방학에 PyTorch
스터디를 하게 되었다. 해당 스터디는 랩실원들이 순서를 정해, 파이토치 튜토리얼의 주제를 맡아 발표하는 형태로 진행되고 있다. 내가 맡게 된 부분은 튜토리얼의 Image 분야에 해당하는 내용이었다. 이미지와 같은 경우, CNN
과 비슷할 것이라 여겨 처음엔 간단한 내용이라 생각했는데, 생각보다 수식을 이해하는데 시간이 걸렸던 주제였다. 무엇보다 다른 사람들이 질문할 만한 요소들을 추려보았을 때, 나도 뚜렷하게 이해하지 못하고 있는 것 같아 관련 논문을 찾아 공부를 해보았다. 내가 참고한 논문은 A Nural Algorithm of artistic Style (2015. 08)이다.
2개의 거리 (distance) 정의 --> Dc, Ds
Dc: measures how different the content is between two images
Ds: measures how different the style is between two images
입력의 세번째 이미지(ex. Noise로 구성된 이미지)를 가져와 content image와 style image와의 Dc와 Ds를 최소화 하도록 변환한다.
imgeNet db의 1백만 개가 넘는 이미지에 대해 훈련된 cnn
16개의 convolution layer, 5개의 pooling layer, 3개의 fully connected layer로 구성됨
해당 논문에서는 fully connected layer를 사용하지 않았다.
max pooling이 아닌 average pooling을 사용했다.
( --> max보다 average pooling 사용 시, 학습이 더 잘되어서 사용한 것으로 보인다)
CNN의 convolution layer별로 이미지가 어떻게 변화되어 가는지를 시각화하고 있다.
content image(우측 하단 image) 의 경우, layer가 깊어 질수록 원본 대비 detail한 pixel information은 소실되지만 high-level image, 즉 전체적인 윤곽인 건물의 모습은 유지된다.
style image(우측 상단 Image)의 경우, layer가 깊어 질수록 style image 원본에 가까워지게 된다.
이러한 현상이 발생하는 이유는 같은 layer의 feature map의 channel간 correlation(Gram Matrix)으로 정의하였기 때문이라고 한다.
Content image p, style image a에 대해 합성할 이미지인 x를 noise image로 초기화한다.
각 이미지 p, a, x를 ImageNet pretrained VGG19에 foward pass 수행한다.
이미지 p와 x에 대해서 content feature 기반의 content loss 계산한다.
이미지 a와 x에 대해서 style feature 기반의 style loss 계산한다.
Content loss와 style loss를 합해 total loss 계산한다.
Total loss를 back propagation해서 noise image x를 업데이트 하게 된다. 여기서 네트워크 자체의 weight parameter는 업데이트 되지 않으며, 생성하려는 입력 이미지 x의 픽셀 값들만 업데이트 된다고 한다.
Content image P에 대해
Content image p를 네트워크에 feed forward
Content image p를 입력으로 feature map들이 계산된 네트워크에서 레이어 l의 feature map을 P
Generated image x에 대해
합성될 영상 x를 네트워크에 feed forward
합성될 영상 x를 입력으로 feature map들이 계산된 네트워크에서 레이어 l의 feature map을 F
Style image a와 합성할 이미지 x 사이의 style loss
Style image a에 대해
Style image a를 네트워크에 feed forward
Style image a 에 대한 레이어 l에서의 Gram matrix A
Generated image x에 대해
합성될 영상 x를 네트워크에 feed forward
합성될 영상 x에 대한 레이어 l에서의 gram matrix G
Total loss = Content loss + Style loss
Style loss에 가중치를 크게 주면 스타일 중심적인 이미지 x가 생성됨
Content lss에 가중치를 크게 주면 컨텐츠 중심적인 이미지 x가 생성됨