Self-supervised learning은 label을 데이터셋이 주는것이 아닌
모델이 스스로 지도감독을 통해 학습하는 방식이다.
이 기술도 꽤 유망한 기술이니 열심히 공부해야겠다.
CVPR'19
https://ieeexplore.ieee.org/document/8953870
Self-Supervised Representation Learning by Rotation Feature Decoupling
We introduce a self-supervised learning method that focuses on beneficial properties of representation and their abilities in generalizing to real-world tasks. The method incorporates rotation invariance into the feature learning framework, one of many goo
ieeexplore.ieee.org
(이 논문도 아카이브 논문을 못찾겠다.
IEEE 이용이 불가능 하면 구글 검색으로 open acess버전을 사용하자.)
이 논문은 RotNet이라는
Unsupervised representation learning by predicting image rotations(ICLR'18)
논문을 기반으로 만들어졌다.
위 논문은 이름에서 알 수 있는것 처럼 이미지의 각도를 예측하는 모델인데
여기에 downstream task까지 적용할 수 있는 feature를 추출하는 모델이다.
downstream model은 classification, object detection, segmentation 등이 있다.
따라서 모델은 rotation과 relate한 특성과 unrelate한 특성을 구분해서 학습한다.
이를 통해 ratation label의 noise를 줄이고 rotation 특성과 이미지의 특성을 decoupling 한다.
다음은 본 모델의 구조도다.
Image rotation prediction
먼저 RotNet에 대해 살펴보면 image의 rotation transformation을 조사하는 모델이다.
training dataset이 다음과 같이 주어지고
rotation trasnformation G 를 다음과 같이 함수로 정의한다.
y는 y번째 각도변화라는 뜻으로 (y-1) * 90º로 생각하면 된다.
그리고 F( · ; θ)은 rotation classifer다.
따라서 다음과 같이 cross-entropy loss l을 사용해서 F가 학습된다.
rotation 예측의 전제 조건은 image들이 up-front 모양을 하고 있어야 한다는것이다.
그러나 다음 그림처럼 orientation agnostic한 image가 존재하기 때문에
전제 조건이 성립하지 않는다.
저자들은 일단 original image의 orientation을 default orientation이라고 하고
이것을 positive example이라고 했다.
그리고 rotation 변화를 주어 orientation이 변하는 이미지를
negative example이라고 했다.
그러나 original image에 rotation 변화를 주어도
여전히 default orientation을 띄는 이미지가 존재하게 된다.
이를 다루기 위해 binary classification으로 rotation 변화 후 이미지가
positive인지 negative인지 구별하는 가중치를 다음과 같이 정의했다.
여기서 F는 image가 postive라고 추정될 확률이다.
이를 통해 식 (1)을 다음과 같이 조정하여 noisy example의 영향을 줄였다.
Feature decoupling
image rotation에만 관련된 image feature은 downstream task에 적절하지 않다.
그래서 저자들은 그 대안으로 이미지 자체의 feature와
rotation feature을 decoupling하는 방법을 제안했다.
Rotation classification을 하기 전 high level feature을
다음과 같이 f(1)과 f(2)로 분리하여 정의하였다.
f(1)은 image rotation과 관련된 특성이고
f(2)는 image agnostic한 특성이다.
다시 ConvNet based feature extractor를 다음과 같이 정의하였다.
이때 rotation classifier를 Fc라고 하면 그 loss는 다음과 같다.
이렇게 식 (3)을 기반으로 rotation classification loss가 정의된다.
f(1) feature로 각도를 구분한 다음 f(2)는 각도에 무관한 feature를 추출해야 한다.
그래서 같은 class에 대해 비슷한 특성을 추출하기 위해서
같은 class간의 feature 거리를 줄여주고자 distance loss를 만들었다.
f바 는 f(2)의 평균이고
d는 Euclidean distance로 다음과 같다.
하지만 위와 같은 loss만으로는 다른각도 같은 이미지에 대해 한계가 존재한다.
왜냐하면 output을 간단하게 0벡터로 하면 거리가 0이기 때문이다.
그래서 image instance classification loss도 새로 구성하였다.
f햇은 f바의 L2-normalized다.
이에 따라 classification loss는 다음과 같다.
이때 계산 시간과 계산 space 완화를 위해 128-dimentional linearly mapping을 했다고 한다.
그 다음 noise constative estimation (NCE)와 proximal regularization을 적용하여
Ln을 다음과 같이 재정의 했다.
Pd는 실제 데이터 분포이고
Pn은 NCE에서 노이즈에 대한 uniform 분포이다.
따라서 최종적인 loss는 다음과 같다.
이를 통해 f(1)은 각도, f(2)는 각도와 관계없이 이미지 자체에 집중한 특성을 추출한다.
이 논문은 이미지 rotation에 대해 구분하는 RotNet에
일반적인 downstream task를 적용가능하도록 만든 논문이다.
rotation에 대한 feature는 일반 task에서 추출하는 feature과 다르다는것을 알게되어
큰 공부가 된 것 같다.