ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 분포 보다 현실적 분포?

Designed by Tistory.