[Audio & Speech Fundamentals]

[202002]A Framework for the Robust Evaluation of Sound Event Detection

do.hyeon 2025. 1. 8. 17:57

Author: Cagdas Bilen, Giacomo Ferroni, Faancesco Tuveri, Juan Azcarreta and Sacha Krstulovic | Arxiv

https://arxiv.org/abs/1910.08440

 

 

요약

기존의 SED를 평가하는 방식에는 (1) OP 의존성 문제, (2) sound event 정의에 대한 주관성 문제, (3) CT를 고려하지 못하고 있다는 문제 등이 있었다. 그렇기 때문에 단순히 F1-score만을 사용하여 평가하기에는 적절하지 못했고, 이러한 문제를 해결하기 위해 DTC/GTC라는 개념을 활용해 FP/TP를 새롭게 정의하고, 이 과정에서 만들어지는 ROC Curve를 PSD-ROC Curve, 이의 AUC 계산값을 PSDS라고 정의하며 새로운 평가 지표를 제시했다. 이 지표는 언급한 세 가지 문제를 모두 해결하며 SED를 더 정확하고 세심하게 평가할 수 있게 해준다.

 

 

기본 개념 정리

Event-wise error, segment-wise error, frame-based metrics

- Event-wise error: 이벤트 단위로 검출 결과를 평가하는 방법이다. 이벤트의 시작 시간과 종료 시간이 실제 라벨과 얼마나 일치하는지에 따라 True Positive(TP), False Positive(FP), False Negative(FN)를 결정한다.
- Segment-wise error: 일정한 시간 단위(세그먼트)로 오디오를 나누고, 각 세그먼트에 대해 검출 결과를 평가하는 방법이다. 각 세그먼트에 포함된 이벤트를 기반으로 TP, FP, FN을 계산한다.
- Frame-based metrics: 오디오 데이터를 프레임 단위(일반적으로 수 밀리초 단위)로 나누고, 각 프레임에서 이벤트의 존재 여부를 평가하는 방법이다.
Operating points(OPs)

Operating point는 예측이 참인지 거짓인지 판별하는 임계 점수를 의미한다.
분류 문제에서 모델의 softmax 함수는 입력 데이터가 특정 클래스에 속할 '확률'을 반환할 것이다.
이때, 모델은 이 확률이 0.5 이상이면 참으로, 0.5 미만이면 거짓으로 판단한다고 가정하자. 이때 이 판단의 기준점이 되는 0.5가 바로 Operating point다.
Receiver Operating Characteristic(ROC) / ROC-AUC

ROC는 의미적으로는 모든 임계값에서 분류 모델의 성능을 보여주는 그래프이고, AUC는 이 그래프 아래 부분이다. (ROC 그래프가 그리는 곡선을 ROC Curve라고 함)
실제 이 그래프를 보면 가로축은 FPR(False Positive Rate, 실제로 Negative인 것 중 FP의 비율), 세로축은 TPR(True Positive Rate, recall, 실제로 Positive인 것중 TP의 비율)로 이루어져 있다.

일반적으로 TPR이 높아지면 FPR도 같이 높아진다. 그렇기 때문에 무작정 TPR이 최대한 높아지도록 유도하기 보다는, TPR이 적당히 높고 FPR도 적당히 낮은 지점을 찾아야 한다. ROC Curve는 이러한 지점을 찾기 위해 사용된다.
Collar

Sound Event Detection(SED)에서 이벤트의 시작 지점/끝 지점의 허용 오차를 설정하는 개념이다.
데이터의 라벨링은 사람이 하고, 하나의 사건이 언제 시작하고 언제 끝나는지를 매길 때 어떤 사람(조금 둔한 사람도 있을 수 있고, 순발력이 좋은 사람이 매길 수도 있으니)이 라벨링을 하냐에 따라 시점이 달라질 수 있기 때문에 이 개념을 사용한다.
탐지된 이벤트가 이 Collar 범위 내에 들어오면 True Positive로 간주한다.
Cross-triggers(CTs)

Cross Trigger는 False Positive(FP)의 subset 개념이다.
FP 중에서 실제로는 다른 클래스에 해당하는 라벨과 일치하는 경우를 CT라고 하는데, 이 CT는 잘못된 예측이 정답 대신 어떠한 클래스로 인식되었는지 분석해볼 수 있다는 점에서 중요하다.

