External Learning & Competitions
[2024][Basic][P1] Sign Language Classification
VGG16 조건의 수어 이미지 분류 과제를 다시 보고, 낮은 1-epoch 결과와 새 로컬 분할 실험을 비교했다.
- Platform
- Kaggle
- 진행 기간
- 2024-07-04–2024-08-27
- Host
- sw.baek_00
- Metric
- Accuracy
- 모델 조건
- 사전학습 VGG16을 사용하며 다른 모델은 사용하지 않는 조건

처음 Notebook의 결과
당시 코드는 28×28 grayscale 이미지를 VGG16 입력으로 바꿔 한 epoch을 학습했다. 저장된 출력은 train loss 2.5738, train accuracy 0.2781이었다. epoch을 늘리기 전에 입력 크기 변환, channel 복제, class balance가 실제로 의도한 흐름인지부터 다시 살폈다.
가벼운 기준선을 만든 이유
GPU 학습만 반복하면 데이터 문제가 모델에 가려질 수 있어 HOG 특징과 RBF-SVM으로 별도 기준선을 만들었다. 80/20 stratified random-row split에서 accuracy와 macro-F1이 모두 1.0으로 나왔다.
1.0을 그대로 성능이라고 쓰지 않은 이유
원 데이터에는 촬영자나 원본 이미지 group ID가 없었다. 증강본이나 거의 같은 이미지가 train과 validation에 나뉘면 과도하게 높은 수치가 나올 수 있다. 그래서 이 값은 현재 분할에서 코드가 동작한 결과로만 남기고, 새로운 사람의 수어를 분류하는 일반화 성능으로 해석하지 않았다.
다음 비교
다음 실행에서는 perceptual hash로 유사 이미지를 묶은 group split을 만들고, 같은 분할에서 VGG16과 HOG 기준선을 비교할 예정이다. Kaggle에 로그인해 제출한 점수나 순위를 재현한 실험은 아니다.
다시 실행하면서 바꾼 점
남아 있던 Notebook 결과와 새 로컬 홀드아웃 결과를 비교했다. 80/20 stratified random-row holdout; seed 42 조건에서 HOG(9 orientations, 4×4 cells, 2×2 blocks) + RBF-SVM(C=10)을 사용했다.
- 당시 Notebook
- 1 epoch; train loss 2.5738204723; train accuracy 0.2780599031
- 단순 기준선
- accuracy 0.0472; balanced accuracy 0.0417; macro-F1 0.0038
- 수정한 모델
- accuracy 1.0000; balanced accuracy 1.0000; macro-F1 1.0000
원 데이터에 촬영자·원본 그룹 ID가 없어 증강·유사 이미지의 분할 간 누수를 배제할 수 없습니다. 100%는 무작위 행 분할의 로컬 결과이며 일반화 성능이나 Kaggle 점수가 아닙니다.
위 수치는 문서화한 로컬 분할에서 얻었다. 로그인된 Kaggle 제출 이력·점수·순위까지 다시 확인한 값은 아니다.