"에이아이조"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(관련 기술의 현황)
(결과 및 평가)
 
(같은 사용자의 중간 판 20개는 보이지 않습니다)
75번째 줄: 75번째 줄:
 
===관련 기술의 현황===
 
===관련 기술의 현황===
 
====관련 기술의 현황 및 분석(State of art)====
 
====관련 기술의 현황 및 분석(State of art)====
*기술 로드맵
+
*기술현황
내용
+
◇ 짧은 발성을 보상하기 위해 향상된 i-vector의 추출 방법을 사용하기도 하고, Conditional Generative Adversarial Networks를 사용하는 방법도 있다. 하지만 관련 기술의 연구는 보통 예전에 시행하던 I-vector를 추출해서 보상하는 방법으로 많이 연구되었고, 음성 인식 모델 압출 분야에서 사용되었던 TSL(Teacher-Student Learning) 방법을 이용해서 짧은 발성을 보상하는 연구는 없었다.
  
 
===개발과제의 기대효과===
 
===개발과제의 기대효과===
 
====기술적 기대효과====
 
====기술적 기대효과====
내용
+
인공지능(AI) 스피커에 화자 인식 기술을 적용한다면 이용자의 음성에서 성별, 나이, 언어, 감정 등 특징을 추출해 누구의 목소리인지 구별할 수 있다. 결제, 송금, 잠금 해제 등 인증수단이나 뉴스, 음악, 일정알림 등 개인화 추천 서비스에 활용할 수 있다. 이러한 화자 인식 서비스를 이용하기 위해서 사용자는 자신의 목소리를 스피커에 들려줘야 하는데 이때, 목소리를 짧게 낸다면 스피커의 인식률이 현저히 떨어져서 화자 인식 기능을 사용하기 어려움이 크다. 이와 관련해서 짧은 발성에 대해 사용자의 인식률이 길게 말하는 것과 같이 올라간다면 사용자의 편의성이 증진되며 지문 인식이나 홍채인식보다 편리한 인증방법으로 사용될 것이다.
 +
 
 
====경제적, 사회적 기대 및 파급효과====
 
====경제적, 사회적 기대 및 파급효과====
내용
+
인공지능(AI) 스피커의 활용은 갈수록 늘어나고 있다. 청소기, 냉장고 등 가전기기 제어뿐만 아니라 물품 결제나 잠금 해제 등 보안에 관련된 곳에도 사용되고 있다. AI 스피커가 누구의 말이라도 모두 인식하고 따른다면, 보안상의 큰 문제가 발생한다. 작년 1월 텍사스주에 있는 AI 스피커가 텔레비전의 목소리까지 인식해서 물품을 구매한 예도 있다. 그러므로 AI 스피커는 목소리 분석을 통해 접근 권한을 가진 사용자를 파악하는 화자 인식 기술이 필수적이다. 이런 화자 인식 기술에서 인식률에 가장 영향을 주는 것이 짧은 발성이다. 화자의 음소 정보를 파악해서 화자 목소리를 특정해야 하는데 발성이 짧으면 음소 정보를 파악하기가 쉽지 않아 인식률이 높아지지 않는다. 따라서 화자 인식 기술이 상용화되기 위해서는 짧은 발성 성능 향상 연구가 필수적이고, 그에 따라 인공지능(AI) 스피커의 보안이 상승하게 되며 사용자가 실수로 물건을 주문하지 않고 더 나아가 개인 정보나 사용자의 안전에 큰 도움이 될 것이다.
  
 
===기술개발 일정 및 추진체계===
 
===기술개발 일정 및 추진체계===
 
====개발 일정====
 
====개발 일정====
내용
+
(3월) - Teacher network와 Student network에서 사용하는 모델은 심층 신경망(Deep Neural Network, DNN)이고, 화자 인식에서 사용하는 화자 특징(Speaker Embedding)은 DNN에서 추출하는 고정된 은닉층 벡터(d-vector)를 사용합니다. d-vector 기반 DNN모델을 구현하는 것이 개발 과제의 첫 번째 목표입니다.
====구성원 및 추진체계====
+
(4월) - 모델을 구현한 후 음성 데이터를 모델의 입력으로 사용하기 위해서 MFCC 음향 특징을 추출하는 전처리 과정을 진행하였습니다. 그리고 전처리된 발성 데이터를 이용하여 처음에는 3.5초 이상의 긴 발성을 이용하여 Teacher 모델을 학습시키는 것이 두 번째 목표입니다.
내용
+
(5월) - 학습된 Teacher 모델의 정보를 이용해 Teacher 모델에서 추출된 화자 특징과 출력값의 정보를 이용하여 Student 모델을 학습하는 과정이 세 번째 목표입니다.
 +
(6월) - 마지막으로 Teacher 모델과 Student 모델의 성능을 비교하기 위해서 긴 발성, 짧은 발성의 다양한 길이의 발성을 두 모델에 넣어 짧은 발성의 성능이 향상되는지 아닌지 성능을 비교하여 결과를 보는 것이 마지막 목표입니다.
  
 
==설계==
 
==설계==
 
===설계사양===
 
===설계사양===
 
====제품의 요구사항====
 
====제품의 요구사항====
내용
+
화자 인식은 음성 인식의 가장 어려운 분야로 화자 인식 수행 시 음성 신호에 화자 정보가 충분히 담겨있지 않으면 정확도가 크게 떨어진다. 그렇기 때문에 사용자가 AI 스피커 등 화자 인식을 수행하는 어플리케이션에 자신임을 증명하기 위해서는 긴 발성을 입력 하는게 정확도가 높다. 하지만 이렇게 계속 긴 발성으로 화자 인증을 수행한다면 사용자가 크게 불편함을 느낄 것이고 결국 사용을 포기하게 될 것이다. 따라서 사용자가 짧은 발성으로도 화자 인증을 수행할 수 있으려면 최소한의 긴 발성의 길이만큼 화자 인식률을 높여야 한다. 그러므로 보통 화자 인식에서 3.5초 이상의 발성을 긴 발성으로 생각하므로 가장 경계에 가까운 3.59초 발성의 화자 인식률과 3.5초 이하의 짧은 발성의 화자 인식률을 비교하여 최대한 인식률을 끌어올린다.
 +
 
 
====설계 사양====
 
====설계 사양====
내용
+
심층 신경망(Deep Neural Network, DNN) 모델을 학습시키기 위해서 Quadro M6000 24GB 사양의 GPU를 사용하였고 E5-2640 v2 32GB 사양의 CPU를 사용하였다. 또한 Tensorflow 백엔드 기반의 Keras를 라이브러리로 사용하였고, 프로그래밍 언어는 Python을 사용하였다. 또한 음성 데이터베이스로 유튜브에 있는 유명 연예인들을 인터뷰한 음성을 모아논 VoxCeleb1 데이터베이스를 사용하였고 140,000개의 음성과 1251명의 화자로 구성되어있다.
  
 
===개념설계안===
 
