Introduce a new learnable module, the Spatial Transformer, which explicitly allows the spatial manipulation of data within the network
Motivation : Limitation of CNNs
Limited spatial invariance
Max pooling has small spatial support
No rotation and scaling invariance
다음과 같은 상황에서 CNN 이 invariant 한 지 아닌지 살펴보면,
Translation : CNN 이 잘 찾습니다.
Rotation : 잘 못 찾습니다. 이론적으로 Convolution 자체가 rotate 하면서 적용하는 연산이 아닙니다.
Scaling : Layer 가 쌓이면서 receptive field 가 커질 수는 있지만, 원리 상으로는 CNN 은 scale 에 invariant 하지 않습니다.
STN 의 역할
따라서 이러한 CNN 의 한계를 극복하기 위해, 어떤 이미지가 들어오든 가운데 이미지로 만들어주는 네트워크가 대안으로 제시되었습니다.
STN Architecture
A dynamic mechanism that actively spatially transforms an image or feature map by learning appropriate transformation matrix
Transformation matrix is capable of including translation, rotation, scaling, cropping and non-rigid deformations
Allows for end - to - end ( = 미분가능하다) trainable models using standard back-propagation
Spatial Transformer 의 구조
Spatial Transformer 는 다음과 같이 세 가지 구성 요소로 이루어져 있습니다.
Localization net : feature 를 입력으로 받아 \(\Theta\) (파라미터)를 내놓음
Grid Generator :
Sampler :
Localization Net
이 부분을 이해하려면 Homography 와 같은 이미지 상의 transform 에 대해서 알고 있을 필요가 있습니다. STN 은 결국 원하는 모양이 되도록 input 이미지들을 transform 시켜주는 네트워크이기 때문에, 저 \(\Theta\) 의 개수는 우리가 어떤 transform 을 사용할 것인가 ? 에 따라 결정됩니다.
다양한 Tranformation 의 종류
일반적으로는 Affine transform 을 사용하여 \(\Theta\) 의 개수는 6개로 정의합니다.
Grid Generator
Output pixel is computed by applying a sampling kernel
Grid : Element of output tensors
Pixels on output matrix in 2D
최종 결과물의 Pixel 은 sampling kernel 을 적용함으로써 생성됩니다.
이때 forward warping 을 하지 않는 이유는 그렇게 되면 최종 결과물에 공백이 생기기 때문입니다. Dense 한 결과를 얻기 위해서 backward warping 을 하고, V 의 모든 그리드에 어떤 값이 들어갈 지 U 로부터 찾는 식으로 결과값을 얻습니다.
Image Sampling
하지만 이때 backward warping 으로 생성된 source image 의 위치가 반드시 정수인 것은 아닙니다. 따라서 interpolation 등으로 지정을 해 줄 필요가 있습니다.
nn.Dropout은 딥러닝에서 과적합(overfitting)을 방지하기 위한 정규화(regularization) 기술 중 하나입니다. Dropout은 특정 학습 단계에서 신경망의 일부 노드를 무작위로 "비활성화"하여 신경망이 특정 노드나 경로에 너무 의존하지 않게 만듭니다.
Dropout을 사용하여 신경망의 성능이 향상되는 주요 이유는 다음과 같습니다:
과적합 방지: 딥 뉴럴 네트워크는 많은 매개변수를 가지고 있기 때문에, 주어진 학습 데이터에 대해 너무 복잡한 모델을 학습하는 경향이 있습니다. 이로 인해 훈련 데이터에 대한 성능은 좋지만 새로운 데이터에 대한 성능은 나빠질 수 있습니다. Dropout은 모델이 훈련 데이터에 과도하게 적합하는 것을 방지합니다.
앙상블 효과: Dropout을 사용하면 매 학습 단계마다 다른 "부분 네트워크"가 학습됩니다. 이로 인해 여러 다른 네트워크의 앙상블과 유사한 효과를 얻을 수 있습니다. 앙상블 방법은 일반적으로 예측의 정확도를 향상시키는 데 효과적입니다.
특성 간의 공동 의존성 감소: Dropout은 모델이 특정 특성들 간의 복잡한 공동 의존성에 너무 의존하지 않게 합니다. 즉, 모델은 각 특성이 중요하게 작용하도록 학습됩니다.
위 내용은경희대학교 소프트웨어융합학과 황효석교수님의 2023년 <심층신경망을 이용한 로봇 인지> 수업 내용을 요약한 것입니다.