예를 들어 개 짖는 소리와 늑대 짖는 소리는 구분은 될 수 있겠지만 꽤나 유사하다. 또 유리창 깨지는 소리와 접시 깨지는 소리도 비슷하지만 다르다. 이렇게 어떠한 클래스 간 혼동이 많이 발생하고 있는지 알아내고 개선하는 것은 모델의 성능을 더 미세하게 조정할 수 있게 해줄 것이다.

* 이러한 케이스는 단순히 모델 성능을 충분히 튜닝하지 못해서 발생할 수도 있지만, 데이터 편향 때문에 발생하기도 한다. 일상생활에서 유리창 깨지는 이벤트나 접시 깨지는 이벤트가 흔히 발생하진 않다 보니 수집되는 표본이 적을 수밖에 없을 것이고, 이러한 편향이 CT를 자연스럽게 유발하게 된다.

 

 

Intro: SED와 기존 평가 지표의 세 가지 문제점

ASR(Automatic Speech Recognition)이나 SED(Sound Event Detection)이나, 음성이냐 이벤트 음향이냐만 다를 뿐 똑같이 오디오 데이터를 인식하는 작업이다. 그러나 어느 정도 단어의 선행/후행 순서 등 패턴을 가지고 있는 음성 데이터의 인식과 달리, sound event는 무작위 시간에 갑자기 발생한다. 그리고 이런 불규칙성이 탐지를 어렵게 만든다.

 

최근 SED는 기존 방식의 frame-based metrics를 넘어 event-wise error, segment-wise error를 탐지하려 하는 등 조금 더 SED에 적절한 평가 기준을 사용하고 있다. 이러한 접근이 여러 SED 시스템들을 객관적으로 비교하는 데에 도움을 주고는 있지만, 아직까지는 후술할 세 가지의 측면에서 간과하고 있는 부분이 존재했다.

 

(1) Operating point에 대한 의존성

일반적으로 OP가 낮으면 FP가 증가하게 된다. 기존에 0.5 값을 넘어야 참이라고 결론 내리던 시스템이 0.4로 OP를 바꾸면 당연히 True 개수가 늘어나게 되지만, 그렇다고 Ground Truth가 변하는 건 아니니 FP가 늘어날 수 밖에 없는 것이다.

이 말이 무엇을 의미할까? 즉, 평가에는 SED 시스템의 전반적 성능이 아니라 특정 OP에서의 성능만 반영된다는 것이다. 다시 말하면, 모델 성능만 평가해야 하는 상황에서 모델 성능과 OP 튜닝 품질이 섞여 들어가게 된다. 이래서는 객관적인 평가가 어렵다.

 

(2) Sound event의 정의

기존에는 start time, end time에 collar라는 허용 오차를 적용해서 TP/FP를 평가했다. 이 방식은 이벤트의 시작 시간, 끝 시간에 큰 비중을 두게 된다.

하지만 생각해 보자. 강아지 짖는 소리를 라벨링하려고 한다. 이 강아지는 어찌나 목청이 좋은지 쉬지않고 짖어댄다. 대략 10초 정도 짖었다고 가정할 때, 이 이벤트를 어떻게 라벨링해야 할까? 처음 짖었을 때의 이벤트만 처리해야 할까? 각각 이벤트를 각각 처리해야 할까? 아니면 처음 시점부터 짖는 게 끝날 때까지 하나로 퉁쳐서 처리해야 할까? 고민될 것이다. 결국 누가 라벨링하냐에 따라 결과는 달라질 것이다. 그래서 이 방식은 상당히 주관적인 방법이다.

 

따라서 평가 기준이 robust하려면, 실제 값(ground truth)과 검출된 label 간의 해석에 충분한 여유를 허용해야 한다.

 

(3) 다중 클래스 시스템의 FPs & CTs

멀티 클래스 SED 평가 데이터셋은 특정 target class에 대한 TP 평가에 필요한 데이터 양이 부족하여 편향될 가능성이 있다.

