자동 음성 인식(ASR) 모델 예측이 있는 경우, 이러한 예측이 정확할 가능성도 알고 싶을 수 있습니다. 이 정확도 또는 신뢰도는 종종 원시 예측 확률(빠르고 단순하며 쓸모없을 가능성이 높음)로 측정됩니다. 또한 별도의 모델을 트레이닝하여 예측 신뢰도(정확하지만 복잡하며 느림)를 추정할 수 있습니다. 이 게시물에서는 엔트로피 기반 메서드를 사용하여 빠르고 간단한 단어 수준 ASR 신뢰도 추정을 달성하는 방법을 설명합니다.
신뢰도 추정 개요
머신 러닝 모델 예측을 보면서 그 예측이 얼마나 정확한지 궁금하셨던 적이 있으십니까? 유사한 테스트 사례에서 측정된 정확도를 바탕으로 추측할 수 있습니다. 예를 들어, 기록된 음성에서 ASR 모델이 10%의 단어 오류율(WER)로 단어를 예측한다고 가정해 보겠습니다. 이 경우 이 모델이 인식하는 모든 단어가 90% 정확하다고 기대할 수 있습니다.
그러한 대략적인 추정치가 일부 애플리케이션에는 충분할 수 있지만, 어떤 단어가 정확할 가능성이 더 높고 어떤 단어가 더 낮은지 확실히 알고 싶다면 어떻게 할까요? 이렇게 하려면 모델에서 받은 정확한 예측 확률 등 실제 단어 이상의 예측 정보를 사용해야 합니다.
원시 예측 확률을 신뢰도 측정에 사용하면 어떤 예측이 정확할 가능성이 더 높거나 낮은지, 어떤 예측을 구현하는 것이 간단한지 가장 빠르게 알 수 있습니다.
그러나 원시 확률은 신뢰도 추정에 유용할까요? 그렇지는 않습니다. 예를 들어, 그림 1은 그리디 서치 인식 결과를 위해 계산된 신뢰도입니다. 가장 높은 확률(‘최대 확률’ 또는 )을 가진 언어 단위를 프레임별로 계산한 다음 단어 수준 점수로 집계합니다. 예측 확률 분포가 최상의 가설로 편향될 때 모델에 나타나는 특징인 ‘과잉확신’을 확인할 수 있습니다.
즉, 모델은 거의 항상 하나의 가능한 예측에 대해 1에 가까운 가능성을 부여하고, 나머지에는 0을 부여합니다. 따라서 예측이 틀렸음에도 확률은 종종 0.9를 초과합니다. 과잉확신은 모델의 아키텍처나 구성 요소와는 아무 상관이 없습니다. 단순한 나선형 또는 회귀 뉴럴 네트워크는 트랜스포머 또는 컨포머 모델과 동일한 수준의 과잉확신을 가질 수 있습니다.
과잉확신은 엔드 투 엔드 ASR 모델을 트레이닝하는 데 사용되는 손실 함수에서 비롯됩니다. 단순한 손실은 목표 예측 확률이 극대화되고 다른 모든 것들은 0의 확률을 가질 때 최소에 도달합니다. 여기에는 교차 엔트로피, 유비쿼터스 연결주의적 시간 분류(CTC), 회귀 뉴럴 네트워크 트랜스듀서(RNN-T) 또는 기타 모든 최대 가능성 가족 손실 함수 등의 손실이 포함됩니다.
과잉확신은 예측 확률을 부자연스럽게 만듭니다. 정확한 예측과 잘못된 예측을 분리하는 올바른 임계값을 설정하기가 어렵기 때문에 원시 확률을 신뢰도로 사용하는 것은 거의 쓸모가 없습니다.
원시 확률을 신뢰도로 사용하는 대안은 확률을 기반으로, 또는 선택적으로 ASR 모델 임베딩에 따라 신뢰도를 예측하기 위해 별도의 트레이닝 가능한 신뢰 모델을 만드는 것입니다. 이 접근 방식은 각 모델에 대한 추정자를 트레이닝하는 비용으로 매우 정확한 신뢰도를 제공하여 이를 주요 모델과 함께 추론에 통합하고(필연적으로 추론을 늦춤) 해석 가능성이 부족합니다.
그러나 정확도를 최대한 잘 측정하고자 하고 뉴럴 네트워크가 다른 뉴럴 네트워크를 추정하는 시스템에 익숙하다면, 신경 신뢰도 추정자를 사용해 보세요.
엔트로피 기반 신뢰도 추정
이 섹션에는 트레이닝할 수 없지만 효과적인 신뢰도 추정 접근법이 포함되어 있습니다. 그리디 서치 인식 모드에서 CTC 및 RNN-T ASR 모델을 위해 빠르고, 단순하고, 견고하며 조정 가능한 신뢰도 추정 메서드를 만드는 방법을 학습합니다.
간단한 엔트로피 기반 신뢰도 측정
위에서 설명한 것처럼 신뢰도를 원시 예측 확률로 취급하는 것은 아무런 쓸모가 없습니다. 이 정의를 [0,1] 간격에서 사용 가능한 모든 지식의 함수로 확장하는 것이 바람직합니다. 예측 확률을 ‘있는 그대로’ 받아들이는 것이 이 정의에 속합니다. 이 접근 방식을 통해 외부 지식을 추정에 추가하거나 기존 정보(확률)를 새로운 방식으로 사용하여 실험할 수 있습니다.
신뢰도는 정확성을 측정하기 위한 주된 목적에 부합해야 합니다. 최소한, 정확할 가능성이 더 높은 예측에 더 높은 값을 할당하는 방향으로 움직여야 합니다.
신뢰 측정으로서 엔트로피는 이론적으로 정당화되고 상당히 잘 작동합니다. 정보 이론에서 엔트로피는 가능한 모든 결과의 확률을 기반으로 불확실성 값을 계산하는 불확실성의 측정값입니다.
이는 그리디 디코딩 모드를 가진 ASR에 필요한 것이며, 여기서 확률 벡터당 예측은 하나뿐입니다. 예측에 엔트로피 값을 할당하기만 하면 됩니다. 그런 다음 엔트로피 값을 반전(‘확실하게’ 하기 위해)시키고 아래와 같이 정규화([0,1]로 매핑)합니다.
는 Gibbs 엔트로피(자연 로그 확률을 다룰 때 Shannon 엔트로피보다 편리함), 는 가능한 예측의 수(ASR 모델의 어휘 크기)이며 는 Gibbs 엔트로피 신뢰도입니다. 모델이 완전히 불확실한 경우(모든 확률은 1/), 예측을 올바르게 추측할 확률이 여전히 1/이어도 신뢰도는 0이 됩니다.
이 정규화는 가능한 함수의 수에 의존하지 않고 간단한 경험 법칙을 제공하기 때문에 편리합니다. 즉 1에 가까운 것을 받아들이고 0에 가까운 것은 버립니다.
고급 엔트로피 기반 신뢰도 측정
위의 엔트로피 기반 신뢰도 추정은 해당 형태로 적용 가능하지만 여전히 개선의 여지가 있습니다. 이론적으로 정확하지만 모델의 과잉확신으로 인해 실제로는 0에 가까운 값(모든 확률이 동일할 경우)을 표시하지 않습니다.
또한 이 형식에서 다른 수준의 과잉확신을 다룰 수 없습니다. 두 번째 문제는 까다롭지만 첫 번째 문제는 다른 정규화로 해결할 수 있습니다. 이럴 때 지수화가 도움이 됩니다. 음수를 제곱수로 올리면 결과는 [0,1] 간격 내에 들어오며 대부분의 인수에서 0에 가까울 것입니다.
이 속성을 사용하면 다음 공식을 사용하여 엔트로피를 정규화할 수 있습니다.
는 지수적으로 정규화된 Gibbs 엔트로피 신뢰도입니다.
엔트로피 기반 신뢰도를 과잉확신에 진정으로 견고하게 만들기 위해서는 온도 스케일링이라는 메서드가 필요합니다. 이 메서드는 log-softmax를 0<<1로 곱합니다. 원시 예측 확률에 적용되어 재측정하는 경우가 많지만 신뢰도를 크게 높이지는 않습니다. 엔트로피에 온도 스케일링을 적용하는 것은 사소하지 않습니다. 엔트로피는 의 특정 값에서 엔트로피가 되는 것을 중단합니다. 특히 다음 불균등이 유지되지 않으면 위의 공식에 의해 엔트로피를 정규화할 수 없습니다. 최대 엔트로피는 모든 확률이 동일한 지점에 있지 않습니다.
불균등의 오른쪽은 에 대해 항상 사실이지만 왼쪽은 제한을 부과합니다. 예를 들어, =128의 경우 =0.21 아래로 갈 수 없습니다. 이 한계를 염두에 두는 것은 지루한 일이기 때문에 온도 스케일링과 일반 엔트로피를 함께 사용하지 않을 것을 권합니다.
다행히도 엔트로피에 직접 온도를 넣을 필요는 없습니다. 20세기에 몇 가지 매개변수 엔트로피가 도입되었습니다. 그 중에는 통계적 열역학의 Tsallis 엔트로피와 아래에서 고려될 정보 이론의 Rényi 엔트로피가 있습니다. 둘 다 엔트로피 인덱스라는 특수 매개변수 를 가지고 있으며, 이는 0<<1에서 온도 스케일링과 같이 작동합니다. 지수적으로 정규화된 신뢰도 공식은 다음과 같습니다.
및 는 각각 Tsallis 및 Rényi 신뢰도 측정값입니다. Rényi 지수적 정규화는 로그와 일치시키고 공식을 간소화하도록 밑수 2를 통해 수행됩니다. 이러한 신뢰도 측정값은 어려워 보일 수도 있지만, 구현하기는 어렵지 않으며 최대 확률 신뢰도만큼 빨리 계산할 수 있습니다.
신뢰 예측 집계
지금까지 이 게시물에서는 단일 확률 벡터 또는 단일 프레임에 대한 신뢰도 추정을 고려했습니다. 이 섹션은 단어 수준 예측에 대한 본격적인 신뢰도 추정 메서드를 보여주며 예측 집계를 소개합니다.
엔트로피 기반 신뢰도는 평균, 최소 및 같은 단어에 속한 프레임 예측의 곱으로 최대 확률과 동일한 방식으로 집계할 수 있습니다. 측정에 관계없이 ASR 신뢰도 예측을 집계할 때 다음 두 가지 질문에 답해야 합니다. 1) 예측을 언어 단위로, 언어 단위를 단어로 집계하는 방법은 무엇인가? 2) 소위 <blank> 프레임(<blank> 토큰이 예측된 프레임)으로 무엇을 해야 하는가? 이전과 같이 첫 번째 질문은 간단하며 두 번째 질문은 까다롭습니다.
RNN-T 모델은 발생할 때마다 <blank> 토큰을 하나만 방출하므로 이 예측을 단위 수준 신뢰도로 가져와 단어 신뢰도 집계에 넣을 수 있습니다. CTC 모델은 해당 유닛이 발음되는 동안 동일한 비 <blank> 토큰을 반복적으로 방출할 수 있습니다. 단어에 대한 집계 함수와 동일한 것을 단위에 사용해도 충분하다는 것을 발견했지만 전반적으로 실험해볼 여지가 있습니다.
신뢰 집계를 위해 <blank> 프레임을 처리하는 두 가지 방법이 있습니다. 사용하거나 드롭하는 것입니다. 첫 번째 옵션은 자연스러워 보이지만 가장 가까운 비 <blank> 유닛에 할당할 방법을 정확하게 파악해야만 합니다.
가장 가까운 왼쪽 유닛, 가장 가까운 유닛 또는 다른 것에 넣을 수 있지만 드롭하는 것이 좋습니다. 왜 그럴까요? 더 쉬울 뿐 아니라 고급 엔트로피 기반 측정값에 (놀랍게도) 더 나은 결과를 제공합니다. 그것은 또한 더 이론적으로 정당합니다. <blank> 예측은 발화하는 동안 인식되지 않은(즉, 삭제된) 단위와 단어에 대한 정보를 포함합니다. <blank> 신뢰도 점수를 집계 파이프라인에 통합하려고 하면 삭제된 유닛에 대한 정보로 신뢰도를 오염시킬 가능성이 높습니다.
평가 결과 및 사용 팁
이제 제안된 엔트로피 기반 신뢰도 추정 메서드가 최대 확률 신뢰도보다 더 나은지 확인합니다. 그림 2는 최대 확률 신뢰도 분포를 가진 그림 1과 유사할 수 있지만 엔트로피 기반 메서드가 더 나은 분리를 위해 정확한 단어와 잘못된 단어 분포를 변환한다는 것을 알 수 있습니다. (다양한 분포 모양은 더 나은 분리성을 나타냅니다.)
세 가지 메서드 모두 전체 신뢰 스펙트럼을 다룹니다. 곱 집계가 지수적으로 정규화된 Gibbs 엔트로피 신뢰도에 가장 적합한 성능을 제공했음에도 불구하고 이러한 엔트로피 자체는 과잉확신을 잘 처리하지 못합니다. =1/3을 통한 Tsallis 엔트로피 기반 신뢰도는 평균 및 최소 집계 모두에서 잘 수행되었습니다. 하지만 저는 최소를 선호합니다. 잘못된 단어에 대한 신뢰를 더욱 집중적으로 최소화하기 때문입니다. 전반적으로 지수적 정규화는 신뢰 스펙트럼의 전체 범위를 제공하며 고급 엔트로피는 매우 간소합니다.
비교에서 Rényi 엔트로피는 어디에 있을까요? Tsallis 및 Rényi 기반 메서드는 수식의 가시적인 차이에도 불구하고 거의 동일하게 수행됩니다(그림 3). 동일한 및 집계의 경우, Tsallis 엔트로피는 올바른 분포의 이동된 피크 가격에 약간 더 강한 분포 분리를 제공합니다. 저는 Tsallis 기반 신뢰도 메서드를 더 좋아하지만, Rényi가 특정 사례에 더 좋을 수 있으므로 둘 다 시도해보는 것이 좋습니다.
마지막 질문은 를 선택하는 방법입니다. 대답은 ASR 모델의 과잉확신(과잉확신이 강할수록 가 작아야 함)과 달성하고자 하는 결과에 따라 달라집니다. 최고의 분포 분리성을 달성할 수 있을 만큼 를 작게 설정하세요(그림 4).
더 나은 분류 기능을 위해 점수의 자연스러움을 희생하려는 경우(정확한 예측을 위해 상당히 높은 신뢰도 점수를 얻음) 더 작은 를 선택해야 합니다.
남은 것은 제안된 엔트로피 기반 메서드에 대한 공식적인 평가를 언급하는 것입니다. 첫째, 엔트로피 기반 신뢰도 추정 메서드는 최대 확률 측정 메서드보다 잘못된 단어를 4배 더 잘 감지할 수 있습니다. 둘째, 제안된 추정자는 노이즈에 강하며 일반 음향 조건에서 올바른 단어의 5%를 잃는 가격으로 최대 40%의 모델 환청(순수한 노이즈 데이터에서 측정)을 필터링할 수 있습니다. 마지막으로 엔트로피 기반 메서드는 CTC 및 RNN-T 모델에 유사한 메트릭 점수를 부여했습니다. 즉, 이전에는 실용적이지 않았던 RNN-T 모델 예측의 신뢰도 점수를 사용할 수 있습니다.
결론
이 게시물은 다음과 같은 세 가지 요점을 제공합니다.
- ASR 그리디 서치 인식 모드의 정확성 측정으로 원시 확률 대신 Tsallis 및 Rényi 엔트로피 기반 신뢰도를 사용합니다. 빠르고 훨씬 좋습니다.
- 테스트 세트에서 엔트로피 인덱스 (엔트로피의 온도 스케일링 아날로그)를 조정합니다. 아니면 3분의 1만 사용할 수도 있습니다.
- 자신의 아이디어를 사용해 엔트로피보다 더 나은 신뢰 측정값을 찾아보세요.
제안된 메서드의 평가에 대한 자세한 내용은 Aleksandr Laptev 및 Boris Ginsburg의 엔드 투 엔드 자동 음성 인식을 위한 빠른 엔트로피 기반의 단어 수준 신뢰도 추정 메서드를 참조하세요.
모든 메서드와 평가 메트릭은 NVIDIA NeMo에서 사용할 수 있습니다. GitHub의 NVIDIA/NeMo를 방문하여 시작하세요.
이 블로그에 열거된 SDK의 대부분의 독점 액세스, 얼리 액세스, 기술 세션, 데모, 교육 과정, 리소스는 NVIDIA 개발자 프로그램 회원은 무료로 혜택을 받으실 수 있습니다. 지금 무료로 가입하여 NVIDIA의 기술 플랫폼에서 구축하는 데 필요한 도구와 교육에 액세스하시고 여러분의 성공을 가속화 하세요.