===개념설계안===
내용
+
Teacher network는 3.5초 이상의 긴 발성을 입력 발성으로 사용하여 모델을 학습시키고, Student network는 2~3.5초의 짧은 발성을 입력 발성으로 사용하여 모델을 학습시킨다. Student network는 Teacher network와 똑같은 network 구조를 가지고 학습된다. Student 모델을 학습시키기 위한 Loss 함수는 Teacher 모델에서 추출한 화자 특징(speaker embedding)과 Student 모델에서 추출한 화자 특징의 코사인 유사도(cosine similarity)를 비교하는 식과 Teacher 모델의 Output layer의 Categorical cross-entropy값과 Student 모델의 Output layer의 Categorical cross-entropy값을 비교하는 쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)의 식을 동시에 사용한다.
 +
 
 +
===상세 설계 내용===
 +
 
 +
1. TSL (Teacher-Student Learning) 설계
 +
 
 +
◇ 첫 번째로 Teacher 모델을 훈련 시킨다.
 +
 
 +
- 훈련 발성은 3.5초 이상의 긴 발성을 사용한다.
 +
- 훈련 발성에서 음향 특징을 추출하는 기법으로는 MFCC(mel-frequency cepstral coefficient) 특징을 추출하는 방법을 이용한다. MFCC의 음향특징을 추출하기 위해서는 우선 원 음성에서 입력 시간 도메인의 소리 신호를 작은 크기 프레임으로 자른다. 그리고 각 프레임에 대하여 Spectogram, Mel-filter bank energies 순으로 계산한 후, DCT(discrete cosine transform) 연산을 사용하여 MFCC를 계산한다.
 +
- Teacher 모델의 학습 Loss 함수로는 Categorical cross-entropy를 사용하고 이 오차를 최소화하는 방향으로 모델을 학습시킨다.
 +
- 화자 모델을 학습한 다음에는 모델에서 화자 특징(Speaker Embedding)을 추출한다. 화자 특징(Speaker Embedding)이란 발성을 발화한 화자에 대한 정보를 담고 있는 특징으로, 전체 발성에 대한 고정된 차원의 벡터이다.
 +
- 이때 화자 특징은 소프트맥스(Softmax)의 전 단계인 전결합층(Dense Layer)에서 출력되는 고정된 차원의 벡터를 이용한다.
 +
- Teacher network는 기존의 긴 발성을 이용해서 학습하므로 화자 인식 성능이 우수하다. 그러므로 Teacher network를 사전에 학습시킨 후 화자 모델을 구성하여 Student network의 훈련에 이용한다.
 +
 
 +
◇ 두 번째로 Student 모델을 훈련 시킨다.
 +
 
 +
-  훈련 발성은 2~3.5초의 짧은 발성을 사용한다.
 +
- 훈련 발성에서 음향 특징을 추출하는 기법으로는 Teacher 모델과 마찬가지로 MFCC(mel-frequency cepstral coefficient) 특징을 추출하는 방법을 이용한다.
 +
- Student network의 학습은 Loss 함수로 Categorical cross-entropy를 사용하고, Cosine similarity를 사용한다.
 +
- 오차 함수에서 사용하는 두 가지 방법 중 한 가지로 Categorical cross-entropy에서는 일반적인 one-hot vector - ex) [0, 1, 0, 0]를 사용하는 것이 아니라 Teacher network로부터 추출한 soft label – ex) [0.05, 0.8, 0.1, 0.05]를 사용하여 모델의 일반화 성능을 향상시킨다.
 +
- 그다음으로 긴 발성에서 추출된 화자 특징(speaker embedding)과 짧은 발성에서 추출된 화자 특징(speaker embedding)을 코사인 유사도(cosine similarity)를 직접 비교하는 방법을 추가함으로써 Student 모델의 성능을 향상시킨다.
 +
- 이 두 가지 방법을 사용하는 오차 함수를 최소화하는 방향으로 모델을 학습시킨다. 화자 모델을 학습시킨 다음에 모델에서 화자 특징을 추출하여 화자 모델을 구축한다. 그 후 화자 인증 테스트를 진행하여 Teacher 모델과 Student 모델 간의 성능이 얼마나 차이가 나는지 실험한다.
 +
- Student 모델 구조는 Teacher 모델과 같으며, 긴 발성으로 학습된 Teacher network의 결과를 이용하여 짧은 발성일 때 Student 모델의 화자 인증의 정확도를 높이도록 노력한다.
 +
 
 +
◇ 짧은 발성 보상을 위한 TSL (Teacher-Student Learning) 방법은 그림과 같다.
 +
 
 +
- Teacher network는 3.5초 이상의 긴 발성을 입력 발성으로 사용하여 모델을 학습시키고, Student network는 2~3.5초의 짧은 발성을 입력 발성으로 사용하여 모델을 학습시킨다.
 +
- 이때 Teacher network는 충분히 긴 발성으로 학습하므로 긴 발성이 입력으로 들어왔을 때 화자 특징을 추출하는 성능이 뛰어나다.
 +
- 하지만 화자 인식에서 발성이 짧아질수록 화자 인식률이 떨어지는 한계가 있으므로 Teacher network에서도 짧은 발성에 대한 성능이 긴 발성보다 현저히 떨어진다.
 +
- 여기서 Student network를 이용한다. Student network는 Teacher network와 똑같은 network 구조를 가지고 학습된다. 2~3.5초 정도의 짧은 발성을 통해서 Teacher network를 학습시키는 것과 같으며 여기서는 Teacher network의 짧은 발성에 대한 성능을 높이기 위해 똑같은 모델을 1개 더 생성한 것이다.
 +
- Student 모델을 학습시키기 위한 Loss 함수는 Teacher 모델에서 추출한 화자 특징(speaker embedding)과 Student 모델에서 추출한 화자 특징의 코사인 유사도(cosine similarity)를 비교하는 식과 Teacher 모델의 Output layer의 Categorical cross-entropy값과 Student 모델의 Output layer의 Categorical cross-entropy값을 비교하는 쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)의 식을 동시에 사용한다.
 +
- Teacher network 모델에 긴 발성을 넣었을 때 추출되는 화자 특징과 짧은 발성을 넣었을 때 추출되는 화자 특징이 비슷하게 나오길 기대하므로, Teacher netwrok 모델에서 나오는 출력값을 이용하여 Student network 모델의 weight 업데이트 길잡이 역할을 수행한다.
 +
- 결국 Student network 모델은 Teacher network 모델의 긴 발성에 대한 좋은 성능을 가지고 있으며 짧은 발성에 대해서도 긴 발성과 비슷한 수준으로 보상되어 좋은 성능을 볼 수 있다.
 +
 
 +
◇ 짧은 발성 보상을 위한 TSL (Teacher-Student Learning) 방법에서 사용하는 Loss는 서로 다른 두 가지의 오차를 동시에 사용한다.
 +
 
 +
⓵ 첫 번째로 코사인 유사도(cosine similarity)라 부르는 오차를 사용하는데 이 오차는 내적 공간의 두 벡터 간 각도의 코사인값을 이용하여 측정된 벡터 간의 유사한 정도를 의미한다.
 +
- 각도가 0°일 때의 코사인값은 1이며, 다른 모든 각도의 코사인값은 1보다 작다.
 +
