민경진
(KyoungJin Min)
1iD
이혁재
(HyeokJae Lee)
1iD
황현진
(HyunJin Hwang)
2iD
이상엽
(SangYeob Lee)
2iD
이강휘
(KangHwi Lee)
1iD
문상호
(SangHo Moon)
3iD
이정은
(JungEun Lee)
§iD
이정환
(Jeong Whan Lee)
†iD
-
(P&C Solution Co Ltd.)
-
(Dept. of ICT Convergence Engineering, Konkuk University, Korea.)
-
(Devision of animal bio and applied chemistry science, Konkuk University, Korea.)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Pig, Sound, Classification, Analysis, Situation judgment, Supervised learning
1. 서 론
본 논문에서 동물의 상황을 분석한다는 것은 소리만으로 동물이 어떠한 상황에 놓여있는지를 판단하는 것이다. 상황을 판단함으로써 현재 동물이 처한 상황에서
동물이 스트레스를 받는지 등을 알고 대처할 수 있다면 이는 동물 복지와도 관련된다. 실제로 가축의 품질 및 생산성 향상을 위해 가축의 발성음을 들려주는
연구(1), 소리를 통해 질병 감염 여부 등을 확인한 연구(2), 혹은 소리를 통해 발정 시기인지 확인하는 연구(3)가 있다. 이는 동물의 사육 환경에서 동물의 건강 및 스트레스에 대한 대처가 가능하도록 하는 예시이며, 위에서 언급한 복지와도 상당한 관련이 있다.
돼지는 발성음을 많이 내는 동물이다(4). 돼지는 신체 상태 및 욕구에 따라 발성음을 내는 것으로 알려져 있으며, 돼지 간의 의사소통을 청각에 의한 방법으로 한다(5). 의사소통의 대표적인 예시로는 어미와 자돈 사이의 상호작용이 발성음에 따라 영향을 받는 것(6-7)과, 인위적 거세 시 평소와 다른 매우 높은 발성음을 낸다는 것(8)이다.
실험을 위해 직접 돼지를 사육하고 있는 곳에서 영상을 촬영했다. 이후 영상과 음성을 분리해 영상을 통해 상황이 일어난 시간에 맞추어 음성 데이터를
분절했다. 분절한 돼지의 발성음을 분석해 시간 영역(time domain)의 피치(pitch), 소리의 강도(intensity), 지터(jitter),
시머(shimmer), 고조파 대 잡음비(Harmonic-to-Noise Ratio, HNR)와 주파수 영역의 포먼트(for- mant)를 특징으로
추출했으며, Mel-Frequency Cepstral Coefficients (MFCC)라는 특징을 추가로 추출했다. 이때의 MFCC는 사람이 소리를
인지하는 과정에서 영감을 얻은 특징으로서, 다른 주파수 영역의 특징들보다 더 효과적인 특징이라고 할 수 있다.
최근 많은 부분에서 활용되고 있는 AI 기술 중에서도, 주목을 받고 있는 음성 인식 부분에서도 MFCC가 활용되고 있다. 그 예로, 사람의 화자 구분(9-11)이나 언어의 종류 구분(12) 등이 있다. 동물의 경우에도 분석에 대한 연구를 할 때 주파수 영역의 특징을 활용한다. 소리를 통해 동물의 종류를 구분하는 연구(13), 스트레스에 의한 발성음에 대한 연구(14-16)도 있으며, 동물의 발성음을 이용해 비정상적인 상황을 감지하는 사례(17-18)도 있다.
그러나 기존의 연구들이 모두 MFCC만을 사용한 것이 아닌 것처럼, 경우에 따라 사용해야 하는 특징이 다르다. 이에 본 논문은 실제 축사에서 수집한
음성 데이터를 통해 돼지가 처한 상황에 대해 발성음을 분석하고, 특징에 따른 분류 정확도를 알아보는 실험을 하고자 한다.
2. 특징 추출
2.1 데이터 전처리
시간에 따라 분절된 음성은 사건에 따라 길이(duration)가 다르며, 아주 짧게는 수 밀리초(ms)대에서 길게는 5초 이상인 경우도 있다. 그러나
특징 추출에 있어 음성의 길이가 크게 영향을 끼치거나 계산에 문제를 주지는 않으므로 짧은 시간의 음성 데이터도 모두 사용한다. 또한 기침, 싸움 등의
이벤트마다 데이터의 길이가 다르지만 이벤트의 지속 시간에 따라 음성의 길이가 달라지기 때문에 음성의 길이 자체를 특징으로 사용하지는 않는다.
돼지의 나이는 사람이 나이와 성별에 따라 목소리의 기초 주파수(fundamental frequency)가 다르듯이 돼지도 나이에 따른 기초 주파수가
다르다고 보고되고 있다(19). 따라서 하나의 사건에 대해서도 비슷한 특징 값들이 추출되는 것이 아니라, 돼지 발성음의 기초 주파수에 따라 특징 값이 다르므로 돼지의 나이 또한
특징으로 설정하였다.
대부분의 신호는 시간(time)에 따라 변화하며, 이를 시간이 독립변수인 신호라고 표현하기도 한다. 이러한 신호를 시간에 대해 해석을 하는 것이 시간
영역(time domain)이다. 시간 영역에는 신호 혹은 함수치가 연속적인 실수로 표현되는 연속 시간 신호(continuous-time signal)와
어떤 간격으로 값이 표현되는 이산 시간 신호(discrete-time signal)가 있다. 대부분의 음성 데이터는 연속적인 수치로 표현할 수 있기
때문에 연속 시간 신호라고 볼 수 있고, 때문에 이 신호를 분석하기 전에는 알맞은 전처리가 필요하다.
2.1.1 윈도잉(windowing)
각각의 상황에 따라 분절한 오디오 데이터는 각 프레임의 처음과 끝이 불연속적일 수 있다. 음성 데이터의 경우, 대부분 분절 과정에서 핵심이 될 만한
정보를 가진 부분의 앞, 뒤로 어느 정도 여유를 주고 분절하는 경우가 많으므로 그 앞, 뒤의 부분은 얻고자 하는 정보와는 관계가 없을 확률이 높다.
때문에, 분석 이전에는 윈도잉(windowing)이라는 과정을 통해 처음과 끝의 신호를 작게 변환해준다. 아래는 대표적인 윈도우 함수(window
function)라고 할 수 있는 hamming window(20)와 이를 오디오 데이터에 적용한 것을 나타낸 것이다.
그림 1 Hamming window와 이를 적용한 오디오 데이터
Fig. 1 Hamming window and audio data applying it
결국 window 함수는 불연속에 의한 스펙트럼의 왜곡을 막기 위해 사용한다. 스펙트럼(spectrum)은 어떤 복합적인 신호를 가진 것을 분해해서
표시하는 것인데, 필요 없는 정보를 가진 신호 부분까지 분해하면 정보의 혼란이 오고, 원하는 정보를 담은 스펙트럼이 되지 않기 때문에 이를 사전에
방지하기 위해 시간 영역에서부터 windowing을 진행한다.
2.1.2 푸리에 변환(Fourier Transform)
돼지의 음성에 따른 상황 분류가 목적이기 때문에 음성에 담긴 정보를 잃지 않고 특징으로 추출하는 것이 중요하다. 그에 따라 windowing을 거친
데이터들을 주파수 영역으로 변환해주는 작업이 필요하다. 이는 신호를 주파수 성분으로 변환하는 푸리에 변환(Fourier Transform)으로 진행할
수 있다. 데이터들은 푸리에 변환 공식인 아래 식 (1)을 거쳐 시간 영역에서 주파수 영역으로 변환된다.
시간의 함수가 푸리에 변환을 거치게 되면, 함수는 주파수에 대한 복소 함수가 된다. 아래의 그림 2는 오디오 데이터에 푸리에 변환을 적용한 그림이다.
그림 2 Fourier Transform을 적용한 오디오 데이터
Fig. 2 Audio data with Fourier Transform applied
그림 2의 $x$축은 샘플링 주파수의 절반만 유효하다는 Nyquist 이론(21-22)에 의해 기존 샘플링 주파수였던 44,100Hz의 절반인 22,050Hz가 되었으며, $y$축은 스칼라(scalar)값인 크기(magni- tude)이다.
그러나 푸리에 변환은 시간 영역에서 주파수 영역으로 변환하는 과정이기 때문에 이후 다루게 될 시간 영역에서의 특징 추출에서는 windowing 과정을
거친 직후의 데이터를 사용한다.
2.2 시간 영역에서의 특징
시간 영역에서의 특징을 사용할 때는 windowing 과정만을 거친 데이터들을 사용하며, 특징들로 시간 영역 내에서 계산할 수 있는 pitch, intensity,
jitter, shimmer, HNR (Harmonic- Noise Ratio)를 사용했다. 이는 음성 분석에 흔히 사용되는 프로그램인 Praat,
MDVP에서도 쓰이는 지표로 발성에 문제가 있는지를 연구하거나(23-24), 발성의 강도 등을 연구할 때(25) 사용된다.
2.2.1 피치(Pitch)
Pitch는 음악에서 음의 높낮이를 가리키는 용어로서, 시간의 함수로 주기성을 나타낸다. Pitch가 음성의 주기적 특성을 나타내는 것이기 때문에
주파수와 관련이 되어있지만, 주파수 영역에서의 주기성이 아닌 시간 영역에서의 주기성을 보는 것이기 때문에 시간 영역의 특성이다.
동일한 간격의 시간을 중심으로 하는 여러 프레임에서 계산되며, 프레임 안에서도 여러 간격으로 나누어 계산한다. 계산은 식 (2)와 같이 자기상관 (auto-correlation)방법을 기반으로 주기성을 판독한다. 이는 cepstrum이나 comb를 기반으로 하는 기존 자기
상관 방법보다 더 정확하고 잡음에 강하다(26).
식 (2)에서 $r_{x}(\tau)$는 단기 자기 상관 함수, $r_{x\omega}(\tau)$는 window를 거친 신호의 자기 상관 함수, $r_{\omega}(\tau)$는
window의 자기 상관 함수이다. 여기서 window 신호는 전처리 과정에서 windowing 과정을 거친 신호, window는 이때 사용했던 hamming-window를
의미한다.
Pitch는 시간 영역에서 계산되었으나, 본질은 진동수와 관련이 있으므로 좌표상에 나타낼 때는 $y$축이 주파수인 스펙트로그램(spectrogram)에
표시된다.
한 음성을 여러 프레임으로 나누어서 계산하기 때문에 pitch 값은 나뉜 프레임의 개수만큼 나올 수밖에 없다. 그러므로 데이터에 대한 pitch는
최댓값(max), 최솟값(min), 중간값(median), 평균(mean) 등을 사용하는데, 본 연구에서는 평균값만을 ‘mean pitch’라는 이름의
특징으로 설정하였다.
2.2.2 강도(Intensity)
Intensity는 소리의 강도를 의미하며, 수직 방향으로 단위 면적 당 음파가 전달하는 힘($N/m^{2}$)으로 정의된다. 데이터에 대한 평균
intensity 값을 계산할 때는 식 (3)을 사용해 시간 $t_{1}$과 $t_{2}$ 사이의 intensity를 구한 후 dB로 변환하였다.
이때 $x(t)$는 pitch와 마찬가지로 오디오 데이터를 여러 프레임으로 나누어서 구한 각 프레임의 intensity 값을 의미한다.
2.2.3 지터(Jitter)와 시머(Shimmer)
음성에서의 jitter는 성대의 진동 속도가 분석 구간에서 얼마나 변하는 지를 나타내며, 이 값이 높을수록 성대의 진동이 불규칙한 음성이라고 볼 수
있다(27). Jitter는 local, abs 등으로 구분할 수 있는데, ${J}ter_{local}$은 연속된 구간 사이의 평균 절댓값 차이를 구간들의 평균
시간으로 나눈 것이고, ${J}ter_{abs}$는 연속 된 구간 사이의 평균 절댓값 차이를 계산한 것이다. 이때, ${J}ter_{local}$가
가장 일반적인 jitter 측정이기 때문에(27) 이를 선택했다. ${J}ter_{local}$은 $i$번째 분석 구간의 기간인 $T_{i}$와, 분석 구간의 수 $N$으로 식 (4)과 같이 계산되며, 백분율로 나타낸다.
Shimmer는 jitter와 함께 음성을 이용한 분석 연구에 사용되고 있을 만큼 중요한 속성(28)이며, 파형에서 소리의 진동의 크기가 얼마나 변하는지를 나타낸다. Jitter와 유사하나, jitter는 파형의 주기성을 본다면, shimmer는
파형의 진폭에 대한 것이다. 실제로 shimmer의 경우 계산 방식이 연속 주기의 진폭 간의 평균 절댓값 차이를 평균 진폭으로 나눈 것으로, jitter와
동일한 것을 알 수 있다. 그림 3은 jitter와 shimmer를 나타낸 것이다.
그림 3 파형에서의 jitter와 shimmer (29)
Fig. 3 Jitter and shimmer in the waveform
2.2.4 고조파 대 잡음비(Harmonic-to-Noise Ratio, HNR)
신호처리에서 신호-대-잡음비(Signal-to-Noise Ratio, SNR)는 잡음 전력 대비 신호 전력의 세기를 비교함으로써 상대적인 신호의 전력
크기를 확인한다. 이때, 크기의 단위로는 dB을 사용하며(30), 신호를 사용하는 시스템의 성능을 결정하는데도 사용된다. 마찬가지로 음성 또한 잡음에 민감한 신호이기 때문에 잡음과의 비교를 통해 잡음비를 나타낼
수 있으나 SNR이 아닌 HNR이라고 표현하며, 식 (5)와 같이 계산된다(30).
이때의 $r'_{x}(\tau)$는 시간에 대한 신호 $x(t)$의 정규화 된 자기상관 함수를 의미한다. 이 값이 높을수록 소음이 적은 소리를 나타낸다.
HNR은 노화에 따른 목소리 분석(31) 등의 연구에 활용 되면서 단일 지표로도 사용되기도 한다.
2.3 주파수 영역에서의 특징
푸리에 변환을 마친 음성 신호는 여러 개의 주기 함수로 분해되어 주파수 영역에서 음성 신호를 구성하는 주파수 성분을 볼 수 있다. 시간영역에서의 특징들과
마찬가지로 일반적인 음성 분석 프로그램이나 알고리즘에 많이 사용되는 특징인 포먼트를 사용했으며, 서론에서 다루었던 MFCC를 추가적으로 사용했다.
그러나 시간 영역에서의 특징들과는 달리 formant와 MFCC는 한 음성에서도 여러 개를 추출할 수 있다.
2.3.1 포먼트(Formant)
음성 과학 및 음성학에서의 포먼트(formant)는 사람 성대의 공명에서 발생하는 광범위한 스펙트럼 최댓값이다(32). 즉, 사람이 발성(發聲)할 때 성대가 공명하는 과정에서 주파수가 최대가 되는 지점(peak)을 포먼트 주파수라고 하는 것이다.
이러한 포먼트는 기초 주파수(fundamental frequency)를 그래프에 나타낸 후 스펙트럼 크기로부터 유도되는 주파수 진폭 평면 곡선인 spectral
envelope(33)를 그려 각 피크(peak) 값들을 찾는 것으로 구할 수 있다(34).
그림 4 음성신호의 formant 계산(35)
Fig. 4 Calculation of the formant of the speech signal
2.3.2 Mel-Frequency Cepstral Coefficient (MFCC)
사람이 달팽이관을 통해 소리를 인식할 때, 달팽이관의 각 부분은 각기 다른 주파수를 감지한다(36). 이러한 달팽이관이 감지하는 주파수를 기반으로 하여 사람은 소리를 인식하게 된다. 아래 그림 5는 말려있는 달팽이관을 길게 펴서 본 그림이다.
그림 5 사람의 달팽이관을 펼쳤을 때의 모습(37)
Fig. 5 The appearance when the cochlea is unfolded
그러나 달팽이관은 낮은 주파수의 변화를 잘 감지하지만(37), 주파수가 높은 대역으로 갈수록 변화를 감지하기 어려워한다는 특수한 성질이 있다. 예를 들어, 사람은 실제로 200Hz에서 500Hz로 변화하는
소리는 변화를 인식하기가 쉽지만 12,000Hz에서 13,000Hz로 변하는 소리는 잘 감지하지 못한다. 그 이유는 달팽이관의 구조에 있다. 달팽이관에서
저주파 대역을 감지하는 부분은 상대적으로 굵지만, 고주파 대역으로 갈수록 감지하는 부분이 점점 얇아지기 때문이다. 이런 특성을 이용하여 특징을 추출한
것이 MFCC이다. 그러나 MFCC는 이전까지의 전처리 과정 이후에도 처리가 필요하다.
FFT를 거친 신호는 주파수 영역으로 변환되었으며, 변환된 신호는 Mel Filterbank라고 하는 필터들의 집합을 거치게 된다. Mel Filterbank는
band-pass filter들로 구성되어 있으며, 각 filter의 중심 주파수 배열은 인간의 주파수 지각 단위인 Mel 단위를 기반으로 한다(38). 그림 6은 Mel Filterbank를 보여준다.
그림 6 Mel Filterbank(39)
Fig. 6 Mel Filterbank
Mel Filterbank를 거친 신호에 로그를 취해준다. 그 이유는 일반적으로 소리가 두 배 크게 들리게 하기 위해서는 실제로 에너지의 8배를 인가하듯이,
인간의 귀가 소리의 크기를 선형(Linear)적으로 감지하는 것이 아니기 때문이다. 그리고 Filterbank는 모두 중첩되어 있기 때문에 에너지들
사이에는 상관관계가 존재하게 된다. 상관관계를 분리해주기 위해 DCT(Discrete Cosine Transform, 이산 코사인 변환)를 계산한다.
DCT는 아래 식 (6)과 같다(40).
DCT는 특정 신호를 코사인 함수의 합으로 표현하는 변환이다. 이 때 앞쪽 코사인 함수의 계수가 변환 전 데이터의 대부분의 정보를 가지고 있고 뒤로
갈수록 0에 근사한다. 즉, 낮은 주파수 쪽으로 에너지 집중 현상이 일어나는 것이다.
MFCC는 이 계수들 중 주파수가 낮은, 즉 정보와 에너지가 몰려있는 12개의 계수(cepstrum coefficient)를 선택해 이를 특징으로
사용한다. 그리고 이 12개 계수에 해당하는 각 프레임의 에너지를 13번째 특징으로 사용한다. MFCC 13개의 각 프레임 간 차이를 1차 차분,
다시 이 값의 프레임 간 차이를 2차 차분으로 구해서 해당 값들을 추가적인 특징으로 사용한다. 따라서 1차 차분 값들과 2차 차분 값들까지 총 39개의
값을 최종적으로 사용한다.
음성 신호는 시간에 따라 변화하지만, 분석 과정에서는 프레임으로 잘라서 데이터를 보고 있으므로 정보를 충분히 반영하지 못할 수 있다. 이러한 점을
보완하기 위해 각 프레임 간의 차이를 구해 특징으로 사용하는 것이다.
MFCC를 표현할 때의 y축은 ‘Mel scale [Hz]’로 나타내는데, 이는 mel scale에 의해 결정된 주파수이다. 즉, mel scale로
구해진 결과 값을 주파수로 환산하여 보여준 것이다. Mel 단위를 Hertz로 변환하는 식과 반대로 Hertz에서 Mel단위로 변환하는 식은 아래와
같다(41).
2.4 돼지의 종류와 발성음
그림 7과 같이 돼지는 태어난 후부터의 일, 개월 수에 따라 구분된다(42). 본 연구에서는 포유(哺乳) 자돈과 이유(離乳) 자돈을 합해 ‘자돈(子豚)’으로, ‘미경산(未經産) 모돈’과 ‘임신(妊娠) 모돈,’ ‘포유(哺乳)
모돈’을 합해 ‘모돈(母豚)’으로 사용했다.
그림 7 돼지의 전반적 생애주기
Fig. 7 The overall life cycle of a pig
또한, 돼지의 울음소리는 크게 ‘꿀꿀(grunt),’ ‘꾸웩(squeal),’ ‘비명(scream)’ 3가지로 나눌 수 있다(43). 그러나 이러한 울음소리들은 상황에 따라 나는 것이 아니기 때문에 특징으로 설정했다. 덧붙여, 위의 세 가지 발성음과는 다른 소리인 ‘기침(cough)’
또한 특징으로 구분했다.
3. 분류 기법
분류에는 지도학습(supervised learning)을 이용했다. 교사학습이라고도 하는 지도학습은 정답을 알려주면서 학습을 한다(44). 지도 학습은 데이터를 훈련하는 과정에서 함수를 유추한다. 이러한 함수 중 연속적인 값을 출력하는 것을 회귀분석(regression)이라 하고,
주어진 입력 벡터가 어떤 카테고리의 값인지 구분하는 것을 분류(classification)라고 한다.
본 연구에서는 그 중에서 분류의 종류인 k-최근접 이웃 알고리즘(K-Nearest Neighbors, KNN), 서포트 벡터 머신(Support Vector
Machine, SVM)과 결정 트리(Decision Tree)를 이용했다.
지도 학습의 평가 방법은 훈련 데이터로부터 함수가 유추되고 나면 해당 함수에 대한 평가를 통해 최적화를 진행한다. 이러한 평가를 위해 교차 검증(cross
validation)으로 파라미터의 조정을 하게 되며, 훈련된 각 함수에 대해 정밀도(Precision)와 재현율(Recall)을 측정할 수 있다.
이에 대한 정의는 다음의 표 1, 식 (8)과 같다(45).
표 1 평가에 사용되는 지표
Table 1 Indicators used for evaluation
|
|
Actual result
|
|
|
True
|
False
|
Predicted
result
|
Positive
|
TP
(True Positive)
|
FP
(False Positive)
|
Negative
|
FN
(False Negative)
|
TN
(True Negative)
|
3.1 Decision tree
결정 트리(Decision tree)는 기계학습(machine learning)에서 일반적으로 사용되는 방법론으로, 입력되는 변수들을 바탕으로 목표
변수의 값을 예측하는 모델을 생성하는 것을 목표로 한다. 결정 트리는 분류와 회귀가 모두 가능한 지도 학습 모델 중 하나로서, 특정 기준에 따라 데이터를
구분하는 모습이 나무의 가지를 닮았다고 해서 이름에 Tree가 붙는다. 한 번의 기준을 나누는 분기마다 변수 영역을 두 개로 구분한다. 맨 처음 분류
기준을 뿌리(Root Node)라고 하고, 맨 마지막 마디를 끝단(Terminal Node), 혹은 잎(Leaf Node)이라고 한다.
결정 트리에서의 ‘학습’은 학습에 사용되는 자료 집합을 적절한 분할 기준에 따라 부분 집합들로 나누는 과정을 말한다. 이러한 과정은 각각의 나눠진
자료 부분 집합에 재귀적으로 반복되며, 분할로 인해 더 이상 새로운 예측 값이 추가되지 않거나 부분 집합의 노드(node)가 목표 변수와 같은 값을
지닐 때까지 계속된다. 결정 트리는 식 (9)와 같은 수학적 표현으로 기술될 수 있다. 종속 변수는 분류를 통해 학습하고자 하는 목표 변수이며, 벡터$\vec{x}$는 $x_{1},\: x_{2,\:}x_{3,\:}\cdots
,\: x_{k}$의 입력 변수로 구성된다.
그러나 결정트리에도 한계가 있는데, 각각 서로 다른 수의 단계로 분류가 가능한 변수를 포함하는 데이터에 대해 더 많은 단계를 가지는 속성 쪽으로 정보
획득의 양이 편향되는 문제가 있다(46). 하지만 이 문제는 조건부 추론을 통해 해결이 가능하다.
3.2 k-최근접 이웃 알고리즘(k-Nearest Neighbors)
패턴 인식에서의 k-최근접 이웃 알고리즘(k-Nearest Neighbors, 이하 KNN)은 분류나 회귀에 사용되는 비모수(non-parametric)
방식이다(47). 분류와 회귀 두 경우 모두 특징이 분포된 공간 내에서 k개의 가장 가까운 훈련 데이터로 구성되어 있다. KNN을 분류기(classifier)로
사용했을 경우, 출력은 소속된 항목으로서 k개의 인접한 이웃 사이에서 가장 공통적인 항목에 할당된다. 만약 k = 1이라면 결과는 하나의 가장 근접한
이웃의 항목에 할당된다.
훈련 데이터는 분류되어야 할 정답을 갖는 다차원 특징 공간에서의 벡터이다. 훈련 단계는 훈련 표본의 특징 벡터와 정답을 저장하는 것이다. 분류 단계에서
k는 사용자가 정의하는 상수이고 정답을 갖지 않은 벡터는 k개의 훈련 표본 사이에서 가장 많은 정답을 할당함으로써 분류된다. 그림 8은 KNN이 알 수 없는 데이터가 입력으로 들어왔을 때, 이를 분류하는 방법을 나타낸다.
그림 8 1과 2 사이에 알 수 없는 데이터가 들어왔을 경우
Fig. 8 Unknown data entered between 1 and 2
만약 k = 3이면 범위는 실선으로 그려진 원 안이 될 것이고, 이 범위에는 2번 데이터가 많으므로 알 수 없는 데이터는 2번 항목으로 분류되어야
한다. 만약 k = 5라면 범위는 점선으로 그려진 원이 되며, 이 범위에는 1번 데이터가 많으므로 알 수 없는 데이터는 1 항목으로 분류될 것이다.
따라서 k 값에 따라 데이터의 항목이 다르게 분류되기 때문에 알맞은 k 값을 설정해주는 것이 중요하다. 일반적으로 k 값이 커질수록 분류에서 잡음의
영향이 줄어들지만(48), 항목 간 경계가 불분명해진다. 반대로 k 값이 1과 같이 너무 작은 경우에는 분류 기준이 고정되어 훈련 데이터에서의 정확도는 높지만, 테스트 데이터에서는
에러(error)가 높고 정확도가 낮아진다. 과적합(overfitting)된 모델이 될 가능성이 높다고 할 수 있다.
따라서 k 값을 적절하게 설정하는 것은 곧 모델을 적절히 설계하는 것이다. 적절한 k를 설정할 수 있도록 기존의 훈련-테스트에서 변형된 방법인 교차
검증 방법(cross validation)을 사용할 수 있다.
3.3 서포트 벡터 머신(Support Vector Machine)
서포트 벡터 머신(Support Vector machine, 이하 SVM)은 다항식(polynomial), 방사 기저 함수(Radial Basis
Function), 다중 퍼셉트론 분류기(Multi-layer Perceptron Classifier)의 대안적인 학습 방법으로, 고차원 특징 공간으로
사상시킬 수 있다는 특징이 있다(49).
SVM은 분류 또는 회귀 분석에 사용 가능한 초평면(hyper- plane) 또는 초평면들의 집합으로 구성되어 있다. 주어진 데이터 집합을 바탕으로
하여 새로운 데이터가 어느 카테고리에 속할지 판단하는 모델을 만든다. 선형 분류와 비선형 분류 두 가지 모두 사용할 수 있으나, 비선형 분류를 위해서는
주어진 데이터를 고차원 특징 공간으로 사상하는 작업이 필요하다.
고차원 특징 공간으로 사상시키는 과정에서 계산량이 늘어나는 것을 막기 위해 각 데이터 집합에 적절한 커널 함수 $k(x,\: y)$를 정의한 구조를
설계하여 효과적으로 계산할 수 있다(50). 데이터 집합에 알맞은 커널 함수를 사용해 정확도를 높이고 계산량을 줄일 수 있다.
3.3.1 선형 서포트 벡터 머신(Linear SVM)
SVM에서 데이터 점이 $p$-차원의 벡터로 주어졌을 때, 이러한 데이터 점을 $(p-1)$-차원의 초평면으로 분류할 수 있는지를 확인하는 것이 목표이다.
이러한 작업을 선형 분류(linear classification)라고 한다. 데이터를 분류하는 초평면은 여러 경우가 나올 수 있다. 초평면을 선택하는
방법은 가장 큰 마진(margin)을 가지는 초평면을 선택하는 것이다. 그리고 초평면에서 가장 가까운 각 클래스의 데이터 점들 간의 거리를 최대로
하는 초평면을 선택한다.
마진(margin)은 결정 경계와 그 경계에 가까이 있는 데이터 점들(서포트 벡터, support vector)의 거리를 의미하며, 최적의 결정 경계는
데이터 점들 간의 거리를 최대로 한다. 즉, 마진을 최대화 한다. SVM에서는 결정 경계를 정의하는 것은 서포트 벡터이기 때문에 데이터 점들 중에서
서포트 벡터만 잘 골라내면 나머지 수많은 데이터 점들을 무시할 수 있다.
그런데 데이터의 양이 많아지면 모든 데이터에 대해 고차원으로 매핑(mapping)하고 이를 다시 내적 해야 하므로 연산량이 증가한다. 이를 해결하기
위해 커널(kernel)을 도입한다. 커널 $K$는 다음의 식 (10)으로 정의된다.
매핑함수 $\Phi$는 선형 변환(Linear transform)이고 그에 해당하는 표준행렬(standard matrix)을 $A
$라고 두면 다음과 같이 쓸 수 있다.
여기서 $\Phi$를 $m$차원에서 $n$차원으로 매핑해주는 함수라고 가정하자. 그러면 각각의 차원 수는 다음과 같다.
따라서 $K$의 결과는 스칼라가 된다. 그리고 $K(x_{i},\: x_{j})$로 구성된 행렬은 대칭행렬(symmetric matrix)이어야 한다.
정리하자면, SVM에서 선형 커널(linear kernel)의 경우는 식 (13)이 된다.
3.3.2 방사 기저 함수(Radial Basis Function, RBF)
RBF의 커널 함수는 가우스 함수(Gaussian function)와 동일한 형태여서 가우시안 커널(Gaussian Kernel)이라고도 불린다.
RBF 커널 $K$는 식 (14)와 같이 표현된다(51).
여기서 $\gamma$는 커널의 흩어짐을 설정한다. 가우시안 분포에서 분산에 해당하는 부분으로, 최적화를 위한 자유 파라미터(free parameter)라고
부른다. $\gamma$ 값은 작아질수록 마진이 넓어지고, 커질수록 마진이 작아지면서 세분화 된다.
또한, RBF 커널은 무한대로 변환될 수 있는데, $\gamma = 0.5$로, $||x_{1}||=||x_{2}|| = 1$로 가정하면,
이 된다.
식 (15)의 마지막 줄은 차수가 무한대인 다항커널(Poly- nomial kernel)과 같다. 즉, 무한대의 특징 공간으로 사상시켜 비선형적인 결정 경계를
만들 수 있다는 의미이다.
3.4 교차검증(Cross-validation)
주어진 데이터에 대해 학습을 수행할 때, 일반적으로 데이터의 일부를 나누어 훈련 데이터로, 그리고 나머지 데이터를 테스트 데이터로 사용한다. 그리고
테스트 데이터는 곧 검증 데이터가 되며, 고정된 테스트 데이터를 기준으로 모델을 수정하게 된다. 이 과정을 반복하게 되면 모델은 고정 된 테스트 데이터에만
잘 작동하는 모델이 되어버리고, 이를 과적합(overfitting)이라고 한다.
이러한 현상을 해결하고자 하는 것이 바로 교차검증(cross- validation)이다. 테스트 데이터에 과적합 되는 문제는 테스트 데이터가 전체
데이터 중 일부분으로 고정되어있기 때문에 발생한다. 교차 검증은 데이터의 모든 부분을 사용하여 모델을 검증하고, 테스트 데이터를 하나로 고정하지 않는다.
그림 9 Leave-p-out 교차 검증
Fig. 9 Leave-p-out cross-validation
교차 검증의 예시로는 Leave-p-out 교차검증을 들 수 있다. 서로 다른 데이터들 중에서 $p$개의 샘플을 선택하여 모델 검증에 사용하는 방법으로(52), $m$개의 전체 데이터 샘플 중에서 $p$개의 샘플을 선택한 후, 테스트 데이터를 구성할 수 있는 경우의 수는 $_{m}C_{p}$가 된다.
그러나 이 방법은 구성할 수 있는 데이터 폴드 세트에 대한 경우의 수가 매우 크기 때문에, 계산 시간에 대한 부담이 매우 큰 방법이다.
3.4.1 K-fold 교차 검증(K-fold cross-validation)
K-fold 교차 검증(K-fold cross-validation, k-fold 교차검증)은 전체 데이터를 k개로 나누고 k번의 평가를 실시하는데,
이때 테스트 데이터를 중복 없이 바꾸어 가면서 평가를 진행한다. 평가는 한 번 실시할 때마다 모델을 생성하고 예측을 진행하여 이에 대한 에러 값을
추출한다. 그림 10은 k-fold 교차 검증을 나타낸 그림이다.
각 fold에서 평가를 진행한 후 기록된 에러를 바탕으로 최적의 모델을 찾고, 해당 모델을 바탕으로 전체 훈련 데이터의 학습을 진행한다. 이후, 해당
모델을 처음에 분할했던 테스트 데이터를 활용해 마지막으로 평가한다. 이때 데이터의 분할 개수인 k를 10으로 설정하는 것이 일반적이지만(53), 데이터나 모델에 따라 변경할 수 있다. 또한, k-fold는 정답 클래스의 비율이 거의 비슷하도록 분할된다.
그림 10 K-fold 교차 검증
Fig. 10 K-fold cross-validation
보통 k-fold는 일반화 성능을 만족시키는 최적의 하이퍼 파라미터(hyper-parameter)를 구하기 위한 모델 튜닝에 사용된다. 여기서의 하이퍼
파라미터는 fold별로 구해진 값들의 평균이다. 그림 19의 경우에는 전체 정확도가 각 fold별 정확도의 평균이다(식 (17)).
k-fold 과정은 모든 데이터를 빠짐없이 훈련과 테스트 데이터로 쓸 수 있으나, 데이터의 분할 개수에 따라 반복적으로 진행하기 때문에 시간이 다소
오래 걸린다는 단점이 있다.
4. 실험 내용 및 결과
4.1 실험 구성
돼지의 발성음을 연구하기 위한 데이터는 실제 축사에서 돼지들을 캠코더로 녹화하는 것으로 수집했다. 아래 표 2의 실험 정보대로 데이터를 수집했으며, 그림 11과 같이 녹화된 영상은 영상과 음성으로 분리했다. 영상을 통해 사건(event)이 발생할 때마다 시간대와 상황에 대한 정보를 표기한 후, 시간대에
맞추어 음성을 분절했다.
표 2 실험에 대한 정보
Table 2. Information about the experiment
실험 일자
|
실험 장소
|
2015-09-03
|
경상남도 산청군 (비육사)
|
2015-09-21
|
경상남도 사천시 (분만사)
|
2015-09-23
|
경상남도 사천시 (비육사, 분만사)
|
2015-09-25
|
경상남도 사천시 (비육사)
|
2015-09-30
|
경상남도 사천시 (육성돈사)
|
2015-10-02
|
경상남도 사천시 (임신사)
|
4.1.1 축사의 돼지 상황 구분
음성의 분절은 표기된 시간대를 기준으로 하지만, 그 시간대는 사건(event)이 발생한 기준이다. 이때의 사건(event)은 표 3에 나타낸 상황으로, 총 8개로 구분된다.
표 3 영상 데이터를 보고 인위적으로 판별한 상황 라벨(label)
Table 3 Situation label artificially determined from video data
라벨
|
상황에 대한 설명
|
사료기대
|
사료 급여 전 돼지들의 사료 기대
|
통증
|
자돈의 거세, 육성돈 및 비육돈의 물림 등
|
놀람
|
모종의 이유로 돼지가 놀람
|
싸움
|
모유, 사료, 자리 등을 차지하기 위해 경합
|
경계음
|
사람 혹은 차량에 대해 경계
|
포유 유발
|
모돈이 자돈에게 포유하기 전에 내는 발성음
|
기침
|
질병, 냄새 등의 이유로 기침 혹은 재채기를 함
|
눌림
|
밟고 지나가거나 넘어지는 등 돼지가 눌릴 때 나는 발성음
|
4.1.2 연구에 적용할 상황 선정
분절한 음성 데이터는 파이썬(Python 3.7) 코드를 작성하여 특징들을 추출했다. 이때 프레임의 수가 부족하거나 설정한 주파수 범위를 벗어나서
추출하지 못한 특징은 숫자가 아닌 값(Not a Number, NaN)으로 저장되었다. ‘결측값’이라고도 불리는 NaN은 수치로 볼 수 없기 때문에
분류에 특징으로 활용할 수 없다. 그러므로 NaN 값을 포함한 음성 데이터는 분류를 위한 데이터셋(dataset)에서 제외했다.
이렇게 선정된 상황은 ‘놀람,’ ‘눌림,’ ‘기침’으로, 각 상황은 그림 12로 나타냈다.
그림 12 (a) 놀람 : 가운데 보이는 돼지가 아래 돼지를 뛰어 넘어가면서 아래 돼지가 놀란 상황, (b) 눌림 : 가운데에서 한 돼지가 아래 돼지를
누른 상황, (c) 기침 : 돼지가 몸을 들썩이며 기침하는 상황
Fig. 12 (a) Surprised: The pig in the middle jumps over the lower pig, and the lower
pig is surprised, (b) Pressed: A pig in the center presses the lower pig, (c) Cough:
The situation of pig’s coughing
4.1.3 상황에 대한 데이터
각 상황에 대한 음성 데이터의 차이는 특징을 추출하는 과정에서 볼 수 있는 Mel-spectrogram, MFCC로 볼 수 있다. 그림 13부터 그림 15를 보면서 상황에 따른 음성 데이터가 확연한 차이가 있는지 확인한다.
마지막 그래프를 살펴보기 전에 periodogram에 대해 설명하자면, periodogram은 신호가 푸리에 변환을 한 후에 이 출력 값을 정규화해서
전력 스펙트럼 밀도를 구한 것을 주파수에 대해 어떻게 분포하는지 나타낸 것이다. Periodogram을 계산하는 방법 중에서 흔히 두 가지를 쓰는데,
Bartlett의 방법과 Welch의 방법이 있다.
Bartlett의 방법은 평균 periodogram의 방법으로 알려져 있으며(54), 파워 스펙트럼을 추정하는데 사용된다. 이전까지 periodogram을 그리던 방법과는 달리 관측 구간을 나누어 스펙트럴(spectral) 추정량을
각각 추정한 후, 이 값들을 평균으로 사용한다. 그러나 표준 periodogram에서 분해능(resolution)을 줄이는 대신에 periodogram의
분산을 줄인다(55-56).
Welch의 방법은 스펙트럼 밀도 추정을 위한 접근법으로, Bartlett의 방법에서 관측 구간을 나눌 때 앞, 뒤로 약간씩 겹치도록 하는 방법이다.
이렇게 하면 기존보다 잡음이 제거된 periodogram을 그릴 수 있다는 것이다(57).
그래프에는 Bartlett 방식과 Welch 방식을 모두 나타냈다. 방금 설명한 대로 Bartlett의 방법에 비해 Welch의 방법이 훨씬 깔끔하게
그려지는 것을 볼 수 있다. 그리고 y축의 PSD(Power Spectral Density)는 전력 스펙트럼 밀도라고 하며, 신호 주파수에 따른 전력
밀도를 나타낸 것이다.
그림 13 비육돈이 grunt 소리를 낼 때 ‘놀람’의 오디오 데이터
Fig. 13 Audio data of ‘surprise’ when the pig makes a grunt sound
그림 14 비육돈이 grunt 소리를 낼 때 ‘눌림’의 오디오 데이터
Fig. 14 Audio data of ‘pressed’ when the pig makes a grunt sound
그림 15 비육돈이 grunt 소리를 낼 떄 ‘기침’의 오디오 데이터
Fig. 15 Audio data of ‘cough’ when the pig makes a grunt sound
4.1.4 데이터 구성
‘자돈,’ ‘육성돈’ 등의 돼지 구분과 ‘grunt,’ ‘squeal’ 등과 같은 발성음의 구분을 숫자로 변경했다. 필자가 사용할 머신러닝 알고리즘에서는
문자열을 입력 값으로 받지 않기 때문이다(58). 표 4에서 수치화된 내용을 볼 수 있으며, 특징뿐만 아니라 정답으로 사용될 라벨(label)까지 숫자로 변환했다.
표 4 변환한 내용 (pig type : 돼지 구분, call type : 발성음 구분, situation : 상황(정답 라벨))
Table 4 Converted content (pig type: pig classification, call type: vocal sound classification,
situation: situation (correct answer label))
pig type
|
call type
|
situation
|
→
|
변경
|
자돈
|
grunt
|
놀람
|
0
|
육성돈
|
squeal
|
눌림
|
1
|
비육돈
|
scream
|
기침
|
2
|
임신돈
|
cough
|
|
3
|
모돈
|
|
|
4
|
실험을 시작하기에 앞서, 학습 데이터와 테스트 데이터로 나눈 후, 특징값들과 정답으로 다시 한번 나누어 준다. 그림 16에 데이터를 나누는 과정을 다이어그램(block diagram)으로 나타냈다. 학습 데이터와 테스트 데이터는 전체 데이터를 무작위로 섞은 후 8:2의
비율로 나누어주었다.
특징과 정답으로 나눈 데이터는 학습 데이터의 경우 각각 x_train, y_train이 되어 분류기가 각 특징에 대한 정답을 학습할 수 있는 기반이
된다. 반대로 테스트 데이터에서의 특징과 정답은 각각 x_test, y_test가 되고, x_test는 분류기가 예측해야 할 특징값이다. 이후 y_test와
예측된 값을 비교하여 정확도(accuracy)를 얻게 된다.
그림 16 학습 데이터와 테스트 데이터로 분할
Fig. 16 Split into training data and test data
4.2 실험 1 : 일반적인 특징을 이용한 분류
4.2.1 실험 내용
첫 번째 실험은 돼지의 구분, 발성음의 구분과 함께 주로 병리학의 목적으로 분석하는 프로그램인 Praat과 MDVP에서도 분석 지표로 사용하는 pitch,
intensity, jitter, shimmer, HNR, formant를 특징으로 사용한다. 음성 분석에 관련된 연구에서 사용되는 프로그램들인 만큼
동물의 발성음을 분석하는데도 효과가 있는지 확인하기 위함이다.
분류는 Decision tree, KNN, 선형 SVM, 비선형 SVM(RBF 커널) 순으로 진행되며, 결과에 대한 판단은 표 1의 평가 지표를 기반으로 한 분류 결과표(classification report), 혼동 행렬(confusion matrix)로 진행한다.
4.2.2 실험 결과
그림 17 실험 1 : 분류기 간의 정확도 비교
Fig. 17 Experiment 1: Accuracy comparison between classifiers
먼저 각 분류기의 정확도를 그림 17을 통해 비교한다. 교차 검증의 식 (17)을 이용해 각 분류기를 5번 실행했을 때의 정확도 평균값을 나타낸 것이다. 선형 SVM이 77.19%로 가장 높고, 결정 트리가 75.35%로 그다음을
기록했다. 그러나 KNN과 비선형 SVM(RBF 커널)의 평균값은 50%에도 미치지 못하는 것으로 나타났다.
그리고 각 특징들이 분류에 어느 정도 영향을 미치는지 알아보도록 한다. 이는 아래 그림 18로 나타냈으며, 수치가 높을수록 분류에 있어 중요한 특징이다.
그림 18 실험 1 : 특징들의 중요도
Fig. 18 Experiment 1: Importance of Features
분류 결과표(Classification Report)는 각 분류기에 대한 분류 결과를 정규화(Normalization)하여 보여준다. Classification
report의 precision과 recall은 식 (17)에 나와 있으며, f1-score는 precision과 recall의 조화평균으로 구해진다(식 (18)). f1-score는 0.0부터 1.0 사이의 값이고, 높을수록 좋다. 그림에는 간단히 나타내기 위해 f1로 표현되어 있다. 또한. 그림의 support는
각 항목에 대한 데이터의 개수를 나타낸다.
그림 19 실험 1 : Decision tree의 classification report
Fig. 19 Experiment 1: Classification report of Decision tree
그림 19에서 precision은 ‘참으로 예측한 것들 중에서 실제로 참인 것들의 비율’이고, recall은 ‘실제로 참인 것들 중에서 참으로 예측한 것들의
비율’을 의미한다. 결정 트리의 경우, ‘기침’에 대한 precision과 recall이 97.3%로 실험 결과 중에서는 가장 높고, ‘눌림,’ ‘놀람’
순으로 값들이 높다.
그림 20 실험 1 : Decision tree의 confusion matrix
Fig. 20 Experiment 1: Confusion matrix of Decision tree
그림 20은 결정트리의 혼동행렬을 나타낸 것으로, 실제 라벨(label)들 중 예측한 라벨(label)의 비율을 나타낸 것이다. 분류 결과표에서 ‘기침’이
가장 높았던 것처럼 혼동행렬에서도 ‘기침’을 ‘기침’이라고 예측할 확률이 가장 높았고, ‘눌림,’ ‘놀람’ 순으로 확률이 높았다.
다음으로는 KNN에 대한 결과를 보기 전에, 1부터 10까지의 k 값에 대한 정확도를 비교한다. 이는 그림 21로 나타냈다.
그림 21 실험 1 : k 값에 따른 KNN 정확도
Fig. 21 Experiment 1: Accuracy of KNN according to k value
그림 21은 KNN에서의 k 값에 따라 교차 검증을 통한 정확도에 차이가 있음을 보여준다. 그림 17과 같이 5회의 교차 검증을 한 후, 정확도의 평균값을 나타낸 것으로, k가 6일 때 정확도가 가장 높은 것을 알 수 있다. 그러므로 분류 결과표
및 혼동행렬은 k가 6일 때의 결과를 그림 22와 그림 23으로 나타낸 후 분석한다.
그림 22 실험 1 : KNN(k = 6)의 classification report
Fig. 22 Experiment 1: Classification report of KNN(k = 6)
KNN에서는 ‘눌림’에 대한 분류가 그나마 가장 잘 된 것으로 나타났다. 그러나 ‘눌림’에 대한 평가 지표들이 결정 트리의 분류 결과표에서 가장 낮았던
수치보다 KNN의 수치가 더 낮다. 따라서 KNN의 ‘눌림’은 내부에서는 분류가 가장 잘 된 것으로 볼 수 있지만, 결정 트리와 비교했을 때는 분류가
제대로 이루어지지 않았다고 해석할 수 있다.
그림 23 실험 1 : KNN(k = 6)의 confusion matrix
Fig. 23 Experiment 1: Confusion matrix of KNN(k = 6)
그림 24 실험 1 : 선형 SVM의 classification report
Fig. 24 Experiment 1: Classification report of linear SVM
혼동행렬에서도 마찬가지의 결과를 볼 수 있다. ‘눌림’에 대한 예측 비율이 58%로 나타났지만, 결정 트리의 예측 비율 중 가장 낮은 것이 60%인
것과 비교하면 KNN의 분류 결과는 결정 트리보다 좋지 않은 것을 알 수 있다.
선형 SVM의 경우에는 결정트리와 가장 비슷한 양상을 보이며, ‘기침’에 대한 분류가 가장 잘 된 것으로 나타났다.
그림 25 실험 1 : 선형 SVM의 confusion matrix
Fig. 25 Experiment 1: Confusion matrix of linear SVM
그림 25는 선형 SVM의 혼동행렬을 나타낸 것이다. 정확도는 가장 높았으나, ‘놀람’에 대한 예측 확률은 48%, ‘눌림’에 대한 확률은 52%로 두 가지를
구분하지 못하는 모습을 보인다.
그림 26 실험 1 : SVM(RBF 커널)의 classification report
Fig. 26 Experiment 1: Classification report of SVM(RBF kernel)
그러나 비선형이라고 할 수 있는 SVM의 RBF 커널의 경우에는 그림 26과 그림 27에서처럼 모든 데이터를 ‘눌림’으로 구분하고 있다.
그림 27 실험 1 : SVM(RBF 커널)의 confusion matrix
Fig. 27 Experiment 1: Confusion matrix of SVM(RBF kernel)
4.3 실험 2 : MFCC를 이용한 분류
4.3.1 실험 내용
실험 1이 음성 분석 프로그램들의 지표를 사용했다면, 실험 2는 음성 인식 기술에 사용되고 있는 지표를 사용해 분류한다. 실험 1과 마찬가지로 돼지의
구분, 발성음의 구분 또한 MFCC와 함께 특징으로 사용한다.
MFCC는 각 음성 데이터 당 20개를 사용한다. 돼지의 구분, 발성음의 구분까지 특징으로 사용하므로 실험 2에서 분류에 사용될 특징은 22개가 된다.
데이터를 나누어서 학습, 테스트를 하거나, 분류의 순서와 같은 실험 과정은 모두 실험 1과 동일하다.
4.3.2 실험 결과
실험 1과 마찬가지로 각 분류기의 정확도를 먼저 그림 37로 비교하고, 그림 38을 통해 특징들이 분류에 얼마나 영향을 끼치는지 알아본다.
그림 28 실험 2 : 분류기 간의 정확도 비교
Fig. 28 Experiment 2: Accuracy comparison between classifiers
MFCC를 이용한 분류 정확도에서 결정 트리와 선형 SVM은 정확도가 실험 1에 비해 증가했으며, KNN과 비선형 SVM(RBF 커널)은 감소한 것을
볼 수 있다.
그림 29 실험 2 : 특징들의 중요도
Fig. 29 Experiment 2: Importance of Features
MFCC를 썼을 때는 MFCC가 가장 높은 비율을 차지했으며, 발성음의 구분과 돼지의 구분이 그 다음으로 나타났다. 또한, 실험 1과 다른 특징으로
분류를 했기 때문에 이번에도 각 분류기별 분류 결과표와 혼동행렬을 통해 결과를 분석한다.
그림 30 실험 2 : Decision tree의 classification report
Fig. 30 Experiment 2: Classification report of Decision tree
그림 31 실험 2 : Decision tree의 confusion matrix
Fig. 31 Experiment 2: Confusion matrix of Decision tree
그림 32 실험 2 : k 값에 따른 정확도
Fig. 32 Experiment 2: Accuracy of KNN according to k value
그림 33 실험 2 : KNN(k = 5)의 classification report
Fig. 33 Experiment 2: Classification report of KNN(k = 5)
그림 34 실험 2 : KNN(k = 5)의 confusion matrix
Fig. 34 Experiment 2: Confusion matrix of KNN(k = 5)
실험 1과 비교하여 ‘기침’에 대한 precision은 낮아졌으나, recall이 100%로 매우 높은 수치를 기록했다. Recall이 ‘실제로 참인
것들 중에서 참으로 예측한 비율’이므로 ‘기침’에 대한 예측 확률은 높다고 볼 수 있다.
이는 혼동행렬에서 더 뚜렷하게 나타나는데, ‘기침’에 대한 예측 확률이 100%가 된다. 그러나 ‘놀람’에 대한 구분은 58%로 ‘눌림’과 제대로
구분한다고는 표현할 수 없다.
실험 1과 마찬가지로 KNN에 대한 결과를 보기 전에, k 값에 따른 정확도를 비교한다. 정확도는 교차 검증의 평균값이다.
k를 1부터 10까지의 범위에서 분류를 진행했을 때의 정확도 중에서 k가 5일 때의 정확도가 57.59%로 가장 높았다. 따라서 결과 평가는 k가
5일 때의 KNN으로 진행한다.
실험 1의 결과에 비해 전체적인 분류 평가 지표의 수치가 증가한 것을 볼 수 있다. 무엇보다 ‘기침’에 대한 precision이 특히나 증가했으며,
‘놀람’에 대해서도 precision, recall, f1-score가 10% 이상 증가했다.
KNN은 실험 1과 비교하여 ‘기침’에 대한 분류 확률 자체가 오른 것을 볼 수 있다. 그러나 여전히 ‘놀람’의 데이터에 대해서는 ‘눌림’과의 분류를
어려워하는 것을 확인할 수 있다.
그림 35 실험 2 : 선형 SVM의 classification report
Fig. 35 Experiment 2: Classification report of linear SVM
그림 36 실험 2 : 선형 SVM의 confusion matrix
Fig. 36 Experiment 2: Confusion matrix of linear SVM
선형 SVM은 ‘기침’에 대한 모든 수치가 100%로, ‘기침’에 대해서는 완전히 분류를 했다고 볼 수 있다. ‘눌림’에서도 혼동행렬에서 98%를
나타내는 것으로 보아, 대부분의 데이터를 분류할 수 있다고 봐도 무방하다. 그러나 ‘놀람’에서는 precision이 높음에도 불구하고 recall과
혼동행렬에서의 수치가 약 42%로 여전히 구분을 어려워하는 모습을 볼 수 있다.
RBF 커널 SVM은 실험 1과 마찬가지로 데이터 전체를 ‘눌림’으로 구분한다. 때문에, 본 연구에서는 RBF 커널 SVM은 적합하다고 볼 수 없다.
그림 37 실험 2 : SVM(RBF 커널)의 classification report
Fig. 37 Experiment 2: Classification report of SVM(RBF kernel)
그림 38 실험 2 : SVM(RBF 커널)의 confusion matrix
Fig. 38 Confusion matrix of SVM(RBF kernel)
5. 결 론
실험 1에서는 일반적으로 사용하는 특성에 대해, 실험 2에서는 MFCC를 이용해 분류를 진행했다. 그 결과, 두 실험 모두 ‘기침’에 대한 정확도가
가장 높았으며, ‘놀람’과 ‘눌림’은 비교적 정확도가 낮은 것으로 나타났다. 그 이유는 ‘기침’의 경우 소리가 cough라는 이름으로 단일화 되어있기
때문에 분류에 있어서 다른 특징들보다도 call type에서 쉽게 가를 수 있었기 때문이다. call type이 특징 중요도에서 가장 높은 비율을
차지했던 것이 이 때문이기도 하다.
선형 SVM과 결정 트리의 경우 실험 1과 실험 2 모두 70% 이상의 준수한 수치를 보이고 있지만, ‘기침’에서만큼은 MFCC를 이용한 실험 2의
결과가 95%이상으로 더 좋다. 그리고 비선형 SVM(RBF 커널)의 경우에는 실험 1과 2 모두 ‘눌림’을 제외하고는 거의 분류를 하지 못하는 모습을
보였다.
’기침’을 제외한 모든 상황은 돼지 간의 상호작용에서 일어났다. 그러므로 여러 마리의 돼지의 발성음이 잡음으로 섞였을 수도 있다는 가능성을 배제할
수 없다. 이는 군체 속의 음성을 녹음했기 때문에 하나의 소리만 필터링하기 어렵다는 것이다. 가령 다른 잡음은 다 제거했더라도 다른 돼지의 소리까지
필터링하는 순간 필요한 음성에서의 정보도 사라질 수 있다.
또한, 데이터셋을 구성하는 과정에서 상황에 대한 라벨(label)을 영상만 보고 인위적으로 붙인 것도 전체적인 결과가 고르지 못한 이유가 될 수 있다.
인위적인 판단을 위해서는 충분한 사전지식을 바탕으로 해야 한다. 그리고 돼지 간의 사회화 행동에서 발생하는 소리처럼 다른 행동에도 소리가 비슷한 경우가
있기 때문에 정확한 분류를 위해서는 더욱 상세한 행동분석이 필요하다(59).
본 연구의 결과는 같은 음성이라도 추출한 특징에 따라 분류 결과에 영향을 미칠 수 있다는 것을 보여준다. 그러나 앞서 지적한 문제들로 인해 높은 정확도를
볼 수 없었기 때문에 추가적인 실험을 통해 분류 정확도와 특징과의 상관성을 다시 확인할 필요가 있을 것으로 사료된다.
Acknowledgements
본 연구는 농촌진흥청 연구사업(PJ014863)의 지원으로 이루어진 것임. 본 논문은 서울산업진흥원(IC210002)의 지원으로 작성된 것임.
References
Jonguk Lee, 2018, Sound Noise-Robust Porcine Wasting Diseases Detection and Classification
System using Convolutional Neural Network, Journal of KIIT, Vol. 16, No. 5, pp. 1-13
Y. H. Chung, 2013, Automaticdetection of cow’s oestrus in audiosurveillance system,
Asian-AustralasianJournal of Animal Sciences, Vol. 26, No. 7, pp. 1030-1037
Hafez, S. E., 1975, The behaviour of domestic animals. 3rd ed, Williams and Wilkins
Company: Baltimore, USA.,
McGlone, J., Nicholson, R. I., Hellmann, J. M. Herzog, D. N., 1993, The development
of pain in young pigs associated with castration and attempts to prevent castration-
induced behavioral changes, J. Anim. Sci, Vol. 71, pp. 1441-1446
J. K. Blackshaw, D. N. Jones, F. J. Thomas, 1996, Vocal individuality during suckling
in the intensively housed domestic pig, Appl. Anim. Behav. Sci., Vol. 50, pp. 33-41
P. C. Schon, B. Puppe, T. Gromyko, G. Manteuffel, 1999, Common features and individual
differences in nurse grunting of domestic pigs (Sus scrofa): a multi-parametric analysis,
Behaviour, Vol. 136, pp. 49-66
Shin-Jae Rhim, 2008, Characteristics of Estrus-related Vocalizations of Sows after
Artificial Insemination, J. Anim. Sci. & Technol. (Kor.), Vol. 50, No. 3, pp. 401-406
R. G. White, 1995, Vocalization and physiological response of pigs during castration
with or without a local anesthetic, Journal of Animal Science, Vol. 73, No. 2, pp.
381-386
Erik Marchi, 2018, Generalised discriminative transform via curriculum learning for
speaker recognition, 2018 IEEE International Conference on Acoustics, Speech and Signal
Processing (ICASSP): IEEE
Li Wan, 2018, Generalized end-to-end loss for speaker verification, 2018 IEEE International
Conference on Acou- stics, Speech and Signal Processing (ICASSP) : IEEE
S. Davis, P. Mermelstein, 1980, Comparison of parametric representations for monosyllabic
word recognition in conti- nuously spoken sentences, IEEE Transactions on Acoustics,
Speech, and Signal Processing, Vol. 28, No. 4, pp. 357-366
E. Şaşmaz, F. B. Tek, 2018, Animal Sound Classification Using A Convolutional Neural
Network, 2018 3rd International Conference on Computer Science and Engineering (UBMK),
pp. 625-629
Gerhard Manteuffel, Christian Schön Peter, 2002, Measuring pig welfare by automatic
monitoring of stress calls, Bornimer Agrartech Berichte, Vol. 29, pp. 110-118
K. Elrom, 2000, Handling and transportationof broilers-welfare, stress, fear and meatquality,
Israel Journal of Veterinary-Medicine, Vol. 55, No. 2, pp. 39-45
G. Marx, 2003, Analysis of pain-related vocalization in young pigs, J. Sou. Vib.,
Vol. 266, pp. 687-698
Seunggeun Oh, 2012, Abnormal Sound Detection and identification in Serveillance System,
Journal of KIISE, Vol. 39, No. 2, pp. 144-152
Jonguk Lee, 2014, A Detection of Abnormal Situation in a Henhouse using Sound Information,
Korea Computer Congress, pp. 692-694
McCowan, 2002, Bioacoustic tools for enhancing animal management and productivity:
effects of recorded calf vocalizations on milk production in dairy cows, Appl. Anim.
Behav. Sci., Vol. 77, pp. 13-20
H. Xin, J. A. DeShazer, Daniel W. Leger, 1989, Pig Vocalizations Under Selected Husbandry
Practices, Transactions of the ASAE., Vol. 32, No. 6, pp. 2181-2184
Harris, J. Fredric, 1978, On the use of Windows for Harmonic Analysis with the Discrete
Fourier Transform, Proceedings of the IEEE, Vol. 66, No. 1, pp. 51-83
Harry. Nyquist, 1928, Certain topics in telegraph transmission theory, Trans. AIEE,
Vol. 47, pp. 617-644
P. L. Butzer, S. Jansche, 2014, The exponential sampling theorem of signal analysis
and the reproducing kernel formula in the mellin transform setting, Sampling Theory
in Signal and Image Processing, Vol. 13, No. 1, pp. 35-66
SangYong Shim, 2014, Difference in Voice Parameters of MDVP and Praat Programs according
to Severity of Voice Disorders in Vocal Nodule, Phonetics and Speech Sciences, Vol.
6, No. 2, pp. 107-114
V. Sellam, J. Jagadeesan, 2014, Classification of Normal and Pathological Voice Using
SVM and RBFNN, Journal of Signal and Information Processing, Vol. 5, No. 1
Young-Ik Son, 1997, The Effect of Frequency and Intensity of /a/ Phonation on the
Result of Acoustic Analysis, Journal of the Korean Society of Laryngology, Phoniatrics
and Logopedics, Vol. 8, No. 1, pp. 12-17
Paul Boersma, 1993, Accurate short-term analysis of the funda- mental frequency and
the harmonic-to-noise ratio of a sample sound, Proceedings of the Institute of Phonetic
Sciences, Vol. 17, pp. 97-110: University of Amsterdam
Byeong-gon Yang, 2010, Theory and practice of speech analysis using prat, Mansu PUBLISHER
João Paulo Teixeira, Carla Oliveira, Carla Lopes, 2013, Vocal Acoustic Analysis -
Jitter, Shimmer and HNR Parameters, Procedia Technology, Vol. 9, pp. 1112-1122
Jody Kreiman, Bruce R. Gerratt, 2002, Jitter, Shimmer, and noise in pathological voice
quality perception, The Journal of the Acoustical Society of America, Vol. 112, No.
5, pp. 2446
William Stallings, 2011, Data and Computer Communications, 92: PRENTICE HALL
Carole T. Ferrand, 2003, Harmonics-to-Noise Ratio: An Index of Vocal Aging, Journal
of Voice, Vol. 16, No. 4, pp. 480-487
I. R. Titze, 2015, Toward a consensus on symbolic notation of harmonics, resonances,
and formants in vocali- zation, The Journal of the Acoustical Society of America,
Vol. 137, pp. 3005-3007
Diemo Swatz, 1998, Spectral envelope
Hideki Kawahara, Ikuyo Masuda-Katsuse, Alain de Cheveigné, 1999, Restructuring speech
representations using a pitch- adaptive time-frequency smoothing and an instantaneous-
frequency-based F0 extraction: Possible role of a repetitive structure in sounds,
Speech Communication, 27, pp. 3-4, 187-207
Bäckström Tom, 2020.08.14., Fundamental frequency (F0), https://wiki.aalto.fi/pages/viewpage.action?pageId=149890776(2020.11.24)
Gyeong-Tae Lee, Yong-Hwa Park, 2019, Estimation of Interaural Time Difference based
on Cochlear Filter Bank and ZCPA Auditory Model, Trans. Korean Soc. Noise Vib., Vol.
29, No. 6, pp. 722-734
A. Kern, 2008, Biophysical Parame ters modification Could Overcome Essential Hearing
Gaps, PLoS Comput Biol, Vol. 4, No. 8
J. D. Lim, 2009, The Technology of the Audio Feature Extrac- tion for Classifying
Contents, Electronics and Telecommuni- cations Trends, Vol. 24, No. 6: ETRI, pp. -
M. A. Yusnita, 2013, Analysis of Accent-Sensitive Words in Multi-Resolution Mel-Frequency
Cepstral Coefficients for Classsification of Accents in Malaysian English, Inter-
national Journal of Automotive and Mechanical Engineering, Vol. 7, No. 1, pp. 1053-1073
N. Ahmed, T. Natarajan, K. R. Rao, 1974, Discrete Cosine Transform, IEEE Transactions
on Computers, Vol. c-23, No. 1, pp. 90-93
O’Shaughnessy Douglas, 1987, Speech communication: human and machine: Wiley
K. Y. Kim, H. J. Go, H. T. Kim, 2012, Comparison of Seasonal Concentration of Ammonia
and Hydrogen Sulfide in Swine House according to Pig’s Growth Stage, Journal of Agriculture
& Life Science, Vol. 46, No. 2, pp. 163-168
Alessia Diana, 2019, An ethogram of biter and bitten pigs during an ear biting event:
first step in the develop- ment of a Precision Livestock Farming tool, Applied Animal
Behaviour Science, 215, Netherlands
Xiaojin Zhu, Andrew B. Goldberg, 3, Introduction to semi-supervised learning., Synthesis
lectures on artificial intelligence and machine learning, Vol. 3, No. 1: Morgan &
Clay-pool Publishers
David L. Olson, Dursun Delen, 2008, Advanced Data Mining Techniques, 1st ed, Heidelberg,
Berlin: Springer Science & Business Media
H. Deng, G. Runger, E Tuv, 2011, Proceedings of the 21st International Conference
on Artificial Neural Networks (ICANN), 2, Espoo, Finland: Springer
N. S. Altman, 1992, An introduction to kernel and nearest- neighbor nonparametric
regression, The American Stati- stician, 46(3), Oxfordshire, UK: Taylor & Francis,
Ltd.
B. S. Everitt, 2011, Miscellaneous Clustering Methods, Cluster Analysis 5th ed, Chichester,
Uk: John Wiley & Sons, Ltd
Hanhakyong, 2009, Introduction to Pattern Recognition: Three-dimensional learning
through MATLAB practice, Hanbit Media, pp. 482-504
H. William, 2007, Numerical Recipes: The Art of Scientific Computing 3rd ed, New York:
Cambridge University Press.
Yin-Wen Chang, Cho-Jui Hsieh, Kai-Wei Chang, Michael Ringgaard, Chih-Jen Lin, 2010,
Training and Testing Low-degree Polynomial Data Mappings via Linear SVM, Journal of
Machine Learning Research, Vol. 11, No. 48, pp. 1471-1490
Alain Celisse, 2014, Optimal cross-validation in density estimation with the L²-loss,
The Annals of Statistic s, Vol. 42, No. 5, pp. 1879-1910
Geoffrey J. McLachlan, Kim-Anh Do, Christophe Ambroise, 2004, Analyzing Microarray
Gene Expression Data, America.: A John Wiley & Sons, Inc.
S. Engelberg, 2008, Digital Signal Processing: An Experimental Approach: Springer
Science & Business Media
M. S. Bartlett, 1948, Smoothing Periodograms from Time-Series with Continuous Spectra,
Nature, Vol. 161
M. S. Bartlett, 1950, Periodogram Analysis and Continuous Spectra, Biometrika, Vol.
37, pp. 1-2
P. D. Welch, 1967, The use of Fast Fourier Transform for the estimation of power spectra:
A method based on time averaging over short, modified periodograms, IEEE Transactions
on Audio and Electroacoustics, Vol. AU-15, No. 2
Mathieu Blondel, 2012. 09.04., sklearn.preprocessing.LabelEncoder, https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html/
(2020.11.19.)
Jeremy N. Marchant, Xanthe Whittaker, Donald M. Broom, 2001, Vocalisations of the
adult female domestic pig during a standard human approach test and their relationships
with behavioural and heart rate measures, Applied Animal Behaviour Science, Vol. 72,
No. 1, pp. 23-39
저자소개
2019년 건국대학교 의학공학부 졸업
2021년 동대학원 의학공학과 석사
2021년~현재 ㈜피앤씨솔루션(전임)
2019년 건국대학교 의학공학부 졸업
2021년 동대학원 의학공학과 석사
2021년~현재 ㈜피앤씨솔루션(전임)
2021년 건국대학교 의학공학부 졸업
2021년~현재 동대학원 의학공학과 석사과정
2016년~현재 건국대학교 의학공학부 학사과정
2007년 건국대학교 의학공학부 졸업
2009년 동대학원 석사, 박사(‘20년)
2008년 ㈜지우솔루션(선임)
2010년~14년 JW중외메디칼연구소(책임)
2019년~현재 ㈜피앤씨솔루션(이사)
1987년 건국대학교 축산학과 졸업
1989년 동대학원 석사
1994년 일본 국립니이가타대학 박사
1998년~현재 건국대학교 식품학과 교수
1995년 연세대학교 간호학과 학사
2014년 동대학원 석사, 박사(’19년)
2019년~현재 제주한라대학교 간호학과 조교수
1992년 연세대학교 전기공학과 졸업
1994년 동대학원 석사, 박사(‘00년)
2000년~09년 삼성전자종합기술원(책임)
2004년~현재 건국대학교 바이오메디컬공학과 교수