eBook

AI 탑재 신호 처리 응용 프로그램에서의 데이터 및 모델링

4장: 심층 신경망을 위한 입력값 생성

4장

심층 신경망을 위한 입력값 생성


원시 데이터에서 직접 학습하는 것을 종단간 학습이라고 합니다. 현대의 딥러닝 시스템은 영상 및 컴퓨터 비전 문제에서 종단간 학습을 자주 사용합니다. 그러나 신호 데이터의 경우 실제 환경에서 종단간 학습은 극히 드물게 사용됩니다.

거의 모든 실제 신호 처리 응용 사례에서는 일종의 특징 추출 기법을 사용하여 차원과 크기를 줄입니다.

이러한 단계는 LSTM(장단기 기억) 신경망과 CNN(컨벌루션 신경망), 이 두 가지 딥러닝 신경망에서 다음과 같은 형태를 취합니다. 선택하는 방법에 따라 수행해야 하는 입력값 전처리의 차이를 확인할 수 있습니다.

LSTM(장단기 기억) 신경망

CNN(컨벌루션 신경망)

절

응용 사례마다 다른 변환 기법 필요

신호에서 특징을 추출하는 경우에는 일반적으로 더 나은 시간 분해능을 얻기 위해 중첩될 수 있는 버퍼, 또는 프레임 단위로 신호를 구성하는 것이 좋습니다.

시간-주파수 변환이라고도 하는 특징 추출 기법의 상당수는 FFT(고속 푸리에 변환) 또는 이와 유사한 연산을 통해 주파수 영역의 이러한 각 버퍼를 변환하는 것을 기반으로 합니다.

이 방법으로 얻는 가장 단순한 유형의 출력은 STFT(단시간 푸리에 변환) 및 스펙트로그램이라고 할 수 있습니다. 이는 2차원 신호 표현이므로 원래 영상 작업을 위해 설계된 신경망 유형에서 매우 자주 사용됩니다.

몇 가지 일반적인 출력 유형은 다음과 같습니다.

기본 스펙트로그램
이해하고 구현하기 쉬움

기본 스펙트로그램을 사용하여 2차원 영상 데이터로 변환된 신호 데이터의 시각적 표현.

지각적 공간(예: Mel, Bark) 스펙트로그램
음성 및 오디오 응용 사례에 맞게 간략함

지각적 공간 스펙트로그램을 사용하여 2차원 영상 데이터로 변환된 신호 데이터의 시각적 표현.

웨이블릿 스케일로그램
우수한 시간 분해능, 비주기적 신호에 유용함

웨이블릿 스케일로그램을 사용하여 2차원 영상 데이터로 변환된 신호 데이터의 시각적 표현.

상수 Q 변환
낮은 주파수에서 우수한 분해능

상수 Q 변환을 사용하여 2차원 영상 데이터로 변환된 신호 데이터의 시각적 표현.

음성 및 기타 가청 신호를 다룰 때는 대체로 사람들이 주파수를 인지하는 방식과 비슷하게 주파수가 스케일링되는, 더 진보된 유형의 스펙트로그램을 볼 수 있습니다. 많은 경우에 신호의 시간-주파수 특징은 시간 파형보다 훨씬 뚜렷하게 구분됩니다. 사람의 눈으로도 시간-주파수 영역에서 더 쉽게 특징을 식별할 수 있습니다.

절

정리

특징을 추출하여 데이터셋에 레이블을 지정하면 각각 원래의 레이블과 연결된 특징 배열을 얻게 되며, 이것을 신경망 훈련에 사용하게 됩니다.

데이터 증대는 원래의 데이터셋에 있는 데이터보다 더 많은 데이터에서 특징을 계산할 수 있도록 해줍니다. 특징 계산을 위해 멀티코어 머신 또는 GPU와 같은 가속 하드웨어의 도움이 필요할 수 있습니다.

많은 MATLAB 특징 추출 함수가 GPU에서의 실행을 지원합니다. 이러한 함수에서 처리하는 데이터가 많을수록 속도 향상의 폭도 커집니다.

GPU에서의 신호 처리에 대해 자세히 알아보려면 MATLAB에 “gpuArray”를 입력해 보십시오.

레이블이 지정된 신호의 집합을 보여주는 다이어그램. 여기서부터 나와 ‘특징 추출’이라는 레이블이 지정된 화살표. 이는 상응하는 특징 배열 집합으로 이어지며, '훈련'을 위한 화살표는 신경망 아이콘을 가리킵니다.

특징을 추출함으로써 원래의 레이블을 갖는 특징 배열을 얻게 됩니다.

레이블이 지정된 신호 집합을 보여주는 다이어그램. 각 화살표는 '증강' 레이블이 있고 더 많은 신호로 계층이 형성됩니다. 여기서 '특징 추출' 레이블이 지정된 화살표가 나옵니다. 이는 특징 배열 집합으로 이어지며, '훈련'을 위한 화살표는 신경망 아이콘을 가리킵니다.

데이터 증대는 원래의 레이블을 보존하면서 특징을 추출할 데이터를 늘려줍니다.

훈련된 신경망은 특징과 천이를 기반으로 트리거 단어 마스크를 예측하고 벨 소리를 출력으로 생성합니다. 훈련된 신경망은 이제 classify 함수에 사용되어 마스크 천이를 검출하기 위한 몇몇 코드와 일련의 특징을 기반으로 트리거 단어 마스크를 예측하고 적절한 시점에 출력으로 벨 소리를 생성합니다.

특징 추출

% Extract MFCC from whole analysis buffer
[coeffs,delta,deltaDelta] = mfcc(buf,SampleRate,...
   'WindowLength',winLength,...
   'OverLength',ovlpLength);
 
% Concatenate and normalize features
featureMatrix = [coeffs,delta,deltaDelta];
featureMatrix = (featureMatrix - M)./S;

추론

% Detect Keyword with LSTM network (Mark around speech keyword)
featMask = classify(net,featureMatrix.');

트리거

% Debounce and re-align detection in time domain
(timeMask, chimePosition) = debounceAnalyzeDetectionMask(featMask);
 
% Generate chimes for detection events
chime = generateChimeAtSample(chimePosition,...

지식 테스트

AI 탑재 신호 처리 응용 사례를 개발하기 위해 무엇이 필요할까요?

간소하고 입증된 딥러닝 모델과 많은 양의 데이터, 분야별 전문 지식, 현재 다루고 있는 특정 응용 사례에 적절한 툴입니다. 딥러닝 시스템의 품질은 그 시스템을 훈련하는 데 사용되는 데이터에 좌우된다는 점을 기억하시기 바랍니다.