- 따라서 이 값은 벡터의 크기가 아닌 방향의 유사도를 판단하는 목적으로 사용되며, 두 벡터의 방향이 완전히 같을 때 1, 90°의 각을 이룰 때 0, 180°로 완전히 반대 방향일 때 -1의 값을 갖는다. 이때 벡터의 크기는 값에 아무런 영향을 미치지 않는다.
 +
- 코사인 유사도는 데이터 마이닝 분야에서 클러스터들 간의 응집도를 측정하는 방법으로도 사용된다. 또한, 코사인 거리(cosine distance)라는 개념이 대신 사용되기도 하는데, 이는 D_{C}(A,B)=1-S_{C}(A,B)의 식으로 표현된다.
 +
- 코사인 유사도는 특히 결과값이 [0,1]의 범위로 떨어지는 양수 공간에서 사용된다. 그러므로 두 벡터 사이의 코사인 유사도 값이 1에 가까워질수록 두 발성의 화자가 같다는 것을 의미하고 0에 가까워질수록 두 발성의 화자가 다르다는 것을 의미한다.
 +
⓶ 두 번째로 사용하는 오차는 크로스 엔트로피(cross entropy)이다.
 +
- 이 오차는 쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)라고도 부르며 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 하여 발생할 수 있는 정보 엔트로피 차이를 계산한다.
 +
 
 +
◇ 짧은 발성 보상을 위한 TSL (Teacher-Student Learning) 방법에서 사용하는 Loss 식이다.
 +
 
 +
- 이 오차는 코사인 유사도(cosine similarity)의 오차와 범주적 크로스 엔트로피(Categorical Cross Entropy)의 오차를 덧셈으로 연결한 오차 함수이다. 이 오차를 최소화하는 방식으로 Teacher network와 Student network를 학습시킨다.
 +
 
 +
 
 +
2. DNN 모델 구조 설계
  
===이론적 계산 및 시뮬레이션===
+
◇ Teacher network와 Student network에서 사용하는 모델은 심층 신경망(Deep Neural Network, DNN)이다.
내용
 
  
===상세설계 내용===
+
- 심층 신경망은 층을 깊게 쌓은 신경망을 말한다. 층을 깊게 했을 경우 더 적은 매개변수로 같거나 높은 수준의 표현력을 가질 수 있다. 또한 층을 깊게 해 작은 필터를 여러번 거치도록 하는 경우 넓은 수용영역(receptive field)를 가지도록 할 수 있고, 계층 사이의 비선형 활성화 함수 계층을 통과하게 되므로 비선형적으로 더 복잡한 데이터를 표현할 수 있다.
내용
+
- 가령 입력 데이터의 일부인 5x5 영역이 합성곱 연산에 참여하려면, 층이 2개인 신경망에서 합성곱 층의 필터 크기는 5x5여야 한다. 그러나 층이 2개일 경우 필터의 크기가 3x3인 합성곱 층을 2번 거치면 겨로가적으로 입력 데이터의 5x5 영역이 모두 연산에 참여하게 된다. 여기서 첫 번째의 경우는 5x5=25개의 매개변수가 필요하고 두 번째의 경우에는 3x3+3x3=18개의 매개변수가 필요하다.
 +
- 또한 저수준의 단순한 특성에서 복잡한 특성으로 나아가 전체 사물을 인식하기 때문에 학습이 더 효율적이다. 만약 층이 깊지 않은 신경망으로 같은 작업을 하려면, 한두 번째 층에 중요한 특징을 한 번에 잡아내야 하므로 이것은 다양한 데이터에 대응이 어려워진다.
 +
 
 +
- 기존의 심층 신경망의 문제점으로는 과적합(overfitting)과 높은 시간 복잡도가 흔히 발생하는 문제였다. 하지만 최근 들어서 과적합(overfitting)을 해결하는 드롭아웃(dropout)이나 정규화(regularization)방법들이 사용될 수 있다. 또한 행렬 및 벡터 계산에 특화된 GPU가 나오면서 많은 처리량을 바탕으로 두드러지는 학습 속도 향상을 보여주어 심층 신경망의 문제점이 많이 해소되었다.
 +
 
 +
◇ 심층 신경망(Deep Neural Network, DNN)에서 더 깊은(deeper) 망을 만들어 내가 위해 ResNet(Residual Network)구조를 사용한다.
 +
- 망이 깊어지게 되면, 그 망이 좋은 결과를 낼 수 있도록 학습을 시키기가 점점 더 어려워니다. 그 이유는 기울기 소실(Vanishing Gradient) 또는 기울기 폭발(Exploding Gradient) 문제나 망이 깊어지게 되면서 파라미터 수가 비례적으로 늘어나게 되어 과적합(overfitting)문제가 발생될 수 있기 때문이다.
 +
- ResNet(Residual Network)구조은 다음과 같다. 기존의 평범한 망은 입력 x를 받아 2개의 weight layer를 거쳐 출력 H(x)를 내며, 학습을 통해 최적의 H(x)를 얻는 것이 목표이며 weight layer의 파라미터 값은 그렇게 결정해야 한다.
 +
- 그런데 H(x)를 얻는 것을 목표로 잡지 않고 H(x) - x를 얻는 것으로 목표를 수정하고 F(x) = H(x) - x라고 한다면 결과적으로 출력 H(x)는 H(x) = F(x) + x 가 된다.
 +
- 이렇게 shortcut 연결을 추가적으로 생성하고 출력의 목표를 바꾸는 것이 ResNet(Residual Network)의 기본 구조이다. 그렇다면 H(x) - x를 얻기 위한 학습으로 바뀌는데, 최적의 경우라면 F(x)는 0이 되어야 하므로 F(x)가 거의 0이 되는 방향으로 학습을 하게 되면 입력의 작은 움직임을 쉽게 검출할 수 있다. 즉 나머지(residual)을 학습하는 관점으로 바뀌어 파라미터의 수에 큰 영향을 받지 않고 몇 개의 출력층을 건너 뛰면서 입력과 출력이 연결되기 때문에 기울기 소실이나 폭발문제에도 덜 민감하게 된다.
  
 
==결과 및 평가==
 
==결과 및 평가==
 
===완료 작품의 소개===
 
===완료 작품의 소개===
====프로토타입 사진 혹은 작동 장면====
+
====실험 결과====
내용
+
 
====포스터====
+
평  가  항  목
내용
+
평가방법
 +
적용기준
 +
개  발
 +
목표치
 +
비중
 +
(%)
 +
평가결과
 +
 
 +
1. 화자 인식의 동일 오류율(Equal Error Rate)
 +
입력 발성에 대한 화자특징Speaker Embedding)코사인 유사도(cosine similarity)를 이용해서 측정하고 다른 모델과 비교한다.
 +
평가 (Evaluation) 데이터
 +
2.05s의 짧은 발성을 기준으로 50% 이상 성능 향상
 +
80
 +
입력 발성 3.59초에서 2.05초 발성 길이 변화에 따른 성능 하락 59% 보상 확인
 +
 
 +
2. 화자 인식의 검증 정확도(Validation Accuracy)
 +
