ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 0203-0217
    Note 2025. 2. 17. 11:24

    *Cosine similarity를 임베딩 간 유사성 비교에 사용하는 이유 

    - 크기 차이 무시, 방향 비교

    - Word2Vec, BERT, scRNA-seq ..등의 임베딩에서 코사인 유사도 사용해 벡터 간 의미적 유사성 비교

    - 고차원 공간에서 euclidean distance 보다 더 신뢰가능.. 고차원 공간에서는 모든 벡터들이 서로 떨어지기 때문에 유클리디안 거리가 큰 의미가.. 그러나 코사인 유사도는 차원이 증가해도 상대적으로 더 일관된 유사성 제공

     

    *Dot Product(내적) : 두 벡터의 방향, 크기를 모두 고려하여 유사성 측정

     

    *squeeze(dim=0)은 첫 번째 차원(0번 차원)이 크기 1인 경우 제거

    import torch
    
    # 3D 텐서 생성
    tensor = torch.rand(1, 3, 4)  # shape: (1, 3, 4)
    print(tensor.shape)  # 출력: torch.Size([1, 3, 4])
    
    # squeeze(0) 적용
    squeezed_tensor = tensor.squeeze(0)
    print(squeezed_tensor.shape)  # 출력: torch.Size([3, 4])
    
    tensor2 = torch.rand(2, 3, 4)  # shape: (2, 3, 4)
    squeezed_tensor2 = tensor2.squeeze(0)
    print(squeezed_tensor2.shape)  # 출력: torch.Size([2, 3, 4]) (변화 없음)

     

    * 벡터 유사도 비교 시 정규화를 수행하여 unit vector를 사용. 방향성만 학습하게 만듬

    L2 정규화는 벡터를 크기 1로 변환하는 것

    Dot Product 값 == Cosine Similarity 값과 동일

     

    *Early stopping

    : 과적합(overfit)방지하기 위해, 검증 데이터의 성능을 모니터링하다가 손실이 개선되지 않는 상태가 일정 횟수(patient) 이상 지속되면 학습을 중단

     

     

    os.path.splitext()
    : 파일명과 확장자를 분리하는 함수, 모든 확장자(.txt, .csv, .h5ad 등)에 대해 범용적으로 동작

    import os
    
    file_names = [os.path.splitext(filename)[0] for filename in anndata_list]

     

    'Note' 카테고리의 다른 글

    anndata의 값이 raw cnt인지 확인하는 법  (0) 2025.03.06
    NVIDIA driver, CUDA, torch  (0) 2025.03.05
    0120-0126  (0) 2025.01.20
Designed by Tistory.