-
정의 : 레이블이 없는 데이터로부터 데이터간의 관계를 통해 레이블을 자동으로 학습
-
필요성 : 지도학습은 강력하지만 많은 양의 레이블링된 데이터 필요 → 시간 및 비용 소모 多
-
Pretext Task : 사용자가 정의한 문제 (ex. Downstream Task를 위해 시각적 특징을 배우는 단계)
-
Downstream Task : SSL로 학습된 features들이 잘 학습되었는지 판단하며, 최종적으로 이루고자하는 task (ex. 분류)
-
사용자가 정의한 새로운 문제(pretext task)를 네트워크에 학습 시켜서 데이터 자체에 대한 이해도를 높임 = pre-traning
ㄴ pretext task 성능 확인 : pretraining 이후 모든 weight들을 freeze. 얼마나 feature를 잘 뽑는지, representation을 얼마나 잘 배웠는지 확인
-
pretraing 이후 전이 학습(transfer learning)을 통해 최종적으로 이루고자하는 문제(downstream task)를 해결 = fine-tuning
ㄴ fine-tuning : 기존 학습된 모델 기반 프레임워크를 새로운 목적에 맞게 변형하고 이미 학습된 모델 weight로부터 학습을 업데이트
- 단점 : 픽셀 단위로 복원 or 예측하기에 계산 복잡도 높다
- 신경망을 통해 재건한(reconstruction) 출력 데이터의 정답 레이블 = 입력 데이터 사용 → 입력과 출력의 결과가 같도록 학습
- 판별자는 이미지의 real/fake와 rotation degree(0, 90, 180, 270) 총 2가지를 구분
- 생성자가 만든 이미지를 rotation, rotation 얼마나 했는지 cross entropy loss로 만들어서 GAN loss에 더함 → identity(회전 x) 이미지에 대해서 real/fake 구분, 나머지 이미지에 대해서는 rotation angle 학습
- Pros : 사용자가 새로운 문제를 정의(=pretext task) 및 학습함으로 모델이 데이터 자체에 대한 이해 ↑ → pre-train 되어진 모델을 transfer learning(이전 학습)함으로 downstream task(ex. 분류)를 더 잘 해결할 수 있음
- Cons : 각 이미지마다 학습이 진행되서 데이터셋 ↑ 연산량 ↑ → 성능 향상이 어려운
- 이미지에서 분할 추출(=seed patch)하여 transformation(변형) 한 뒤, 다른 종류의 여러 seed 중 같은 원본 seed를 고르게 학습
- Pros : N개의 exemplar에 N개의 클래스 존재 → fine-grained(세밀한) 정보 보존 가능
- Cons : N개의 exemplar에 N개의 클래스 존재 → 파라미터 수 ↑ & 소요 시간 ↑
- object 부분을 인지하여 공간적 관계를 파악하는 것을 학습
- Pros : 최초의 자기지도학습 방법으로 object 부분에 대하여 학습하게 하는 직관적인 태스크
- Cons
- 학습 이미지가 표준성이 있어야 하며, 이미지의 representation(대표성)이 목적이지만 patch를 학습한다.
- 다른 이미지의 negative가 없기 때문에 충분히 fine-grained(정밀) 하지 않다.
- 중심 patch 외 8개의 선택지 뿐이라 output space가 적다.
- 이미지를 패치로 분할하고 순서를 바꾼다. 네트워크가 parts들의 위치를 잘 파악해서 순서를 예측하는 것이 목표
- CFN(context-free network) 구조 제시 : siamese-ennead CNN
- 원래 이미지의 canonical(규정)된 orientation(방향)을 잘 이해해야 한다. → 이미지의 전반적 특징 학습 가능
- Pros : 적용이 용이
- Cons
- 학습 이미지가 표준성(ex.중력으로 땅이 바닥에있는)이 있어야 한다.
- 다른 이미지의 negative가 없기 때문에 충분히 fine-grained(정밀) 하지 않다.
- 중심 patch 외 8개의 선택지 뿐이라 output space가 적다.
- 추출된 feature값은 instance간의 유사도 정보가 있을 것이라는 가정에서 시작되며, Positive/Negative pair로 구되어 Positive pair끼리 거리를 좁히고, Negative pair끼리는 거리를 멀리 띄워놓는 것이 학습 원리
- 같은 image에 서로 다른 augmentation 실행, 두 positive pair의 feature representation은 거리가 가까워(유사해)지도록 학습
- 다른 image에 서로 다른 augmentation 실행, 두 negative pair의 feature representation은 거리가 멀어지도록 학습
- dictonary 구조로 많은 negative sample 수를 확보하여 성능 향상 & FIFO Memory Queue 사용
- 과정
- MLP 기반의 projection head를 추가
- encoder에 들어가는 sample들의 data augmentation 구성을 최적화
- cosine learning rate schedule을 추가
- queue 구조의 dictionary 삭제 및 큰 batch size 이용, ResNet → Vision Transfermers(ViT) 적용
- 기존 projection head + prediction head를 추가= query encoder를 구성
- Queue 사용 X. batch size를 크게 사용 → 충분한 negative 생성 & 다양한 Data augmentation 기법 활용
- 과정
- 원본에서 예제를 무작위로 추출하여 두 번 변환 (random cropping & color distortion)
- Resnet(BaseEncoder)을 통해 representation 계산
- MLP(projection head)를 통해 representation의 비선형 투영 계산
- Positive pair간의 similarity ↑, negative pair 간의 similarity ↓
- 확률적 경사하강법을 이용하여 Resnet & MLP 업데이트
- ResNet-152 3배 selective kernel(데이터에 따라 kernel_size가 변화) 추가 (기존 : ResNet-50 4배)
- projection head의 linear layer 개수 2개 → 3개
- Negative example을 최대한 늘리기 위한 memory network를 추가
- 과정
- 2개 network에 서로 다른 augmentation을 적용하여 feature vector(prediction) 추출
- online network와 target network의 projection output에 L2 normalization
- MSE를 최소화시키는 방향으로 online network를 학습(online network output = target network output 되도록 학습)
- loss의 대칭화를 위해 사용한 augmentation을 바꿔서 loss 한번 더 계산하여 두 loss의 합으로 학습
- Pros
- negative 쌍을 사용하지 않고, positive 쌍만 이용하여 SimCLR보다 2% 성능 향상
- 기존 negative 쌍을 사용 시 배치 크기가 매우 커야 학습이 잘 된다는 문제 & 데이터 증강에 따른 성능 편차가 크다는 문제 해결
- representation을 잘 배우는 것이므로 학습이 끝나면 onlline network의 encoder 제외 나머지는 사용 안함
- Transformer의 등장
VATT (Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text) - Apr 2021
- Transformer를 이용해 Multimodal Representation을 학습
- Input : 비디오 클립, 비디오에 있는 오디오, 비디오 클립에 대한 텍스트 → Multimodel Data (서로 다른 형태의 데이터)
- Tokenization & Positional Encoding을 통해 embedding vector로 Projection → Transformer Encoder
- Output : Multimodal representation, 비디오 프레임에 부합하는 프레임-오디오, 프레임-텍스트
- Task : Video action recognition & Audio event classification (SOTA Score) + Zero-shot video retrieval, Image classification
- Multi-stage transformer 사용 visual representation 학습
- S.A.(Sparse Self-Attention) 활용하여 계산 복잡성 ↓ & 모델 표현력을 유지
- 손실 함수 최소화를 위해 지식 증류 사용
- 과정
- Input Image argumentation하여 view set 생성
- patch 사이즈에 따라 위에는 글로벌 토큰. 아래는 로칼 토큰으로 각쌍을 생성하여 손실함수를 구함
- Task : Image Classification(SOTA score)
https://velog.io/@tobigs-gm1/Self-Supervised-Learning#2-%EC%B4%88%EC%B0%BD%EA%B8%B0%EC%9D%98-gan-%EA%B8%B0%EB%B0%98-%EC%9E%90%EA%B8%B0%EC%A7%80%EB%8F%84%ED%95%99%EC%8A%B5 https://daeun-computer-uneasy.tistory.com/37