Post

UMUD 챌린지 ⑥ — 5등에서 3등으로: 측정 규칙 두 개, 그리고 잘 안 된 것들

UMUD 챌린지 ⑥ — 5등에서 3등으로: 측정 규칙 두 개, 그리고 잘 안 된 것들

⑤편을 쓴 뒤 사흘 동안 public LB가 0.2636(5등) → 0.2548(3등)으로 내려갔습니다. 이번 개선은 모델을 바꿔서 얻은 게 아닙니다. 모델이 그려 준 근막과 다발에서 숫자를 어떻게 읽느냐를 두 군데 고친 결과입니다. 이 글은 그 두 규칙이 무엇이고 왜 맞았는지, 그리고 같은 기간에 시도했다가 버린 것들을 정리합니다.

대회 진행 중이라 코드와 대회 이미지는 싣지 않습니다. 그림은 모두 직접 그린 도식과 수치 차트입니다. ‘실측’은 한 가지만 바꾼 제출 쌍으로 확인한 값이고, 나머지는 ‘추정’입니다.

0. 지금까지 내려온 길

LB 흐름 가로축의 각 칸은 직전 제출에서 규칙 하나만 바꾼 것이다

점수 식은 그대로입니다. 근섬유다발 각도(PA), 길이(FL), 근육 두께(MT)의 MAE를 각각 6°, 12mm, 3mm로 나눠 평균합니다.

\[S = \tfrac{1}{3}\left(\tfrac{\mathrm{MAE}_{PA}}{6^\circ} + \tfrac{\mathrm{MAE}_{FL}}{12\,\mathrm{mm}} + \tfrac{\mathrm{MAE}_{MT}}{3\,\mathrm{mm}}\right)\]

큰 폭으로 내려간 지점은 대부분 측정 관례를 바로잡은 곳입니다. 화면 축척을 평가자가 본 좌표계로 맞춘 것(0.414 → 0.350, 0.302 → 0.271)이 대표적입니다. 이번 두 규칙도 같은 종류입니다.

1. 바꾼 규칙 두 개

두 규칙 도식 왼쪽: MT를 재는 위치. 오른쪽: PA를 FL·MT와의 기하 관계 쪽으로 당기는 정도(개념도)

① MT를 스캔 영역 기준 세 곳에서 잰다

주최측 프로토콜은 MT를 “영상의 왼쪽·가운데·오른쪽 세 세로선에서 잰다”고 설명합니다. 이전 규칙은 두 근막이 함께 보이는 가로 구간을 셋으로 나눴습니다. 심층 근막이 화면 일부에서 끊기면 세 열이 한쪽으로 몰렸습니다.

새 규칙은 근막을 직선으로 연장한 뒤 스캔 영역 전체의 1/6·1/2·5/6 위치에서 잽니다.

 벤치35깨끗10NeuAge
로컬 Δ−0.0013−0.0010−0.0044

효과는 작습니다. 테스트에서 이 규칙이 바꿀 수 있는 최대 LB 폭도 0.007 정도로 계산됩니다. 그래도 프로토콜 문구와 맞고, 세 세트 모두 같은 방향이라 넣었습니다.

② PA를 ‘FL·sinPA ≈ 1.07·MT’ 쪽으로 조금 당긴다

다발 하나가 두 근막 사이를 비스듬히 가로지른다면 기하적으로 FL·sin(PA) ≈ MT입니다. 근막이 평행하지 않아서 실제로는 1보다 조금 큰 비율이 나옵니다. 전문가 정답 세트에서 잰 값은 약 1.07입니다.

우리 예측에서 이 비율 $r$을 계산하면 영상마다 1에서 벗어납니다. 세 값 중 무엇이 틀렸는지는 모르지만, 로컬에서 FL 쪽을 고치면 세 세트 모두 나빠졌고 PA 쪽만 고치면 좋아졌습니다. 그래서 PA만 아래처럼 조금 움직입니다.