80번 epoch 이하로 학습된 모델에서 가장 성능이 좋은 검증 정확도(Validation Accuracy)를 다른 모델과 비교한다.
 +
검증(Validation) 데이터
 +
2.05s의 짧은 발성을 기준으로 50% 이상 성능 향상
 +
20
 +
입력 발성 3.59초에서 2.05초 발성 길이 변화에 따른 성능 하락 52% 보상 확인
 +
 
 +
 
 +
 
 +
◇ 동일 오류율(Equal Error Rate, EER)은 주로 생체인식 시스템의 성능을 평가하는 지표로 사용된다. 오인식률과 오거부율이 같아지는 비율을 말한다.
 +
- 오인식률(False Acceptance Rate, FAR)은 본인의 것이 아닌 생체인식 정보를 본인의 것으로 잘못 판단할 확률을 의미한다.
 +
- 오거부율(False Rejection Rate, FRR)은 본인의 생체정보를 본인이 아닌 것으로 잘못 판단할 확률을 말한다.
 +
- 일반적으로, 본인의 생체정보가 타인의 생체정보로 잘못 인식될 확률이 내려가면 오거부율은 내려가지만, 한편으로 이것은 본인의 생체정보로 판단하는 기준을 느슨하게 한다는 의미를 가지기도 하기 때문에, 오인식률은 올라가게된다.
 +
- 반대로, 타인의 생체정보를 본인의 생체정보로 인식하는 확률이 내려가면 오인식율은 내려가지만, 오거부율은 올라간다.
 +
 
 +
◇ 평가 발성의 길이가 5초이상, 3.59초, 2.05초에 화자 동일 오류율 변화를 확인 (보상 전후 성능 비교를 위해)
 +
 
 +
- Baseline 모델 다양한 입력 발성 길이에 따른 화자 인증 오류율(%)
 +
 
 +
시스템
 +
5s 이상
 +
3.59s
 +
2.05s
 +
 
 +
(Baseline) MFCC-DNN
 +
(3.59초 학습)
 +
8.03%
 +
10.33%
 +
15.03%
 +
 
 +
- Baseline 모델 다양한 입력 발성 길이에 따른 검증 정확도(%)
 +
 
 +
시스템
 +
5s 이상
 +
3.59s
 +
2.05s
 +
 
 +
(Baseline) MFCC-DNN
 +
(3.59초 학습)
 +
96.1%
 +
94.4%
 +
87.5%
 +
 
 +
 
 +
- 짧은 발성에 대한 TSL를 적용한 모델 화자 인증 오류율(%)
 +
 
 +
시스템
 +
2.05s
 +
2.05 0.1s
 +
2.05 0.5s
 +
 
 +
(Baseline) MFCC-DNN
 +
(3.59초 학습)
 +
15.03%
 +
15.05%
 +
15.09%
 +
 
 +
(TSL) MFCC-DNN
 +
(3.59초 학습)
 +
12.31%
 +
12.32%
 +
12.38%
 +
 
 +
 
 +
 
 +
- 짧은 발성에 대한 TSL를 적용한 모델 화자 검증 정확도(%)
 +
 
 +
시스템
 +
2.05s
 +
2.05 0.1s
 +
2.05 0.5s
 +
 
 +
(Baseline) MFCC-DNN
 +
(3.59초 학습)
 +
87.5%
 +
87.8%
 +
88.3%
  
===관련사업비 내역서===
+
(TSL) MFCC-DNN
내용
+
(3.59초 학습)
 +
91.1%
 +
91.2%
 +
91.7%
  
 
===완료작품의 평가===
 
===완료작품의 평가===
내용
 
  
===향후계획===
+
◇ 결론
내용
 
  
===특허 출원 내용===
+
- 짧은 발성 보상 전후 성능 비교를 위해 평가 발성의 길이가 5초 이상, 3.59초, 2.05초에 화자 동일 오류율 변화를 확인하기 위해 Baseline인 DNN 모델에서 화자 인증 오류율과 검증정확도를 평가하였고 5초 이상 발성, 3.59초 발성, 2.05초 발성에서 각각 8.03%, 10.33%, 15.03%의 화자 인증 오류율과 96.1%, 94.4%, 87.5%의 검증정확도를 보였다.
내용
+
- 그 후 TSL를 적용한 화자 인증 오류율과 검증정확도를 평가하였고 2.05초 발성, 2.050.1초 발성, 2.050.5초 발성에서 각각 12.31%, 12.32%, 12.38%의 화자 인증 오류율과 91.1%, 91.2%, 91.7%의 검증정확도를 보였다.
 +
- 실험 결과 입력 발성 3.59초에서 2.05초 발성 길이 변화에 따른 성능 하락을 동일 오류율에서는 59% 보상하였고, 검증정확도에서는 52% 보상하였다.
 +
- 결국 TSL 방법으로 짧은 발성 보상을 수행하였을 때 성능 향상을 보였다.

2019년 6월 20일 (목) 00:44 기준 최신판

프로젝트 개요

기술개발 과제

국문 : 화자 검증에서 DNN(Deep Neural Network) 모델상의 화자 특징을 이용한 TSL(Teacher-Student Learning) 방법의 짧은 발성 보상 시스템

영문 : Short Utterance Compensation System of Teacher-Student Learning(TSL) Using Speaker Embedding on Deep Neural Network(DNN)

과제 팀명

에이아이

지도교수

이병정 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부·과 2014920003 김승빈(팀장)

서론

개발 과제의 개요

개발 과제 요약

화자 인식의 고질적인 문제점인 짧은 발성에 대해 정확도가 낮다는 문제점을 해결하기 위해 2가지 방법을 적용한다.


⓵ 짧은 발성을 보상(compensation)하기 위한 Teacher-Student Learning(TSL) 방법을 사용한다.

- Teacher-Student Learning(TSL)은 신경망 모델 압축(neural network compression)을 위해 2018년에 제안된 방법이다. 신경망이 커질수록 네트워크에 필요한 연산 및 메모리가 크게 필요해 하드웨어 리소스가 부족한 문제가 발생한다. 여기서 압축(compressiong)은 훈련된 DNN 모델에서 기존 성능을 떨어뜨리지 않고 네트워크의 중복성을 제거하기 위해 사용된다.

- 최근에는 신경망 모델 압축(compression)을 위한 방법이 음성 인식 보상(compensation)기법에 적용되고 있다. 모델 압축의 방법은 기존의 좋은 성능을 보이는 Teacher 모델을 이용해 파라미터가 적은 Student 모델의 성능을 Teacher와 비슷하게 만드는 방식이다. 이러한 알고리즘을 사용해 기존에 성능이 좋은 긴 발성의 화자 인식 모델을 통하여 짧은 발성의 화자 인식 모델의 성능을 최적화시키는 것이 목적이다. 이러한 방식으로 Teacher-Student Learning(TSL)을 화자 인식에서 짧은 발성을 보상하는 방법으로 적절하게 변형시켜 사용한다.


⓶ 화자 인식에서 사용하는 화자 특징(Speaker Embedding)은 DNN에서 추출하는 고정된 은닉층 벡터(d-vector)를 사용한다.

