///
Search
Duplicate
🌒

An Intriguing failing of convolutional neural networks and the CoordConv solution

Created
2021/07/04 06:58
발표일자
2020/11/30
발표자
김승일
Tags
CNN
CoordConv
✅main
포스팅 종류
논문리뷰
작성자 : 김승일(모두의연구소 연구소장)
발표일 : 20201130 at DeepLAB 논문반

학습자료

논문 링크

논문 요약

아이디어

Translation invariant가 모든 경우에 좋을까? CNN이 아래 몇몇 아주 단순한 task를 풀지 못하더라. 위치 정보를 잊게 만드는게 장땡이 아님.
Supervised Coordinate Classification : 입력으로 좌표를 넣어주고, deconv layer 통과해서 해당 위치에 점찍어주기
Supervised Rendering : 입력으로 좌표를 넣어주고, 해당 좌표를 center로 네모 그려주기
Unsupervised Density Learning : 임의의 latent variable을 입력으로 주고 나온 파랑/빨강 원/사각형이 비슷한 위치만 나오더라.. (mode collapse)

CoordConv Layer

Method

구현은 아주 심플한데, 원래 입력 이미지에 row, column을 구분할 수 있는 positional encoding 스러운 녀석을 concat해서 넣어주는 것이 CoordConv!
i-coordinate channel은 h×wh \times w 인 rank 1 matrix.
j-coordinate channel은
위 두 channel을 concat하면 사실상 pixel의 (x,y) coordinate를 모두 알 수 있음.

Number of Parameters / Translate dependence

Conv layer : cck2cc'k^2 (c : input channel, c' : output channel, k : kernel size)
CoordConv layer : (c+2)ck2(c+2)c'k^2
Fully Connected layer (translate dependency를 가진 네트워크) : hwcck2hwcc'k^2 ( h×wh \times w : input size )

Experiments

[1] Supervised Coordinate Classification / [2] Supervised Rendering

Not-so-Clevr dataset
문제
(x,y) 좌표를 입력으로 주고, 해당 위치 pixel에 점을 찍기
해당 입력 좌표 (x,y) 을 센터로 사각형을 그리기
실험 결과 : Supervised Coordinate Classification
일반 CNN의 경우, uniform random point 예제도 최대 86% 정도 밖에 성능이 안나옴. quadrant split 예제의 경우 전혀 못품
CoordConv는
100% 풀어냄
학습속도가 200~400배 빠름
CNN은 200K 파라미터를 사용한 것인데, CoordConv는 7.5K 파라미터를 사용해서 훨씬 효율적이었음.
실험 결과 : Supervised Rendering
Rendering 문제는 IOU로 평가. 위 Classification 문제와 거의 비슷한 결과를 보임

[3] Supervised Coordinate Regression

문제
이번에는 Supervised Coordinate Classification과는 반대로 one hot pixel 이미지를 주고 (x,y) 좌표를 맞추게 함
실험결과

[4] ImageNet Classification

여기서는 별다른 성능의 향상이 없었다. (아마도 image classification은 translation invariant 문제를 푸는 것이기 때문으로 추측됨)
논문에서는 CoordConv가 악영향을 안줘서 의미가 있다라고 해석

[5] Object Detection

20% 이상의 성능향상이 있었다.
이것도 MNIST toy data로 실험. Faster R-CNN

[6] Generative Modeling

Mode Collapse 문제 해결에 도움이 된다. 일반 GAN은 원과 사각형이 나오는 위치에서만 나옴 (어차피 real로 속이기만 하면 됨). 그러나 CoordConv GAN은 비교적 넓게 분포되어 나옴

[7] Reinforcement Learning

Atari Game에서 모두 다 좋아진 것은 아니지만 몇몇 게임에서 두드러진 성능 향상을 보였다.
CoordConv로 성능이 향상되는 Atari Game들
CoordConv로 성능이 향상되지 않는 Atari Game들
성능이 많이 떨어짐
성능이 고만고만
성능이 고만고만
대략 agent의 위치의 자유도가 높지 않고 고정된 게임들에서 성능을 발휘하는 듯