Discriminative Unsupervised Feature Learning with Convolutional Neural Networks (Exemplar-CNN)

|


Alexey Dosovitskiy, Philipp Fischer, Jost Tobias Springenberg, Martin Riedmiller, Thomas Brox
(Submitted on 26 Jun 2014 (v1), last revised 19 Jun 2015 (this version, v2))
arXiv:1406.6909


Exemplar-CNN 또는 Exemplar 라고 부른다.

2014년도.. 예전의 논문이라 간단히 어떤식으로 네트워크를 학습시켰는지만 봤다.


Training에 쓰일 input들은 나중에 학습 후에 적용될 target task의 이미지와 거의 동일한 분포를 가진 이미지를 선택한다. 또한 저자들은 object를 포함하거나 object의 part를 포함하고 있는 패치에만 관심이 있었기 때문에 상당한 gradients를 가진 지역으로부터만 sample을 해서 사용했다. (위의 그림처럼)

이제 이 패치들을 각각 transformations을 해준다. 이 때 적용되는 transformation의 종류는 매우 다양하다.

  • translation: vertical or horizontal translation by a distance within 0.2 of the patch size;
  • scaling: multiplication of the patch scale by a factor between 0.7 and 1.4
  • rotation: rotation of the image by an angle up to 20 degrees
  • contrast 1: multiply the projection of each patch pixel onto the principal components of the set of all pixels by a factor between 0.5 and 2 (factors are independent for each principal component and the same for all pixels within a patch)
  • contrast 2: raise saturation and value (S and V components of the HSV color representation) of all pixels to a power between 0.25 and 4 (same for all pixels within a patch), multiply these values by a factor between 0.7 and 1.4, add to them a value between −0.1 and 0.1
  • color: add a value between −0.1 and 0.1 to the hue (H component of the HSV color representation) of all pixels in the patch (the same value is used for all pixels within a patch)


이제 위의 수많은 transformation을 랜덤하게 해주었을 때 아래와 같은 그림이 나온다.

가장 왼쪽 상단 빨간색 칸 안의 사슴이 실제 original 패치이고 그 외의 것들은 random transformation을 거친 것들이다. 자, 이제 이들을 어떻게 SSL 기법으로 학습시키는 것인가?

각 오리지널 패치마다 클래스 번호를 달아준다. 그리고 transformation을 통해 생성된 수많은 패치들을 input으로 넣었을 때 해당하는 클래스 넘버가 나오게끔 학습을 시킨다.

예를 들어, Figure 2의 original 사슴에 5번이라는 클래스 넘버를 ground truth로 할당한다. 그렇다면 오리지널 사슴 이외의 여러 transformation이 적용된 사슴 이미지들을 네트워크에 입력으로 넣었을 때 5번이라고 나오게끔 학습을 시킨다는 것이다.


여기서 transformation에 대해 알아야 할것이 있다. 이 transformation approach는 image content의 identity를 바꾸지는 않는다는 것을 가정한다.

예를 들어, color transformation을 이용하여 이러한 색 변화에 invariant 하도록 네트워크를 학습시킬 것이므로 color information에 의존하는 task에서는 학습된 feature들이 제대로 작동하는 것을 기대할 수 없다. 예를 들자면 흑표범과 푸마를 구분하기가 어렵다는 것. 이 경우에는 적용될 transformation을 주의깊게 선택하는 거나 그 이외의 방법으로 커버가 가능하다.


classification에 적용한 결과는 아래와 같다. 성능이 당시의 다른 기법들보다 좋았음을 볼 수 있다.


다 읽고..

다른 논문에서 언급된 ssl 기법이라 빠르게 훑듯이 읽어보았다. Target task에 쓰일 이미지들과 유사한 이미지만을 선별했다는 점과 color invariant를 학습하기 때문에 색 구분이 힘들다는 점 등을 고려한다면 엄청 제한적인 기법이 아닌가 싶다. 여러 dataset에 적용하기에는 무리가 있을 것으로 보인다.

Comments