v2.0.0의 분류기로 대형조를 포함해 학습한 Logistic Regression(LR)을 채택한다. 이 보고서는 채택한 LR의 데이터 구성, 학습 설정, 임계값 정책, 개발 평가 결과를 설명한다.

1. 용어

용어 의미
클립 판정 대상 오디오 한 개
Probe 고정된 Perch 임베딩으로 학습하는 분류기
Recall 실제 앵무새 중 통과한 비율
Mimic recall 목표 단어를 모사한 앵무새 소리 중 통과한 비율
Precision 통과한 클립 중 실제 앵무새인 비율
False acceptance rate(FAR) 해당 비앵무새 집단 중 잘못 통과한 비율
임계값 τ 점수가 이 값 이상이면 통과하는 기준
Out-of-fold(OOF) 해당 평가 데이터를 학습하지 않은 모델의 예측
Nested 교차검증 내부 임계값 선택과 외부 성능 평가를 분리한 교차검증
Reference (기준 음성) 보호자가 목표 단어를 말한 기준음성
Ambient 사람 음성 사람의 대화 소리 등 일상 잡음 중 사람의 목소리가 포함된 것

2. v1.0.0 -> v2.0.0 개선 목적

2.1 게이트의 역할

버디버드의 전체 파이프라인은 아래와 같다. 이 보고서의 대상은 앵무새 소리 여부를 판별하는 2단계 게이트이다.

0. VAD 클립 입력
1. 음량 게이트 — 너무 조용해 판별이 어려운 클립을 버리는 게이트 (too_quiet)
2. 앵무새 소리 여부 판별 — 사람 음성·TV 소리 등 비앵무새 소리를 버리는 관문
3. 모사 성공 여부 판정 — 보호자 녹음 샘플과 비교

뒤에 이어지는 4단계에서는 보호자 기준음성과 앵무새 소리를 비교해 모사 성공을 판정한다. 보호자 음성이 통과하면 모사 성공을 잘못 판정할 수 있어, 사람 음성 차단이 중요하다.

2.2 앵무새 소리 여부 판별 v1에서 확인한 문제

v1.0.0은 작은 초기 데이터셋으로 학습하고, 사람 음성 전체 FAR 2% 이하를 목표로 임계값을 정했다. 이후 서비스 데이터에서 높은 앵무새 recall과 함께 보호자 음성 오통과 문제가 관찰됐다. 기존 공개 보고서의 보호자 기준음성 FAR은 33.6%였다. v1 실데이터 평가

2.3 대상 조류 범위

서비스의 우선 목표는 소형조와 중형조다. 이번 학습에는 대형조 85개를 포함한 전체 18,175개를 사용했다. 대형조의 개별 성능은 오류 부분집합에서 확인한다.

관련 자료: 조류 크기별 음향 분석, Whisper 모사 인식 실험.


3. 데이터 구성

전체 데이터의 유형별 구성

서로 겹치지 않는 다섯 유형으로 구성한 전체 18,175개. 사람 reference는 서비스 보호자와 비서비스 기준음성을 포함한다.

항목 수량
전체 클립 18,175
앵무새 6,580
비앵무새 11,595
평가 집단 클립 수 분류
앵무새 1,198 + 5,382 = 6,580 양성 전체
Mimic (앵무새의 단어 모사) 1,198 앵무새
일반 앵무새 소리 5,382 앵무새
사람 음성 425 + 2,907 = 3,332 비앵무
Reference (보호자가 목표 단어를 말한 기준음성) 425 비앵무
Ambient 사람 음성 (일상 대화 소리) 2,907 비앵무
잡음 (TV소리, 청소기 소리 등등) 8,263 비앵무

4. 모델 구조

4.1 Google Perch 2.0 인코더 파라미터

항목 채택 값
인코더 Perch 2.0 ONNX
채널 Mono
입력 샘플률 32 kHz
Target peak None
창 길이 5초
이동 간격 2.5초
짧은 오디오 5초까지 zero padding
여러 창 결합 임베딩 평균
임베딩 차원 1,536

4.2 로지스틱 회귀 probe 파라미터

항목 채택 값
ID lr-3af78629b1c2
특징 전처리 StandardScaler
분류기 L2 Logistic Regression
규제 강도 C 0.0003
Solver lbfgs
최대 반복 5,000
학습 seed 0
클래스 가중치 balanced
학습 데이터 사용 범위 앵무 클립 6,580 / 비앵무 클립 11,595 모두를 학습 데이터로 사용함.
통과 임계값 τ 0.7122538089752197
임계값 선택 정책 Bucket 50%
  • Logistic Regression 점수 >= 통과 임계값 τ 면 앵무새 소리로 판정해 통과시키고, 그보다 낮으면 차단한다.
  • 임계값은 모델을 학습한 뒤 도출했다.
    • 각 오디오를 학습에 사용하지 않은 모델로 점수를 계산하고, 전체 18,175개의 점수를 모았다. 이 점수에서 아래 기준을 만족하는 임계값을 도출했다.
    • 서비스 보호자 기준음성 252개의 오통과율 1% 이하
    • ambient 사람 음성 (사람 대화 소리)의 오통과율 1% 이하
    • 잡음은 1.5% 이하가 되도록 기준을 정했다.
  • 앵무 클립 6,580개 / 비앵무 클립 11,595개로 데이터가 불균형하므로, balanced 클래스 가중치를 적용해 학습이 한쪽 정답에 치우치는 것을 줄였다. 모든 클립을 사용하되, 학습에 반영하는 비중을 조절했다.

5. 성능 평가

5.1 평가 방법

