KAIST 문화기술대학원의 GCT634 수업 자료로 공부한 내용입니다. 수업을 직접 들은 것은 아니라 혼자 자료로만 공부한거라 틀린 부분이 있을 수 있음!
Definition of Machine Leanring
- “컴퓨터 프로그램은 P가 측정한 것처럼 task T에서 성능이 향상되면, T와 performance measure P와 관련하여 exerience E로부터 배운다고 한다.”
- Tasks T
- Classification, Regression, Transcription, Machine Translation, Structured output, Anomaly etection, Synthesis and Sampling, Imputation of missing values, Denoising, and Density Estimation (listed from the DL book)
- Experience E
- Data and their correspondence: supervised /unsupervised learning/reinforcement learning
- Performance P
- Loss function, accuracy metrics
In Musical Context
- Tasks T
- 분석 task: 음악 장르.무드 분류, 음악 자동 태깅, 자동 음악 기록, 소스 분리
- 합성 task: 사운드 합성, 음악 생성(자동 작곡/편곡), expressive performance rendering
- Experience E
- Music data (audio, MIDI, text, images) and their correspondence
- Performance P
- objective measure: loss function, accuracy metrics (예: F-score)
- subject measure: user test(human test 등)
읽어볼 것
- F-score(=F-measure = F1 measure)
Classification Tasks in Music
- 분류는 음악 분석 작업에서 가장 일반적으로 사용되는 지도 학습 approach이다.
- 오디오 데이터와 해당 클래스 label을 사용해 모델을 train하고 새로운 test audio에서 label을 예측함
- frame-level: pitch estimation
- note-level: instrument recognition
- segment-level: genre classification
Classification Model for Music
- 분류 모델은 보통 아래의 단계를 따름
- audio data representation: waveforms, spectrograms, mel-spectrogram
- feature extraction: task와 abstracton level에 따라 크게 좌우됨
- level이 높을수록 input size가 길어지고 feature가 복잡해짐)
- classifier: 최종 분류를 위해 feature vector와 class template 사이의 distance 측정
- 좋은 feature를 잘 잡는 것이 중요하다!!
읽어볼 것
- mel-spectrogram
- feature vector
Traditional Machine Learning
- task에 hand-design된 feature 사용
- 도메인 지식 기반 (예: 음향, 신호처리)
- Mel-frequency cepstral coefficient (MFCC), 음계, spectral statistics
- standard classifier 사용
- 로지스틱 회귀, SVM, MLP 등
- 장점
- 적은 데이터셋으로도 ㄱㄴ
- classifier를 빠르게 훈련시킬 수 있다
- hand-design된 feature를 해석할 수 있음
- 단점
- 도메인 지식 필요
- feature design 어려움
- the two-stage approach is sub-optimal
- baseline 알고리즘으로는 좋음
읽어볼 것
- MFCC
- MFCC(Mel-Frequency Cepstral Coefficient) 이해하기
- 대박이다.. 읽으면서 쏙쏙 이해됨… 내가 잘 모르는 다른 개념들도 쉬운 말로 설명되어 있으니 여러 번 읽어보자!!
- 비전공자 문돌이가 설명해주는 MFCC 벡터(vector) 1탄
- MFCC(Mel-Frequency Cepstral Coefficient) 이해하기
- spectral statistics
Deep Learning
- 신경망 네트워크 모듈을 사용해 feature representation(대상의 속성을 표현하는 방식)을 학습
- representation learning (feature를 스스로 학습하는 것)
- fully-connected, convolutional, recurrent, pooling, non-linear layers
- output의 abstraction level이 높을수록 더 많은 layer를 쌓음
- 오디오 데이터 표현도 학습 ㄱㄴ (end-to-end learning)
- gradient 기반 학습: 모든 신경망 모듈이 미분 가능하며, 새로운 custom layer가 미분가능한 한 추가할 수 있음
- 장점
- traditional ML에 비해 도메인 지식을 덜 요구함. 이미지나 음성 등 다른 도메인에서 잘 작동하는 모델을 갖다 써도 된다.
- train된 모델 재사용 ㄱㄴ (transfer learning)
- 많은 ML 과제에서 높은 성능을 보였음
- 단점
- label된 대규모 데이터셋과 모델을 훈련시키는데 시간이 오래 걸림
- semi-supervised/unsupervised/self-supervised learning이 활발히 개발되고 있음
- overfitting을 방지하기 위한 정규화 필요
- 많은 정규화 방법들이 개발되고 있음
- 신경망 설계 및 hyperparameter 탐색도 신경써서 해줘야 함
- 모델이랑 hyperparameter 최적화는 또 다른 연구주제임 (예: AutoML)
- 학습된 feature를 이해하는게 어려움
- feature 시각화 기법
- 한 매개변수가 학습된 feature의 sub-dimension을 제어하는 disentangled learning models (분리 학습 모델)
- label된 대규모 데이터셋과 모델을 훈련시키는데 시간이 오래 걸림
읽어볼 것
- end-to-end: 처음(input)부터 끝(output)까지 인간이 개입하지 않는 것
- disentangle
- 각 feature를 좁게 정의된 변수로 분해(break down)하거나 분리(disentangle)해 분리된 차원으로 인코딩하는 비지도 학습 기법.
- Disentanglement
- Disentangled Representation Learning
Example: Mel-Frequency Cepstral Coefficient (MFCC)
- 음색을 추출하는데 가장 많이 사용되는 audio feature
- 오디오 프레임에서 spectrum envelop 추출: pitch 정보 제거
- envelop이란 파형의 끝을 서로 연결해 파형을 둘러싸듯이 그린 선을 말한다.
- legacy 음성 인식 시스템의 표준 오디오 기능
- 오디오 프레임에서 spectrum envelop 추출: pitch 정보 제거
- 연산 단계
- mel-spectrum: mel-filter bank 사용
- Discrete Cosine Transform (DCT): frequency가 낮은 코사인 커널들의 집합. spectrum envelope에 해당하는 주파수에 걸쳐 서서히 변화하는 mel-spectrum의 추세를 포착한다.
궁금한 점
- legacy speech regcognition이 뭘까? legacy가 그 legacy인가..?
읽어볼 것
- mel-scale
- mel은 melody를 의미하는 거였다…
- 음성인식 기초 이해하기
- 기초 개념들 설명
- mel-spectrum
- mel-filter bank
- mel-scale에서 linear하게 구간을 N개로 나눠 구현한 triangular filter
- DCT
- Frequency domain & FFT
- FT, DFT, FFT, STFT, DCT 설명이 이해하기 쉽게 되어있고 mel-filter bank도 읽어보기
- Frequency domain & FFT
Representation Learning Point of View: MFCC
- We can replace the hand-designed modules with the trainable modules
- DFT, mel-filterbank, DCT은 선형 변환임
- 절댓값(진폭)이랑 로그 압축은 비선형 함수
- MFCC에서 선형 변환은 hand design 되지만 학습 가능한 모듈들을 사용하면 더 최적화 될 수 있음
Example: Chroma
- 악보는 pitch(옴높이) class와 옥타브 번호로 표시된다
- pitch class: C, C#, D, D#, E, F, F#, G, G#, A, A#, B
- 옥타브 수: 0, 1, 2, 3, 4, 5, …
- 예: C4(중간 C), E3, G5
- 옥타브 차이는 가장 일치하는 피치 간격이다
- 따라서 같은 피치 클래스에 속함
- “pitch helix(피치 나선)” 으로 표현 ㄱㄴ
- 원기둥을 따라 올라가면서 바닥으로 내렸을 때 같은 위치인 점들은 같은 pitch class에 속함
- chroma(반음): pitch organisation의 고유 원형성
- height: 한 번 회전할 때 마다 한 옥타브씩 증가
- 12개의 피치 클래스에 대한 오디오 프레임의 에너지 분포 계산
- 주파수를 악보로 변환하고 악보로부터 피치 클래스를 가져옴
- 음색 정보를 제거하고 고조파(harmonic) 정보 추출
- 음악 동기화, 화음 인식, 음악 구조 분석, 장르 분류 등에 유용하게 사용된다
- 계산 단계
- 12개 피치 클래스에 DFT 또는 constant-Q transform 적용
읽어볼 것
- harmonics(고조파)
- 소리는 기본 주파수(fundamental freq)와, 기본 주파수의 정수배인 배음으로 구성되어 있다
- 음원에 따라 배음 구조가 달라지기 때문에 배음 구조를 알아내면 소리의 고유한 특징을 찾아내는 거임!
- 음색은 어떤 기본 주파수에 포함된 여러 고조파 성분의 주파수를 의미함
- 음색(Timbre)은 어떻게 결정되는가?
- constant-Q transform
- 데이터 시리즈를 freq domain으로 변환
- 음계(반음계)로 변환. data series를 frequency domain으로 transform함
- freq 축이 log 단위로 변환되고, 각 주파수에 따라 해상도가 다양하게 처리되기 때문에 (저주파는 저해상도, 고주파는 고해상도) 음악을 처리하는데 FT보다 유리함
- 위키피디아
Representation Learning Point of View: Chroma
- hand-design된 모듈을 훈련 가능한 모듈로 교체할 수 있다
- DFT, CQT, chroma mapping은 선형 변환
- 절댓값 계산은 비선형 함수
- chroma에서 선형 변환은 hand design되지만 훈련 가능한 모듈을 사용하면 더 최적화 시킬 수 있음
Summary
- representation learning(또는 feature learning)의 관점에서 ML 도입
- 전통적인 ML 접근법에서는 hand design된 feature representation을 설계했다. feature가 추출되면 standard한 ML 알고리즘은 사용했음
- 딥러닝 접근법에서는 네트워크 아키텍처를 hand design한다. feature representation은 신경망 모듈과 최적화를 통해 학습됨.