일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 딥러닝손실함수
- mocov3
- shrinkmatch
- adamatch paper
- dann paper
- CGAN
- CycleGAN
- Meta Pseudo Labels
- CoMatch
- GAN
- Pseudo Label
- UnderstandingDeepLearning
- 백준 알고리즘
- cifar100-c
- Pix2Pix
- tent paper
- 컴퓨터구조
- simclrv2
- mme paper
- dcgan
- shrinkmatch paper
- BYOL
- Entropy Minimization
- WGAN
- remixmatch paper
- 최린컴퓨터구조
- conjugate pseudo label paper
- ConMatch
- SSL
- semi supervised learnin 가정
Archives
- Today
- Total
Hello Computer Vision
코사인 유사도(Cosine Similarity) 알아보기 본문
Contrastive Learning에 대해 공부하면서 두 벡터 간의 유사도에 대해서 Cosine Similarity가 많이 쓰여 이번 기회에 한번 알아보려고 한다.
코사인 유사도란?
벡터와 벡터 간의 유사도를 비교할 때 두 벡터간의 사잇각을 구해 얼마나 유사한지 수치로 나타낸 것. 예를 들어 90도일 경우 두 벡터간의 연관성은 없다고 보며, 방향이 비슷할 수록 유사하다고 본다. 이를 잘 나타내는 이미지는 다음과 같다.
그리고 값에 대해서는 다음과 같은 수식으로 구한다.
pytorch에서는 구하는 함수를 제공해준다.
import torch
import torch.nn as nn
vec1 = torch.rand(1, 128)
vec2 = torch.rand(1, 128)
cos = nn.CosineSimilarity(dim = 1)
loss = cos(vec1, vec2)
print(loss)
tensor([0.7778])
이 외에도 사이킷런에서 제공해준다.
'딥러닝 > 파이토치' 카테고리의 다른 글
lr_scheduler CosineAnnealingLR 알아보기 (0) | 2023.05.04 |
---|---|
argmax의 keepdim = True, False (0) | 2023.05.01 |
[pytorch] transpose, view 의 차이 알아보기 (0) | 2023.03.16 |
GELU에 대해 이해해보기 (0) | 2023.02.16 |
super().__init__() 쓰는 이유 및 부모 클래스 상속 (0) | 2023.02.10 |