ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spatial Transformer Networks
    머신러닝, 딥러닝 공부 2020. 2. 8. 14:52
    반응형

    Introduction

    이미지 분류 문제에서는 spatial invariance(이미지가 변환되어도 그 이미지로 인식하는 것, 이미지를 회전시켜도 같은 이미지로 인식하는 것)가 중요하다. CNN은 이러한 spatial invariance에 대해 약해 max pooling layer가 그런 점을 다소 해결해준다. 하지만 2×2 픽셀 단위의 연산으로는 데이터의 다양한 spatial variability에

    논문에서 설명하는 Spartial Transformation은 max pooling layer보다 더 좋은 spatial invariance 능력을 갖게 하기 위해 이미지의 특정 부분을 자르고 변환해서 그 부분만 떼어서 트레이닝을 시킨다.

     

    Spatial Transformers

    Spatial transformer는 아래와 같이 3개의 부분으로 구성된다.

     

    1. Localisation Network

    일종의 작은 neural network인 Localisation Network은 input feature map U에 적용할 transform의 parameter matrix θ를 추정한다. 입력되는 크기는 U와 동일한 가로x세로x채널수인 WxHxC이며 fully-connected network 또는 convolutional network 모두 가능하다. 결과적으로 마지막에 regression layer가 있어 transformation parameter θ를 추정할 수 있기만 하면 된다.

     

    2. Grid Generator

     

    feature map V에서 각 픽셀 (x_i, y_i)는 sampling grid 

     

    3. Sampler

    Sampler는 sampling grid 를 input feature map 에 적용해 변환된 output feature map 를 생성한다. 이것 역시 위의 그림을 참고하면 된다. 위의 그림에서처럼 그 위치가 정확히 정수 좌표 값을 가지지 않을 가능성이 크기 때문에, 주변 값들의 interpolation(보관법)을 통해 값을 계산한다. 이 과정을 표현하면 아래와 같다.

     

    위의 식을 nearest integer interpolation bilinear interpolation의 형태로 표현하면 각각 아래와 같은 식이 된다.

     

    전체 네트워크에서 loss 값을 backpropagation으로 계산하려면  에 대해 미분 가능해야 한다. Bilinear interpolation의 경우 각각의 partial derivative를 구해보면 아래 식과 같다.

     

    4. Spatial Transformer Networks

    Localisation network, grid generator와 sampler로 구성한 spatial transformer module을 CNN 구조에 끼워 넣은 것을 Spatial Transformer Network이라고 한다. Spatial transformer module은 CNN의 어느 지점에나, 몇 개라도 이론상 집어넣을 수 있습니다. Spatial transformer가 어떻게 input feature map을 transform할 지는 CNN의 전체 cost function을 최소화하는 training 과정 중에 학습된다.

     

    반응형

    댓글

Designed by black7375.