- 음성이 입력되면 그 화자의 음성 특징을 추출한다. 음성은 똑같은 언어라 할지라도 발음하는 사람의 성별, 나이, 발음 시의 상태 등에 따라 매우 복잡하게 변할 뿐 아니라 단독으로 발음될 때와 단어나 문장 내에서 발음될 때마다 그 성질이 변하기 때문에 음성의 특징을 잘 표현할 수 있는 특징 검출이 중요하다. 즉, 특징 추출 과정에서는 불필요하게 중복되는 음성정보를 없애고 동일 음성 신호 간의 일관성을 높임과 동시에 다른 음성 신호와는 변별력을 높일 수 있는 정보를 추출해야 한다. 이러한 정보를 특징 벡터 또는 화자 특징(Speaker Embedding)이라고 한다.

개발 과제의 배경

◇ 화자 인식(speaker recognition)이란 음성 신호가 주어졌을 때 시스템에서 미리 저장된 발성과 비교하여 화자가 누구인지를 식별하는 기술을 말한다.

- 이 시스템에 음성을 입력하면, 등록된 화자 모델을 검색해 음성과 가장 일치하는 화자를 찾아주지만, 치명적인 단점으로는 시스템에 등록되지 않은 화자의 음성을 구분하지 못하기 때문에 등록된 음성중 가장 유사한 화자로 인식되어 보안에 문제가 발생할 수 있습니다.


◇ 화자 인식은 크게 화자 식별(speaker identification)과 화자 검증(speaker verification)으로 나눌 수 있다.

- 화자 식별은 시스템에 미리 저장된 다수의 화자 중에서 입력된 음성 신호의 특징과 가장 유사한 한 명의 화자를 찾는 작업이다. 
- 화자 검증(화자 인증)은 입력된 음성 신호와 시스템에 미리 저장된 한 개의 음성 신호를 비교하여 얼마나 유사한지 판단한다. 
- 화자 식별은 다수의 화자 중에서 1명을 찾는 작업으로 다중 분류 문제이고, 화자 검증은 입력된 음성이 대상 화자가 맞거나 틀린 지 검증하는 이진 분류 문제이다. 화자 인증과 화자 식별은 마지막 분류 단계에서만 차이가 있을 뿐, 실제로 구현하기 위한 세부 기술은 거의 동일하다.


◇ 화자 인증 시스템은 등록 과정(off-line)과 평가 과정(on-line)으로 나뉜다.

- 등록 과정에서 n개의 등록 발성으로 사전에 학습된 화자 특징 추출 DNN에 등록한다. 여기서 등록 발성으로 화자 식별을 통해 나오는 n개의 화자 특징을 화자 모델로 구성한다. 
- 평가 과정에서 평가 발성을 화자 특징 추출 DNN에 넣어 화자 특징을 추출한다. 그다음 미리 등록되어 있던 화자 특징과 평가를 위해 넣었던 평가 발성에서 나온 화자 특징을 서로 비교하여 인증 점수와 임계값을 비교하여 화자 인증을 수행하며 임계값보다 작을 때는 거부를 하고 임계값보다 크다면 승인을 한다.


◇ 학습을 위해 사전에 준비한 발성을 이용해서 화자 특징을 추출하는 DNN을 학습시켜야 한다.

- 여기서 n개의 발성을 DNN에 입력할 때 보통 음향 특징을 추출해서 DNN의 입력으로 넣는다. 음향 특징이란 발성의 음향 정보를 담고 있는 특징이다. 보통 단위 시간 당 고정된 차원의 벡터 형태로 보통 MFCC(mel-frequency cepstral coefficient)나 Mel-filterbank energies와 같은 음향 특징을 사용한다. 
- 시간이 지날수록 점차 특징 추출과정을 덜 거친 음향 특징을 사용하는 형태로 연구가 진행되고 있다. 2018년도에는 특징 추출과정을 거치지 않은 Raw waveform으로부터 화자 특징을 직접 추출하는 방식의 화자 인증 시스템이 도입되었다.

개발 과제의 목표 및 내용

◇ 화자 인식은 음성 인식의 가장 어려운 분야로 화자 인식 수행 시 음성 신호에 화자 정보가 충분히 담겨있지 않으면 정확도가 크게 떨어진다. 음성 신호에 정보가 충분하지 않은 이유로는 크게 다음 2가지와 같다.

1) 발성 도중 잡음이 섞여 잘 안 들리는 경우. 2) 충분히 길게 발성하지 않고 짧게 말하는 경우.

- 이 중 짧은 발성을 보상하는 연구는 상대적으로 덜 진행되었지만 짧은 발성은 화자 인증 어플리케이션의 성능을 크게 저하시키는 하나의 요인이다. 
- 이러한 이유로 화자 인증 실험에서 사용되는 발성의 길이와 화자 인증 어플리케이션에서 요구하는 발성의 길이의 차이가 있기 때문이다. 
- 보통 실험에서 사용되는 발성의 길이는 5초 이상의 긴 발성을 사용하지만, 화자 인증 어플리케이션에서는 3~2초 정도의 짧은 발성을 종종 사용하기 때문이다. 
- 하지만 보통 모델에서 짧은 발성에 대한 정확도는 긴 발성보다 좋지 않기 때문에 짧은 발성을 보상하는 시스템이 필요하다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 기술현황

◇ 짧은 발성을 보상하기 위해 향상된 i-vector의 추출 방법을 사용하기도 하고, Conditional Generative Adversarial Networks를 사용하는 방법도 있다. 하지만 관련 기술의 연구는 보통 예전에 시행하던 I-vector를 추출해서 보상하는 방법으로 많이 연구되었고, 음성 인식 모델 압출 분야에서 사용되었던 TSL(Teacher-Student Learning) 방법을 이용해서 짧은 발성을 보상하는 연구는 없었다.

개발과제의 기대효과

기술적 기대효과

인공지능(AI) 스피커에 화자 인식 기술을 적용한다면 이용자의 음성에서 성별, 나이, 언어, 감정 등 특징을 추출해 누구의 목소리인지 구별할 수 있다. 결제, 송금, 잠금 해제 등 인증수단이나 뉴스, 음악, 일정알림 등 개인화 추천 서비스에 활용할 수 있다. 이러한 화자 인식 서비스를 이용하기 위해서 사용자는 자신의 목소리를 스피커에 들려줘야 하는데 이때, 목소리를 짧게 낸다면 스피커의 인식률이 현저히 떨어져서 화자 인식 기능을 사용하기 어려움이 크다. 이와 관련해서 짧은 발성에 대해 사용자의 인식률이 길게 말하는 것과 같이 올라간다면 사용자의 편의성이 증진되며 지문 인식이나 홍채인식보다 편리한 인증방법으로 사용될 것이다.

경제적, 사회적 기대 및 파급효과