예를 들어, 유리창이 깨지는 이벤트는 실제로는 드물게 발생하지만, 유리창 깨짐 TP를 신뢰성 있게 평가하려면 많은 양의 해당 클래스 샘플이 필요할 것이다. 하지만 동시에 이는 다른 클래스, 예를 들면 접시 깨지는 이벤트 클래스에서 FP 수치를 인위적으로 증가시킬 수 있다.

따라서 FP가 데이터 편향으로 인해 발생한 것인지, 아니면 음향 모델링 결함으로 인한 것인지 효과적으로 분석하려면 CT를 고려해야 한다.

 

 

TP와 FP의 재정의, 그리고 PSDS

지금부터는 위에서 언급한 문제를 완화하고 SED Evaluation Task에 맞는 Criterion, 그리고 이에 기반한 TP, FP와 새로운 평가 지표를 정의할 것이다. 그 전에, 추후 공식에서 사용하기 위한 기본 변수부터 정의하고 가자.

이 정의에 기반하여, SED evaluation task는 Y가 주어졌을 때 X*를 반환하는 시스템의 성능을 측정하는 것이라고 할 수 있겠다.

(이 공식은 polyphonic system에서의 event-based evaluation이라고 가정한다)

 

collar 개념도 한번 수식으로 짚고 넘어가자. collar에 의해, 클래스 c의 Ground Truth y_i ∈ Y_c 가 다음 조건을 만족할 때 TP로 간주된다.

여기서 t_c는 사전 정의된 collar duration, bar(t_c)는 사전 정의된 collar duration과 GT duration 중 최대값을 의미한다.

식으로는 이렇게 정의할 수 있다. (𝜌_c는 predefined ratio)

 

이제 본격적으로 새로운 접근법에 들어가 보자.

 

 

[1] Detection Tolerance Criterion(DTC), Ground Truch intersection Criterion(GTC), and Cross-Trigger Tolerance Criterion(CTTC)

 

인트로에서 언급한 세 가지 문제를 해결하기 위해서는 우선 TP와 FP를 재정의하는 것부터 시작해야 한다. 그리고 이들을 재정의하기 위해 새로운 평가 기준을 정의해야 한다. 그 평가 기준인 DTC, GTC를 소개한다.

 

(1) DTC

(≜은 define 기호, ':' 뒤의 식은 앞 식에 대한 조건)

t_{y_i} ∩ x_j 은 GT y_i와 detected events x_j의 교집합 구간을 나타낸다.

 

위의 정의에 의해, 이제 FP를 새로 정의해 보겠다.

FPs의 집합 bar(X*_{DTC})은

\ 기호는 차집합 (difference set)을 의미한다.

일 때

이미 잘 알고 계시겠지만 ∪는 모든 합(union)을 나타낸다.

으로 정의될 수 있다.

 

또 클래스 당 FP의 개수도 이렇게 나타낼 수 있다.

 

(2) GTC

자 이제 GTC이다. 바로 공식 살펴보자.

앞서 설명한 DTC의 개념을 활용한다.

즉, 한 클래스에서의 relevent detection 집합 X*_{DTC, c}에 속하는 원소 x_j(즉, 한 번의 detection)가 있을 때, GT와 detection이 일치하는 교집합 구간이

𝜌_GTC 보다 클 때에 대한 Y_c의 원소 y_i를 bar(Y*_{GTC, c})로 정의한다.

 

이를 기반으로 모든 클래스의 GTC set에서 TP의 개수는 아래처럼 정의할 수 있다.

 

DTC와 GTC에 기반한 평가 방식은 기존 평가 방식과 마찬가지로 GT와 예측 간 교집합 비율을 측정하지만, TP/FP를 계산하기 위해 교집합을 thresholding한다는 점에서 차이가 있다.

 

앞서 언급한 주관성 문제가 있는 collar 기반 접근 대신 이렇게 교집합 허용치(tolerance)를 기반으로 한 접근 방식이 더 robust하다고 한다. 이를 아래 그림에서 설명하고 있다.

 

 

(3) CTTC

또, 이전에 언급한 대로, FP는 편향된 클래스 혼동 때문에 발생할 수도 있다. 따라서 CT를 별도로 계산할 수 있도록 하기 위해, CTTC(Cross-Trigger Tolerance Criterion)라는 개념을 도입했다.