\[\sin \mathrm{PA}' = \sin \mathrm{PA} \cdot r^{-\lambda},\qquad r = \frac{\mathrm{FL}\,\sin \mathrm{PA}}{1.07\,\mathrm{MT}},\qquad \lambda = 0.2\]

λ는 벤치에서 고르고 NeuAge에서 확인했습니다. ①과 합친 로컬 결과는 −0.0029 / −0.0042 / −0.0068이었고, NeuAge를 넷으로 나눈 부분 집합에서도 모두 개선이었습니다.

LB에서 확인한 것

제출 (모두 같은 기준 위에 한 가지씩)LB기준 대비
기준: PA +0.36°0.26361—
PA +0.6° (균일하게 더 올림)0.26041−0.0032
① + ② (MT 3열 + PA 당김 λ0.2)0.25482−0.0088

재미있는 건 ②가 PA를 올리는 방식입니다. 테스트에서 PA를 올린 평균 폭은 +0.18°로, 균일하게 +0.24°를 올린 제출보다 작습니다. 그런데 효과는 거의 세 배였습니다. ②는 긴 화면 장비(TEL1088 +0.34°, TEL1200 +0.21°)에서 주로 PA를 올립니다. 우리 예측의 PA 과소 추정이 그 화면들에 몰려 있다는 뜻으로 읽었습니다.

2. 미리 정한 기준으로만 고른다

public LB는 약 102장으로 계산됩니다. 같은 제출을 두고 잡음만으로 ±0.005 정도는 흔들릴 수 있다고 봅니다. 그래서 제출 전에 “기준 대비 −0.005 이하면 채택, ±0.005 안이면 로컬 근거대로, +0.005 이상이면 기각”을 적어 두고 그대로 따랐습니다.

10/5 제출이 이 규칙을 시험했습니다.

제출LB기준(0.25482) 대비판정
PA 당김 λ 0.30.25209−0.0027문턱 안 → 0.2 유지
PA +0.6°0.25307−0.0018문턱 안 → 유지
MT −0.1mm0.25347−0.0014문턱 안 → 채택 안 함
안정성 후보(여러 학습 실행의 중앙값)0.25734+0.0025최종 후보로 보류
PA 가로 추세 읽기0.26212+0.0073기각

리더보드에는 최고 제출인 0.25209가 표시됩니다. 하지만 기준 파이프라인은 바꾸지 않았습니다. 세 변경이 모두 같은 방향이라 합치고 싶은 유혹이 있습니다. 그러나 문턱 안의 차이를 모아 합치는 건 public 102장에 맞추는 일이고, private 207장에서 그대로 갈 거라는 보장이 없습니다.

3. 남은 오차는 어디에 있나

오차 분해 왼쪽: 점수의 세 항 중 FL이 절반. 오른쪽: 영상마다 가장 큰 오차 원인을 하나씩 붙였을 때의 몫

기준 구성을 로컬 세 세트에서 쪼개 봤습니다.

  • FL이 점수의 48~50%입니다. PA는 25~35%, MT는 15~25%입니다.
  • FL 오차의 가장 큰 원인은 화면 밖 외삽입니다(35~38%). 다발이 화면보다 길어서 양 끝을 근막까지 연장해야 하는 경우입니다.
  • 그다음은 다발 방향입니다. PA 자체 오차와, PA가 틀려서 FL까지 번진 몫을 합치면 36~44%입니다.
  • PA 오차를 더 쪼개 보니 앙상블 4개 모델이 함께 틀리는 몫이 대부분이었습니다. 영상마다 가장 잘 맞은 모델 하나를 고를 수 있다면 PA MAE가 0.76° → 0.50°까지 내려갑니다. 하지만 어느 모델이 맞을지 미리 알려 주는 신호는 찾지 못했습니다. 모델의 자신감과 오차 사이의 상관이 0에 가까웠습니다.

4. 해 봤지만 버린 것

시도결과이유
학습 crop 폭 640 → 1024기각NeuAge 단독 +0.13~+0.15 (두 짝 모두 3 SE 이상 악화)
조각 각도의 가로 추세를 화면 가운데에서 읽기LB +0.0073, 기각로컬 NeuAge는 좋았지만 TEL1088에서 PA를 내림
FL 외삽 규칙 6종(근막 곡선 연장, 조각 선택 등)모두 기각·보류벤치와 NeuAge가 원하는 FL 방향이 반대
근막선 맞춤 방식 4종기각대회 검증 영상에서 모두 악화
4개 모델 FL 합치기 규칙기각벤치 근거 없음, 부분 집합끼리 엇갈림

모델 쪽 변경은 이번에도 하나도 통과하지 못했습니다. 지금까지 추가 데이터, 스캔 영역 잘라내기, 넓은 crop, 다른 백본을 시도했고, 모두 장비가 다른 NeuAge에서 크게 나빠지는 같은 패턴이었습니다.

5. 검증 세트를 의심하게 된 이야기

FL 오차를 파다가 이상한 걸 발견했습니다. NeuAge에서는 우리 근막선이 평가자 선보다 영상마다 평균 +0.6°(표준편차 1.3°) 기울어 있었습니다. 이 기울기만 평가자 값으로 바꿔도 FL 오차의 흩어짐이 10.1 → 7.0으로 줄었습니다.

그래서 같은 검사를 대회 학습 데이터에서 떼어 둔 검증 영상 205장에 해 봤습니다. 이 데이터는 테스트와 주석 방식이 같습니다. 결과는 기울기 차이 +0.01~0.02° (표준편차 0.3°)로, 사실상 없었습니다.

정리하면 NeuAge의 근막 기울기 차이는 우리 측정의 결함이 아니라 NeuAge 쪽의 특성입니다. 원인 후보는 장비 차이나 평가자의 선 긋는 방식인데, 이 부분은 검증하지 않았습니다. 결과적으로 NeuAge의 FL 판정은 테스트를 대신하는 근거로 약합니다.

이 결과로 검증 세트별 역할을 다시 정했습니다.

세트장점약점이제 쓰는 곳
벤치35 (전문가 7명)테스트와 같은 측정 관례25장이 학습 데이터와 거의 같은 영상모든 판정의 기본
깨끗10학습 데이터와 겹치지 않음10장뿐벤치 확인용
NeuAge 247장많다장비·주석 관례가 다름PA·모델 일반화 확인. FL 판정에는 무게를 덜 둠
대회 검증 영상테스트와 같은 주석숫자 정답이 없어 MT만 대리 채점 가능MT 관례 확인

마지막 줄의 대리 채점이 하나를 정리해 줬습니다. 벤치에서는 우리 MT가 0.1~0.2mm 길게 나와서 ‘MT −0.1mm’ 보정이 좋아 보였습니다. 그런데 대회 라벨 기준으로는 우리 MT의 치우침이 0이었습니다. 이 차이는 벤치 평가자들의 측정 습관이었던 셈입니다. LB에서도 −0.0014로 문턱 안이었으니 서로 맞는 결과입니다.

6. 다음

  • 1위(0.2407)와 차이는 약 0.011입니다. 측정 규칙으로 얻을 수 있는 큰 개선은 거의 다 쓴 것 같습니다.
  • 남은 큰 덩어리는 4개 모델이 함께 틀리는 다발 방향입니다. 규칙이 아니라 분할 모델이 다발을 더 정확히 그려야 줄어드는 몫입니다.
  • 다만 모델 변경은 지금까지 장비가 다른 데이터에서 계속 무너졌습니다. 그래서 다음 실험은 같은 증강 난수로 짝을 지어 학습하고, 대회 검증 영상과 벤치를 함께 보는 방식으로만 판정할 생각입니다.
This post is licensed under CC BY 4.0 by the author.