인공지능(AI) 스피커의 활용은 갈수록 늘어나고 있다. 청소기, 냉장고 등 가전기기 제어뿐만 아니라 물품 결제나 잠금 해제 등 보안에 관련된 곳에도 사용되고 있다. AI 스피커가 누구의 말이라도 모두 인식하고 따른다면, 보안상의 큰 문제가 발생한다. 작년 1월 텍사스주에 있는 AI 스피커가 텔레비전의 목소리까지 인식해서 물품을 구매한 예도 있다. 그러므로 AI 스피커는 목소리 분석을 통해 접근 권한을 가진 사용자를 파악하는 화자 인식 기술이 필수적이다. 이런 화자 인식 기술에서 인식률에 가장 영향을 주는 것이 짧은 발성이다. 화자의 음소 정보를 파악해서 화자 목소리를 특정해야 하는데 발성이 짧으면 음소 정보를 파악하기가 쉽지 않아 인식률이 높아지지 않는다. 따라서 화자 인식 기술이 상용화되기 위해서는 짧은 발성 성능 향상 연구가 필수적이고, 그에 따라 인공지능(AI) 스피커의 보안이 상승하게 되며 사용자가 실수로 물건을 주문하지 않고 더 나아가 개인 정보나 사용자의 안전에 큰 도움이 될 것이다.

기술개발 일정 및 추진체계

개발 일정

(3월) - Teacher network와 Student network에서 사용하는 모델은 심층 신경망(Deep Neural Network, DNN)이고, 화자 인식에서 사용하는 화자 특징(Speaker Embedding)은 DNN에서 추출하는 고정된 은닉층 벡터(d-vector)를 사용합니다. d-vector 기반 DNN모델을 구현하는 것이 개발 과제의 첫 번째 목표입니다. (4월) - 모델을 구현한 후 음성 데이터를 모델의 입력으로 사용하기 위해서 MFCC 음향 특징을 추출하는 전처리 과정을 진행하였습니다. 그리고 전처리된 발성 데이터를 이용하여 처음에는 3.5초 이상의 긴 발성을 이용하여 Teacher 모델을 학습시키는 것이 두 번째 목표입니다. (5월) - 학습된 Teacher 모델의 정보를 이용해 Teacher 모델에서 추출된 화자 특징과 출력값의 정보를 이용하여 Student 모델을 학습하는 과정이 세 번째 목표입니다. (6월) - 마지막으로 Teacher 모델과 Student 모델의 성능을 비교하기 위해서 긴 발성, 짧은 발성의 다양한 길이의 발성을 두 모델에 넣어 짧은 발성의 성능이 향상되는지 아닌지 성능을 비교하여 결과를 보는 것이 마지막 목표입니다.

설계

설계사양

제품의 요구사항

화자 인식은 음성 인식의 가장 어려운 분야로 화자 인식 수행 시 음성 신호에 화자 정보가 충분히 담겨있지 않으면 정확도가 크게 떨어진다. 그렇기 때문에 사용자가 AI 스피커 등 화자 인식을 수행하는 어플리케이션에 자신임을 증명하기 위해서는 긴 발성을 입력 하는게 정확도가 높다. 하지만 이렇게 계속 긴 발성으로 화자 인증을 수행한다면 사용자가 크게 불편함을 느낄 것이고 결국 사용을 포기하게 될 것이다. 따라서 사용자가 짧은 발성으로도 화자 인증을 수행할 수 있으려면 최소한의 긴 발성의 길이만큼 화자 인식률을 높여야 한다. 그러므로 보통 화자 인식에서 3.5초 이상의 발성을 긴 발성으로 생각하므로 가장 경계에 가까운 3.59초 발성의 화자 인식률과 3.5초 이하의 짧은 발성의 화자 인식률을 비교하여 최대한 인식률을 끌어올린다.

설계 사양

심층 신경망(Deep Neural Network, DNN) 모델을 학습시키기 위해서 Quadro M6000 24GB 사양의 GPU를 사용하였고 E5-2640 v2 32GB 사양의 CPU를 사용하였다. 또한 Tensorflow 백엔드 기반의 Keras를 라이브러리로 사용하였고, 프로그래밍 언어는 Python을 사용하였다. 또한 음성 데이터베이스로 유튜브에 있는 유명 연예인들을 인터뷰한 음성을 모아논 VoxCeleb1 데이터베이스를 사용하였고 140,000개의 음성과 1251명의 화자로 구성되어있다.

개념설계안

Teacher network는 3.5초 이상의 긴 발성을 입력 발성으로 사용하여 모델을 학습시키고, Student network는 2~3.5초의 짧은 발성을 입력 발성으로 사용하여 모델을 학습시킨다. Student network는 Teacher network와 똑같은 network 구조를 가지고 학습된다. Student 모델을 학습시키기 위한 Loss 함수는 Teacher 모델에서 추출한 화자 특징(speaker embedding)과 Student 모델에서 추출한 화자 특징의 코사인 유사도(cosine similarity)를 비교하는 식과 Teacher 모델의 Output layer의 Categorical cross-entropy값과 Student 모델의 Output layer의 Categorical cross-entropy값을 비교하는 쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)의 식을 동시에 사용한다.

상세 설계 내용

1. TSL (Teacher-Student Learning) 설계

◇ 첫 번째로 Teacher 모델을 훈련 시킨다.

- 훈련 발성은 3.5초 이상의 긴 발성을 사용한다. 
- 훈련 발성에서 음향 특징을 추출하는 기법으로는 MFCC(mel-frequency cepstral coefficient) 특징을 추출하는 방법을 이용한다. MFCC의 음향특징을 추출하기 위해서는 우선 원 음성에서 입력 시간 도메인의 소리 신호를 작은 크기 프레임으로 자른다. 그리고 각 프레임에 대하여 Spectogram, Mel-filter bank energies 순으로 계산한 후, DCT(discrete cosine transform) 연산을 사용하여 MFCC를 계산한다.
- Teacher 모델의 학습 Loss 함수로는 Categorical cross-entropy를 사용하고 이 오차를 최소화하는 방향으로 모델을 학습시킨다. 
- 화자 모델을 학습한 다음에는 모델에서 화자 특징(Speaker Embedding)을 추출한다. 화자 특징(Speaker Embedding)이란 발성을 발화한 화자에 대한 정보를 담고 있는 특징으로, 전체 발성에 대한 고정된 차원의 벡터이다. 
- 이때 화자 특징은 소프트맥스(Softmax)의 전 단계인 전결합층(Dense Layer)에서 출력되는 고정된 차원의 벡터를 이용한다. 
- Teacher network는 기존의 긴 발성을 이용해서 학습하므로 화자 인식 성능이 우수하다. 그러므로 Teacher network를 사전에 학습시킨 후 화자 모델을 구성하여 Student network의 훈련에 이용한다. 

◇ 두 번째로 Student 모델을 훈련 시킨다.