* Iverson bracket은 bool 같은 개념이다.

 

그림으로 보면 아래처럼 적용될 수 있다.

 

여기까지 DTC, GTC, CTTC에 대해 정리했고, 이제 이 다음부턴 진짜 TP와 FP 재정의에 들어간다.

수많은 복잡한 식을 거쳐 왔지만, 직접 손으로 써서 풀어 보면 별 거 아니다. 보는 것 만으로 이해가 안 된다면 식을 따라 써 보길!

 

 

[2] effective FPR, effective TPR

 

자, 이제 지금까지 정의한 식들에 의해 TP, FP, CT는 아래처럼 정의할 수 있다.

FP Rate에서 T_Y는 데이터셋 Y의 total duration이다.

 

* 식을 보면 유추할 수 있듯, TP는 일치하는 이벤트 개수로 측정하는 반면 FP와 CT는 시간 비율로 측정한다.

* 또 R*_{FP,c}는 데이터셋 길이랑 연관 있는데, R*_{CT, c, c hat}은 클래스 라벨과 관련있다.

 

이를 기반으로 이 논문은 CT를 반영한 개선된 FPR인, eFPR을 다음과 같이 정의한다.

𝜶_CT는 SED application 평가를 위해 UX를 반영한 CT cost이다.

 

한편 시스템이 동작할 때 클래스별 OP 집합(O_c)의 ROC curve가 항상 볼록하거나 단조롭지는 않을 수 있다.

즉, 다른 OP보다 더 높은 eFPR을 가지면서 더 낮은 TP 비율을 나타내는 OP 집합 bar(O_c)가 존재할 수 있다. (이 경우 ROC curve가 오목한 그림을 상상해볼 수 있다.)

그러나 인접한 지점의 OP가 더 나은 트레이드오프를 제공한다면 bar(O_c)는 실질적인 OP로 선택되지 않을 것이다. 따라서, 각 클래스에 대한 최적의 OP 집합 O_c를 형성하기 위해 이러한 지점들은 제외된다.

 

이 단계에서 T_c를 변경하는 건 O_c 안의 TP Rate, eFPR 점들을 이동하는 것과 같으므로 OP 의존성에서 벗어났다고 간주할 수 있다.

자 이제, 이산 집합인 O_c를 연속적인 ROC 곡선으로 보간할 거다.

이를 위해 보간 값을 이전 값으로 채우는 계단형 보간(0차홀드)을 수행한다.

 

이 과정을 수행하고 나면, 클래스별 ROC 곡선 집합이 하나의 Polyphonic ROC 곡선으로 평균화될 수 있다.

 

 

이제 eTPR을 정의할 건데, 이 논문에서는 클래스 간 성능의 안정성을 고려하여 TPR에 평균과 표준편차 개념을 적용하였다. TP 비율의 클래스 간 변동이 적은 시스템은 가장 분류가 어려운 클래스에서도 더 나은 성능을 제공하기 때문이라고 한다. eTPR은 아래처럼 정의된다.

𝜶_ST는 SED 평가에서의 클래스 간 불안정성 비용이다.

 

 

[3] PSD-ROC, PSDS

 

eFPR, eTPR 좌표를 계산함으로써 클래스별 ROC Curve 집합이 Polyphonic Sound Detection ROC 곡선 r(e)로 축소되었다 (관련 설명은 [2]에 적어 두었다).

이 r(e)를 단일 숫자로 요약한 값을 PSDS(Polyphonic Sound Detection Score)라고 부를 것이다.

지금까지 정의한 공식을 기반으로 PSD-ROC 곡선의 정규화된 면적(=AUC)을 계산해, 아래처럼 PSDS를 정의한다.

 

 

DTC/GTC, PSDS 적용하기

먼저 DTC/GTC based F1-score를 살펴보겠다.

DCASE2019에서는 세 개의 SED 시스템에 collar based F1-score를 적용하였다.

동일한 모델에 대해 DTC, GTC를 적용한 F1-Score 값은 어떻게 나오는지 살펴 보겠다.

 

본 논문의 방법을 기반으로 TP와 FP를 재해석하면 시스템의 순위가 변경되며, DTC/GTC F1-score 기준으로 시스템들의 성능이 매우 근접하게 나타난다.

