V1 로직 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

0. 사용한 태그셋

  • 태그셋 전체

    동물
    새
    곤충
    해양 생물
    의류 및 액세서리
    건물
    명소
    일상 속 사물
    음식과 음료
    가구 및 인테리어
    건강
    취미
    실내
    가전제품
    주방
    자연 및 야외
    사무실
    무늬 및 형태
    인물
    식물
    랜드마크
    스포츠
    상징 및 깃발
    기술
    텍스트 및 문서
    도구 및 기계
    놀이 및 게임
    여행
    차량
    하늘
    바다
    산
    
  • 일상/여행 사진에 주로 등장할만한 태그를 임의로 32개 추출


1. 초기 로직 요약

a. 이미지 ↔ 태그 유사도 계산

  • 모든 이미지에 대해, 사전에 정의된 M개 태그 임베딩과 cosine 유사도를 계산
  • 0.25 미만 유사도는 제외(threshold)
  • 남은 태그 중 이미지별로 상위 3개 태그(Top-3) 추출

b. 글로벌 태그 후보 선정

  • 모든 이미지의 Top-3 태그를 모아 “등장 횟수” 기준으로 집계
  • 빈도가 높은 순서대로 상위 5개 태그를 글로벌 카테고리 후보로 확정

c. 최종 카테고리 할당

  • 각 이미지는 후보 5개 중, 자신과 유사도(기존 계산된 값)가 가장 높은 태그로 분류
  • 만약 어떤 이미지의 Top-3에 후보가 하나도 없으면 → **‘기타’**로 분류

2. 주요 문제점

유사도만 보면 ‘가구 및 인테리어’로 카테고리가 묶여야 하지만, ‘놀이 및 게임’으로 묶였다. 글로벌 상위 5개의 태그 추출과정에서 ‘가구 및 인테리어’가 누락 됐을 것으로 추정

a. 절대 임계값(threshold)의 한계

  • 0.25 기준으로 낮은 스코어는 걸러내지만,
  • “가구 및 인테리어(≈0.27)” vs “놀이 및 게임(≈0.26)” 모두 통과 → 빈도 기반으로 밀려날 수 있음

b. 빈도 기반 후보 선정의 편향

  • 단순 등장 횟수만 세다 보니,
  • 소수 이미지에서 더 높은 유사도를 보인 태그가 글로벌 Top-5에 들지 못함

c. 작은 스코어 차이로 인한 순위 불안정

  • Top-1과 Top-2 차이가 0.01–0.02 수준 → 순위가 쉽게 바뀌고 뚜렷한 우위 태그가 제대로 반영되지 않음

d. 글로벌 분포 무시로 인한 클러스터별 특성 상실

  • 다양한 장면이 섞인 전체 집합에서 인기 태그만 선택 → 특정 그룹의 대표 태그가 사라질 수 있음

e. 후보 내 “낮은 자신감” 필터 부재

  • 후보 5개에 포함된 경우, 아무리 유사도가 낮아도 무조건 할당
  • Top-3 밖은 ‘기타’로 분류하지만, 후보 내 태그들 간 차이가 작으면 오분류 위험이 큼

3. 개선한 로직

a. 로직 설명

가. 초기 분류 (First Pass)

  • 각 이미지에 대해:
    1. Top-3 태그와 점수 계산
    2. Global Top-5 태그 중에서 최고 점수 태그 선택
    3. 분류 조건:
      • 최고 점수가 Threshold(0.22) 미만이면 → '기타'
      • 최고 점수 태그가 Top-3에 없으면 → '기타'
      • 그 외의 경우 → 최고 점수 태그로 분류

나. 그룹 정제 (Refinement)

  • 각 카테고리 그룹에 대해:
    1. '기타' 그룹이거나 3장 미만인 그룹은 그대로 유지
    2. 그 외의 경우:
      • 그룹 내 모든 이미지의 Top-3 태그 점수 합산
      • 합산 점수가 가장 높은 태그를 새로운 대표 태그로 설정
      • 해당 그룹의 모든 이미지를 새 대표 태그로 이동

다. 유사도 재검증 (Second Pass)

  • 각 정제된 그룹에 대해:
    1. '기타' 그룹은 그대로 유지
    2. 그 외의 경우:
      • 각 이미지의 대표 태그와의 유사도 재확인
      • 유사도가 0.22 미만인 이미지는 '기타'로 재분류

라. 카테고리 병합 (Final Merge)

  • 동일한 이름을 가진 카테고리들을 자동으로 하나로 병합

b. 주요 파라미터

  • tau: Confidence Threshold (기본값: 0.22)
  • lambda_boost: Boost Weight (기본값: 1.1)
  • 유사도 임계값: 0.22

c. 특징

  • 이중 검증: 초기 분류와 정제 후 재검증을 통해 정확도 향상
  • 유연한 분류: 낮은 유사도를 가진 이미지는 '기타'로 분류
  • 그룹 기반 정제: 비슷한 이미지들을 그룹화하여 더 정확한 대표 태그 선정
  • 자동 병합: 중복 카테고리 자동 통합