-  훈련 발성은 2~3.5초의 짧은 발성을 사용한다. 
- 훈련 발성에서 음향 특징을 추출하는 기법으로는 Teacher 모델과 마찬가지로 MFCC(mel-frequency cepstral coefficient) 특징을 추출하는 방법을 이용한다.
- Student network의 학습은 Loss 함수로 Categorical cross-entropy를 사용하고, Cosine similarity를 사용한다. 
- 오차 함수에서 사용하는 두 가지 방법 중 한 가지로 Categorical cross-entropy에서는 일반적인 one-hot vector - ex) [0, 1, 0, 0]를 사용하는 것이 아니라 Teacher network로부터 추출한 soft label – ex) [0.05, 0.8, 0.1, 0.05]를 사용하여 모델의 일반화 성능을 향상시킨다. 
- 그다음으로 긴 발성에서 추출된 화자 특징(speaker embedding)과 짧은 발성에서 추출된 화자 특징(speaker embedding)을 코사인 유사도(cosine similarity)를 직접 비교하는 방법을 추가함으로써 Student 모델의 성능을 향상시킨다. 
- 이 두 가지 방법을 사용하는 오차 함수를 최소화하는 방향으로 모델을 학습시킨다. 화자 모델을 학습시킨 다음에 모델에서 화자 특징을 추출하여 화자 모델을 구축한다. 그 후 화자 인증 테스트를 진행하여 Teacher 모델과 Student 모델 간의 성능이 얼마나 차이가 나는지 실험한다. 
- Student 모델 구조는 Teacher 모델과 같으며, 긴 발성으로 학습된 Teacher network의 결과를 이용하여 짧은 발성일 때 Student 모델의 화자 인증의 정확도를 높이도록 노력한다. 

◇ 짧은 발성 보상을 위한 TSL (Teacher-Student Learning) 방법은 그림과 같다.

- Teacher network는 3.5초 이상의 긴 발성을 입력 발성으로 사용하여 모델을 학습시키고, Student network는 2~3.5초의 짧은 발성을 입력 발성으로 사용하여 모델을 학습시킨다. 
- 이때 Teacher network는 충분히 긴 발성으로 학습하므로 긴 발성이 입력으로 들어왔을 때 화자 특징을 추출하는 성능이 뛰어나다.
- 하지만 화자 인식에서 발성이 짧아질수록 화자 인식률이 떨어지는 한계가 있으므로 Teacher network에서도 짧은 발성에 대한 성능이 긴 발성보다 현저히 떨어진다.
- 여기서 Student network를 이용한다. Student network는 Teacher network와 똑같은 network 구조를 가지고 학습된다. 2~3.5초 정도의 짧은 발성을 통해서 Teacher network를 학습시키는 것과 같으며 여기서는 Teacher network의 짧은 발성에 대한 성능을 높이기 위해 똑같은 모델을 1개 더 생성한 것이다.
- Student 모델을 학습시키기 위한 Loss 함수는 Teacher 모델에서 추출한 화자 특징(speaker embedding)과 Student 모델에서 추출한 화자 특징의 코사인 유사도(cosine similarity)를 비교하는 식과 Teacher 모델의 Output layer의 Categorical cross-entropy값과 Student 모델의 Output layer의 Categorical cross-entropy값을 비교하는 쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)의 식을 동시에 사용한다.
- Teacher network 모델에 긴 발성을 넣었을 때 추출되는 화자 특징과 짧은 발성을 넣었을 때 추출되는 화자 특징이 비슷하게 나오길 기대하므로, Teacher netwrok 모델에서 나오는 출력값을 이용하여 Student network 모델의 weight 업데이트 길잡이 역할을 수행한다.
- 결국 Student network 모델은 Teacher network 모델의 긴 발성에 대한 좋은 성능을 가지고 있으며 짧은 발성에 대해서도 긴 발성과 비슷한 수준으로 보상되어 좋은 성능을 볼 수 있다.

◇ 짧은 발성 보상을 위한 TSL (Teacher-Student Learning) 방법에서 사용하는 Loss는 서로 다른 두 가지의 오차를 동시에 사용한다.

⓵ 첫 번째로 코사인 유사도(cosine similarity)라 부르는 오차를 사용하는데 이 오차는 내적 공간의 두 벡터 간 각도의 코사인값을 이용하여 측정된 벡터 간의 유사한 정도를 의미한다. 
- 각도가 0°일 때의 코사인값은 1이며, 다른 모든 각도의 코사인값은 1보다 작다. 
- 따라서 이 값은 벡터의 크기가 아닌 방향의 유사도를 판단하는 목적으로 사용되며, 두 벡터의 방향이 완전히 같을 때 1, 90°의 각을 이룰 때 0, 180°로 완전히 반대 방향일 때 -1의 값을 갖는다. 이때 벡터의 크기는 값에 아무런 영향을 미치지 않는다. 
- 코사인 유사도는 데이터 마이닝 분야에서 클러스터들 간의 응집도를 측정하는 방법으로도 사용된다. 또한, 코사인 거리(cosine distance)라는 개념이 대신 사용되기도 하는데, 이는 D_{C}(A,B)=1-S_{C}(A,B)의 식으로 표현된다. 
- 코사인 유사도는 특히 결과값이 [0,1]의 범위로 떨어지는 양수 공간에서 사용된다. 그러므로 두 벡터 사이의 코사인 유사도 값이 1에 가까워질수록 두 발성의 화자가 같다는 것을 의미하고 0에 가까워질수록 두 발성의 화자가 다르다는 것을 의미한다.
⓶ 두 번째로 사용하는 오차는 크로스 엔트로피(cross entropy)이다. 
- 이 오차는 쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)라고도 부르며 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 하여 발생할 수 있는 정보 엔트로피 차이를 계산한다. 

◇ 짧은 발성 보상을 위한 TSL (Teacher-Student Learning) 방법에서 사용하는 Loss 식이다.

- 이 오차는 코사인 유사도(cosine similarity)의 오차와 범주적 크로스 엔트로피(Categorical Cross Entropy)의 오차를 덧셈으로 연결한 오차 함수이다. 이 오차를 최소화하는 방식으로 Teacher network와 Student network를 학습시킨다.


2. DNN 모델 구조 설계

◇ Teacher network와 Student network에서 사용하는 모델은 심층 신경망(Deep Neural Network, DNN)이다.

- 심층 신경망은 층을 깊게 쌓은 신경망을 말한다. 층을 깊게 했을 경우 더 적은 매개변수로 같거나 높은 수준의 표현력을 가질 수 있다. 또한 층을 깊게 해 작은 필터를 여러번 거치도록 하는 경우 넓은 수용영역(receptive field)를 가지도록 할 수 있고, 계층 사이의 비선형 활성화 함수 계층을 통과하게 되므로 비선형적으로 더 복잡한 데이터를 표현할 수 있다.
- 가령 입력 데이터의 일부인 5x5 영역이 합성곱 연산에 참여하려면, 층이 2개인 신경망에서 합성곱 층의 필터 크기는 5x5여야 한다. 그러나 층이 2개일 경우 필터의 크기가 3x3인 합성곱 층을 2번 거치면 겨로가적으로 입력 데이터의 5x5 영역이 모두 연산에 참여하게 된다. 여기서 첫 번째의 경우는 5x5=25개의 매개변수가 필요하고 두 번째의 경우에는 3x3+3x3=18개의 매개변수가 필요하다.
- 또한 저수준의 단순한 특성에서 복잡한 특성으로 나아가 전체 사물을 인식하기 때문에 학습이 더 효율적이다. 만약 층이 깊지 않은 신경망으로 같은 작업을 하려면, 한두 번째 층에 중요한 특징을 한 번에 잡아내야 하므로 이것은 다양한 데이터에 대응이 어려워진다.
 