단계 조건 설명
Outer 5-fold 학습 데이터와 테스트 데이터를 분리하여 성능 평가
반복 Outer seed 0, 1, 2 학습/테스트 데이터를 만드는 방식이 다른 3가지 시드
Inner 각 outer 학습 집합 안에서 4-fold OOF 점수로 임계값 선택
Inner seed 0 내부 분할 고정
Outer 모델 해당 outer 학습 행 전체로 학습 외부 평가 점수 계산
대표 집계 Seed별 outer 5-fold 예측 합산 후 각 지표의 세 seed 값 산술평균 전체 데이터의 반복 개발 성능

5.2 평균 지표

LR v2.0.0 평균 성능과 관찰 범위

점은 평균, 가로 선은 세 번의 평가에서 나온 최저~최고 값이다.

지표 세 seed 평균 관찰 범위
앵무새 recall 91.282% 90.973~91.657%
Mimic recall 86.116% 86.060~86.227%
Precision 97.669% 97.652~97.689%
비앵무새 전체 FAR 1.236% 1.225~1.251%
사람 음성 전체 FAR 0.920% 0.900~0.960%
Reference 전체 FAR 0.706% 0.706~0.706%
서비스 보호자 FAR 0.661% 0.397~0.794%
Ambient 사람 FAR 0.952% 0.929~0.998%
잡음 FAR 1.364% 1.355~1.368%
  • 관찰 범위는 세 번의 평가에서 나온 최저, 최고 성능이다.
  • 세 번 모두 오통과율이 허용 기준인 서비스 보호자 음성 2%, ambient 사람 음성 2%, 잡음 3% 이하였다.

5.3 실제 개수

항목 Seed 0 Seed 1 Seed 2
앵무새 통과 5,986/6,580 6,031/6,580 6,002/6,580
Mimic 통과 1,031/1,198 1,033/1,198 1,031/1,198
Reference 오통과 3/425 3/425 3/425
서비스 보호자 오통과 1/252 2/252 2/252
Ambient 사람 오통과 27/2,907 29/2,907 27/2,907
잡음 오통과 113/8,263 113/8,263 112/8,263
전체 통과 중 앵무새 5,986/6,129 6,031/6,176 6,002/6,144
  • Seed 0의 비앵무새 오통과는 reference 3개, ambient 사람 27개, 잡음 113개를 합친 143개다.

5.4 혼동 행렬

LR v2.0.0 혼동 행렬

Seed 0의 외부 5-fold 예측 합산. 왼쪽은 실제 개수, 오른쪽은 실제 라벨별 비율이다. 비앵무새 143개가 잘못 통과했고 앵무새 594개가 누락됐다.

Seed별 상세 개수는 부록에서 확인한다.

  • Seed 0에서 recall은 5,986/6,580 = 90.97%, precision은 5,986/6,129 = 97.67%다.

5.5 오류 부분집합

대상 Seed 0 Seed 1 Seed 2
기존 문제 잡음 오통과 5/112 5/112 5/112
대형조 통과 4/85 4/85 4/85
Mimic 누락 167/1,198 165/1,198 167/1,198

문제 잡음 부분집합의 평가 대상은 112개다. 이미 오류를 분석한 부분집합이므로 신규 잡음의 독립 검증으로 해석하지 않는다. 대형조는 학습에 포함했지만 recall이 4.71%로 낮다. 전체 recall을 모든 종과 개체의 성능으로 일반화하지 않는다.

5.6 점수 분포

전체 데이터의 유형별 점수 분포

Seed 0의 외부 5-fold 점수를 합산한 분포. 점선은 fold별 임계값 τ=0.667~0.777이며, 각 클립은 해당 fold의 임계값 이상이면 통과한다.

  • 가로축은 Logistic Regression의 판정 점수이다. 오른쪽에 가까울수록 앵무새 소리로 판정된다.
  • 앵무/비앵무 유형에 해당하는 데이터 수가 불균형하므로, 각 분포의 전체 면적을 1로 맞춰 점수가 어디에 집중되는지 비교했다.
  • 세로축은 작은 차이도 확인할 수 있도록 로그 눈금으로 표시했다. 그래프의 높이는 클립 개수나 오통과율을 직접 나타내지 않는다.

(이 그림은 교차검증에서 각 평가용 모델이 계산한 점수를 모은 것이다. 점수 0.8이 실제로 앵무새일 확률 80%를 뜻하지는 않는다. 점선은 평가용 모델마다 정한 통과 기준이며, 전체 데이터로 학습한 모델에 저장한 단일 기준과는 다르다. )

 

 


참고1. Logistic Regression 이외의 후보에 대한 성능 테스트

  • 성능 지표는 outer 5-fold × seed 0/1/2, inner 4-fold의 평균이다.
  • 405개 설정을 탐색하고 대표 15개를 심화 평가했다. 아래 표는 심화 평가 결과 중 모델별 대표 설정의 성능이다. 모든 행에 보수적 Bucket 50% 정책을 적용했다.
모델 앵무새 recall ↑ Mimic recall ↑ Precision ↑ 서비스 보호자 FAR ↓ Ambient 사람 FAR ↓ 잡음 FAR ↓
LDA 91.39% 84.31% 97.89% 0.79% 0.75% 1.20%
LR: 채택 91.28% 86.12% 97.67% 0.66% 0.95% 1.36%
Extra Trees 90.26% 82.64% 98.00% 0.93% 0.75% 1.16%
kNN 88.68% 81.14% 97.78% 0.79% 0.93% 1.25%
MLP 83.82% 77.60% 98.06% 1.19% 0.69% 1.00%

참고2. Seed별 혼동 행렬

Seed TP: 앵무새 통과 FN: 앵무새 차단 FP: 비앵무새 통과 TN: 비앵무새 차단
0 5,986 594 143 11,452
1 6,031 549 145 11,450
2 6,002 578 142 11,453