실제로 오류를 자세히 분석하면, 시스템 1의 많은 FP가 분리된 검출(split detections, 즉 아까 언급한 라벨링 주관성 문제)로 인해 발생했으며, DTC/GTC 접근법을 사용하여 이러한 FP가 TP로 복원되는 것을 확인할 수 있다.

DTC/GTC tolerance parameter를 0.8로 증가시키면 세 시스템의 성능 지표가 유사하게 균등해진다. 이는 TP와 FP에 대한 다양한 정의가 성능에 대한 인식에 어떻게 영향을 미칠 수 있는지를 보여준다.

즉 이런 인사이트가 PSDS 사용에 대한 정당성을 보장해 준다!

 

 

PSDS는 Table 1의 F1-score보다 더 포괄적이다. 이는 다양한 OPs에서의 시스템 성능뿐만 아니라 단위 시간당 FP 비율도 반영하기 때문이다.

시스템 순위에 미치는 영향을 테스트하기 위해, 각 시스템에 대해 해당 저자들이 사용한 임계값을 조정하여 아래처럼 PSD-ROC 곡선을 생성했다. 이때 매개변수는 (ρ_DTC,ρ_GTC,ρ_CTTC,e_max)=(0.5,0.5,0.3,100)으로 설정되었으며, α_CT α_ST를 0으로 설정하여 CT와 클래스 간 안정성을 무시하였다.

(a)의 PSD-ROC 곡선은 시스템 2가 모든 성능 트레이드오프에서 다른 두 시스템보다 더 나은 성능을 발휘할 수 있음을 보여준다. 반면, 시스템 1과 시스템 3은 서로 명확한 우위를 가지지 않는다. (시스템 1은 매우 낮은 eFPR에서 선호될 수 있는 반면, 시스템 3은 더 높은 eTPR에서 더 좋은 성능을 보인다.)

 

시스템 2의 이러한 전반적인 우위(global advantage)에 대한 통찰은 Table 1처럼 단일 작동 지점에 특화된 F1-score만을 보면 얻을 수 없다. 세 시스템의 PSD 점수는 표 2의 첫 번째 행에 나타나 있으며, 파라미터들이(α_CT,α_ST,e_max)=(0,0,100) 로 세팅되었을 때 시스템 2의 전반적인 우위를 확인시켜 준다.

PSDS는 F1-score와 달리 다양한 OP에서의 성능을 평가한다. F1이 높으면 성능이 좋듯 PSDS도 똑같이 보면 된다.

 

각각의 시스템은 원하는 application과 UX 요인에 따라 달라질 수 있는 평가 기준에서 서로 다른 장점을 가진다. 그 근거로 Table 2를 보면 평균 점수, 점수 차이, 그리고 시스템 순위가 평가 기준의 변화에 따라 달라진다는 점을 들 수 있다. (그러나 α_ST=1일 때 점수가 크게 감소하는 것은 모든 시스템이 클래스 간 불안정한 분류 성능에 영향을 받고 있음을 나타낸다. 아까 언급했듯 α_ST는 불안정성 비용!)

 

한편 아까 figure 3에서 본 것처럼 시스템 1은 낮은 eFPR setting에서 시스템 3보다 우위를 가진다. 이와 유사하게, CT가 UX에 특히 영향을 미치는 application에서는(즉 α_CT=1이면서 높은 eFPR setting | α_CT는 UX 비용이라고 언급했었음), 시스템 1이 시스템 3보다 유리할 수 있음을 Figure 3 (b)에서 확인할 수 있다.

 

결론

내용을 최종적으로 되짚어 보면,

- DTC/GTC를 통해 라벨링의 주관성이 반영되는 기존 collar 기반 접근의 문제점 해결

- CTTC와 α_CT, α_ST 등을 반영하여 CT 고려

- Polyphonic Sound Detection ROC Curve에 대한 AUC 값인 PSDS를 사용함으로써 OP 의존성 해결

이렇게 본 논문의 접근 방식은 위에서 언급한 모든 기존 문제를 해결하였다.

PSDS의 활용을 통해 SED 연구가 더욱 효과적으로 발전할 수 있길 기대한다.