- 기존의 심층 신경망의 문제점으로는 과적합(overfitting)과 높은 시간 복잡도가 흔히 발생하는 문제였다. 하지만 최근 들어서 과적합(overfitting)을 해결하는 드롭아웃(dropout)이나 정규화(regularization)방법들이 사용될 수 있다. 또한 행렬 및 벡터 계산에 특화된 GPU가 나오면서 많은 처리량을 바탕으로 두드러지는 학습 속도 향상을 보여주어 심층 신경망의 문제점이 많이 해소되었다.

◇ 심층 신경망(Deep Neural Network, DNN)에서 더 깊은(deeper) 망을 만들어 내가 위해 ResNet(Residual Network)구조를 사용한다.

- 망이 깊어지게 되면, 그 망이 좋은 결과를 낼 수 있도록 학습을 시키기가 점점 더 어려워니다. 그 이유는 기울기 소실(Vanishing Gradient) 또는 기울기 폭발(Exploding Gradient) 문제나 망이 깊어지게 되면서 파라미터 수가 비례적으로 늘어나게 되어 과적합(overfitting)문제가 발생될 수 있기 때문이다.
- ResNet(Residual Network)구조은 다음과 같다. 기존의 평범한 망은 입력 x를 받아 2개의 weight layer를 거쳐 출력 H(x)를 내며, 학습을 통해 최적의 H(x)를 얻는 것이 목표이며 weight layer의 파라미터 값은 그렇게 결정해야 한다. 
- 그런데 H(x)를 얻는 것을 목표로 잡지 않고 H(x) - x를 얻는 것으로 목표를 수정하고 F(x) = H(x) - x라고 한다면 결과적으로 출력 H(x)는 H(x) = F(x) + x 가 된다.
- 이렇게 shortcut 연결을 추가적으로 생성하고 출력의 목표를 바꾸는 것이 ResNet(Residual Network)의 기본 구조이다. 그렇다면 H(x) - x를 얻기 위한 학습으로 바뀌는데, 최적의 경우라면 F(x)는 0이 되어야 하므로 F(x)가 거의 0이 되는 방향으로 학습을 하게 되면 입력의 작은 움직임을 쉽게 검출할 수 있다. 즉 나머지(residual)을 학습하는 관점으로 바뀌어 파라미터의 수에 큰 영향을 받지 않고 몇 개의 출력층을 건너 뛰면서 입력과 출력이 연결되기 때문에 기울기 소실이나 폭발문제에도 덜 민감하게 된다.

결과 및 평가

완료 작품의 소개

실험 결과

평 가 항 목 평가방법 적용기준 개 발 목표치 비중 (%) 평가결과

1. 화자 인식의 동일 오류율(Equal Error Rate)

입력 발성에 대한 화자특징Speaker Embedding)코사인 유사도(cosine similarity)를 이용해서 측정하고 다른 모델과 비교한다.

평가 (Evaluation) 데이터 2.05s의 짧은 발성을 기준으로 50% 이상 성능 향상 80 입력 발성 3.59초에서 2.05초 발성 길이 변화에 따른 성능 하락 59% 보상 확인

2. 화자 인식의 검증 정확도(Validation Accuracy)

80번 epoch 이하로 학습된 모델에서 가장 성능이 좋은 검증 정확도(Validation Accuracy)를 다른 모델과 비교한다.

검증(Validation) 데이터 2.05s의 짧은 발성을 기준으로 50% 이상 성능 향상 20 입력 발성 3.59초에서 2.05초 발성 길이 변화에 따른 성능 하락 52% 보상 확인


◇ 동일 오류율(Equal Error Rate, EER)은 주로 생체인식 시스템의 성능을 평가하는 지표로 사용된다. 오인식률과 오거부율이 같아지는 비율을 말한다.

- 오인식률(False Acceptance Rate, FAR)은 본인의 것이 아닌 생체인식 정보를 본인의 것으로 잘못 판단할 확률을 의미한다.
- 오거부율(False Rejection Rate, FRR)은 본인의 생체정보를 본인이 아닌 것으로 잘못 판단할 확률을 말한다.
- 일반적으로, 본인의 생체정보가 타인의 생체정보로 잘못 인식될 확률이 내려가면 오거부율은 내려가지만, 한편으로 이것은 본인의 생체정보로 판단하는 기준을 느슨하게 한다는 의미를 가지기도 하기 때문에, 오인식률은 올라가게된다.
- 반대로, 타인의 생체정보를 본인의 생체정보로 인식하는 확률이 내려가면 오인식율은 내려가지만, 오거부율은 올라간다.

◇ 평가 발성의 길이가 5초이상, 3.59초, 2.05초에 화자 동일 오류율 변화를 확인 (보상 전후 성능 비교를 위해)

- Baseline 모델 다양한 입력 발성 길이에 따른 화자 인증 오류율(%)

시스템 5s 이상 3.59s 2.05s

(Baseline) MFCC-DNN (3.59초 학습) 8.03% 10.33% 15.03%

- Baseline 모델 다양한 입력 발성 길이에 따른 검증 정확도(%)

시스템 5s 이상 3.59s 2.05s

(Baseline) MFCC-DNN (3.59초 학습) 96.1% 94.4% 87.5%


- 짧은 발성에 대한 TSL를 적용한 모델 화자 인증 오류율(%)

시스템 2.05s 2.05 0.1s 2.05 0.5s

(Baseline) MFCC-DNN (3.59초 학습) 15.03% 15.05% 15.09%

(TSL) MFCC-DNN (3.59초 학습) 12.31% 12.32% 12.38%


- 짧은 발성에 대한 TSL를 적용한 모델 화자 검증 정확도(%)

시스템 2.05s 2.05 0.1s 2.05 0.5s

(Baseline) MFCC-DNN (3.59초 학습) 87.5% 87.8% 88.3%

(TSL) MFCC-DNN (3.59초 학습) 91.1% 91.2% 91.7%

완료작품의 평가

◇ 결론

- 짧은 발성 보상 전후 성능 비교를 위해 평가 발성의 길이가 5초 이상, 3.59초, 2.05초에 화자 동일 오류율 변화를 확인하기 위해 Baseline인 DNN 모델에서 화자 인증 오류율과 검증정확도를 평가하였고 5초 이상 발성, 3.59초 발성, 2.05초 발성에서 각각 8.03%, 10.33%, 15.03%의 화자 인증 오류율과 96.1%, 94.4%, 87.5%의 검증정확도를 보였다. - 그 후 TSL를 적용한 화자 인증 오류율과 검증정확도를 평가하였고 2.05초 발성, 2.050.1초 발성, 2.050.5초 발성에서 각각 12.31%, 12.32%, 12.38%의 화자 인증 오류율과 91.1%, 91.2%, 91.7%의 검증정확도를 보였다. - 실험 결과 입력 발성 3.59초에서 2.05초 발성 길이 변화에 따른 성능 하락을 동일 오류율에서는 59% 보상하였고, 검증정확도에서는 52% 보상하였다. - 결국 TSL 방법으로 짧은 발성 보상을 수행하였을 때 성능 향상을 보였다.