-
self-supervised 논문 분석(SwaV 및 Deep Clustering)카테고리 없음 2022. 5. 21. 23:53
Deep Clustering for Unsupervised Learning of Visual Features
a,b 가 독립이면 NMI 는 0 이다.
\ sobel 필터 씀!
kmeans 설명
geometric 로스 에 기초 하여 그룹 지음
거리를 유클리드 거리로 min 해주는 것으로 보임.
위 수식에서는 C 를 찾는 것이 목표로 보임. centroid matrix 가 최종 목표인 것임.
그러나 이 목표하는 바를 바꿀 것임. 먼저 y_n 을 구하고 C 를 구할 것임. min 이 2개 있음. jointly learns 가 이를 의미하는 것 같음.
d*k 중심 매트릭스와 각 이미지 n 에 대해 클러스터 어사인먼트 y_n 을 그룹지어(jointly) 학습함.
다음과 같은 수식을 씀(f 는 conv 넷 으로부터 얻은 feature 임)
kmeans 에서 centroid 안쓰고 pseudo-label 쓸거임( 유사 라벨)
이제 centroid matrix 안쓸거임!
논문명: CPC v1: A. Oord et al., Representation Learning with Contrastive Predictive Coding, NIPS 2018
log(1/p(x)) = p(x) 의 정보량
평균 정보량(정보량 * 확률)
log by linear ( 비례하는 것을 만 들 수 있다)
과거 맥락과 비슷한 미래 맥락(latent)을 예측하는게 목표
: W 를 잘 예측하는게 목표 (Mutual information 을 잘 예측해야 함 MI 최대화)
밑 exp 식으로 부터 W ( trainable param ) 를 업데이트하며 위 식의 근사를 하도록 함
두가지 representation(z: latent rep, c: context rep, 둘 사이 관계 : W)
Unsupervised Learning of Visual Features by Contrasting Cluster Assignments
x_n 로부터 transformation t 를 적용하여 x_nt(증강 이미지) 를 만든다.
unit sphere z_nt (다른 논문에서 glimpse 를 잡을 수 있다)
Context representation 과 비슷한것이 prototypers vector 인가? 잘 모르겠다.
증강 이미지 뷰로 부터 클러스터 어사인먼트 들을 비교하는 것으로 feature 를 가공한 z를 직접 비교하지 않는다 code 의 일관성을 검사한다.
, 기존에는 feature 들을 비교하는 방법론을 대체한다.
codes = '다른' 이미지들로 예측 된 것 을 의미 , 군집을 의미
다시 원래 논문분석으로 돌아간다.
x시퀀스가 미리 데이터에 있음
(인코더에 미리 한번에 태워버림)
t+1 시점의 타겟 z_(t+1)
c_t 생성 할때만 쓰이게 됨
빨 : positive pair
초 : negative pair
색깔 반대 의미 대각선 = positive(타임스텝 일치)
파란색이 하나 타겟
이 negative 가 hard negative(현재시점이 단순히 아니기 때문에) 는 아님
n 이 작으면 Negative 가 아닐수도 있음(성능 떨어질 우려)
논문에서 기본적 사용
오토 인코더 : 잠재 벡터 z 를 잘 추출하자
(인풋벡터가 그대로 나오는)
normal distribution 제약사항 ( generative model 에서의 목적 이 강하다)
latent vector 왜 구하는거지?
- 차원 축소
- feature extraction
- 고유한 latent vector 얻음
오토인코더 사용 범위 (실제 예시) abnormally detection
- reconstruction error 를 학습에 이용(정상인 데이터를 엄청 많이 학습--> 인코더 디코더 학습--> 노말 데이터 분포를 잘 압축하고 압축해제하는 인코더 디코더 학습됨--> anormally 데이터(분포에 벗어나는) recon error 커지게 됨--> 그걸 기반으로 이상데이터 판별함)
uniform distribution 으로 가정
VA 에서 개선사항
collapse 가 일어나느 KL 텀을 어떻게 고쳤다라는 얘기가 명확히 없음
embedding space 학습
입력 x 로부터 discrete latent space (초록색)
가장 유사한 부분 1 이 됨
원 핫 인코딩
prior 업데이트 됨( VA 에 비해서 )
원핫벡터의 몇번째 k 값을 1로 두느냐 = 파란색(k 디멘젼 가지는 원핫벡터)
z = 하나는 1로 되고 나머지 0 (integer 로 맵핑 가능) 원핫벡터
몇 번째 벡터를 가리키는 지 표현한다(파란색?)
z 의 분포 >?
argmin 에서는 그라디언트 계산 할 수 x
loss 가 들어오면 morping 을 해서 복붙
디멘젼 똑같기 때문에 가능
uniform distribution 이 되버리면 k 값이 상수가 된다?
KL 텀 대신하고 있다.
우리가 설정해놓은 prior 와 regularization = KL divergence 텀
딕셔너리 로부터 인코더를 학습한다.
분포를 각각 추정한다( categorical distribution - dense 가 높다. 임베딩 학습 잘 된다.
데이터가 충분히 많다면 연속이 더 낫지 않을까?
unimordal unknown 값 2개(mean, variance), categorical(데이터가 많다면 , k개의 확률값 모두 추정할 수 있는 근거가 있음, k 만 알면 됨. ) )
commumant loss 가 영향(각각 분포)
unimordal 분포 보다 현실적 분포?