머신러닝 기본 정리(각 키워드 핵심 내용 말할 수 있어야)

Learning, cost-sensitive learning, 

Inference

open-set protocol/closed-set protocol

hard (negative) mining

Logistic Regression

Naive Bayes

holdout method(non-exhaustive), k-fold cross-validation(non-exhaustive), leave p out cross validation(exhaustive), stratification, 

DB(Data Base), ElasticSearch, 

NLP(Natural Language Processing), LSI(Latent Semantic Indexing), LDA(Latent Dirichlet Allocation), CBOW(Continuous Bag Of Words), Skip-gram(Hiererchical Softmax, Negative Sampling, Subsampling frequent words), FastText(Subword-Information Skip-Gram), IF-IDF, Skip-thought, Co-occurence matrix

(Directed/Undirected)Graphical Model, CRF(Conditional Random Field), HMM(Hidden Markov Method), 

Generative/Discriminative Model

Kernel Method(Positive-Definite Kernel, RKHS(Reproducing Kernel Hilbert Space), Representer Theorem)

Production Quantization

SIFT(Scale-Invariant Feature Transform)

Deep Residual Learning

k-means clustering

k-nearest neighbors

instance-based, model-based,

GAN(Generative Adversarial Network), 

Robo-Advisor

Deep Taylor Decomposition

self-attentive sentence embedding


EM algorithm

Gibbs Sampling

topic model에서의 perplexity, coherence

ReLU, Swish, 

learning rate, iteration, batch size, epoch

batch/standard gradient descent, stochastic gradient descent, mini-batch gradient descent

batch normalization??

unsupervised learning, supervised learning, semi-supervised learning(PU learning)

macro-averaging, micro-averaging,


uniform distribution

hypergeometric(N개 중 M개가 빨간거, K개를 뽑는데 빨간것의 개수가 x일 확률, 정상/불량으로도 가능)

bernoulli(1번 시도 중 성공(x=1)확률)

binomial(N번 시도 중 x번 성공할 확률)

negative binomial(K번째 성공까지 시도한 횟수가 x번일 확률)

geometric(1번째 성공까지 시도한 횟수가 x일 확률)

poisson(주어진 시간 구간 동안 사건이 일어난 횟수)


gamma(sub:chi-squared with degree p of freedom, exponential, related:Weibull, inverse-gamma)

Normal(related:lognormal, cauchy)

(beta부터정리)


Kuller Leibler Divergence(DL(P||Q))

Frobenius norm

textual entailment

self-attention

scikit-learn tokenizer


Pearson Correlation Coefficient, Spearman's Correlation Coefficient

Deep Taylor Decomposition

A Structured Self-attentive Sentence Embedding




논문정리

2018, Multi-task learning for author profiling with Hierarchical Features


내용:

character-level feature representation, 한 word w당, char sequence얻고, 각 char마다 one-hot encoding한 다음에 weight W 곱, 이후 각 char마다 얻어진 representation을 LSTM1 input으로 사용, 이후 각 char마다 얻어진 LSTM hidden state 중 마지막 char에 해당하는 state를 word의 representation으로 보고, 각 word의 representation들을 다시 LSTM2에 넣고 LSTM2의 마지막 word에 해당하는 hidden state를 non-linear layer 하나 통과 시킨 것을 document의 character-level feature로 사용(T-dim)

word-level feature representation, 한 document x당, 여러 filter, 여러 window size로 CNN을 돌려 여러 features를 얻은 다음 max-over-time pooling사용하여 얻은 것을 fully connected non-linear layer 통과시킨 것을 document의 word-level feature로 사용(T-dim)

topic-level feature representation, 구축한 LDA를 바탕으로, 한 document의 topic distribution을 non-linear layer 통과시킨 것은 document의 topic-level feature로 사용(T-dim)

이후 3개의 representations을 pointwise multiplication한 결과를 softmax에 넣어 classification(남자/여자, 나이, job), multi-task

학습은 cross-entropy 함수를 각 task마다 L_age, L_gender, L_job 설정한 뒤, L=L_age + L_gender + L_job한 L을 minimize하게 learning


의의:

topic level representation없이 했을 때가 성능이 가장 떨어짐, 따라서 topic level feature의 영향력이 크다

multimodal, early fusion을 사용한 것이고, pointwise multiplication이용


2015, A Review and Meta-Analysis of Multimodal Affect Detection Systems

핵심:

MM과 UM의 90가지 결과들을 비교해서, 언제 MM쓰는게 좋은지 안좋은지 분석


Research Questions:

2015년 당시 MM의 trends?(training data로 뭘 쓰는지, fusion은 어케하는지, 등)

MM을 써서 나타난 효과가 무엇인지?

시스템레벨로봤을 때, MM의 구체적형태를 보고 accuracies를 predict할 순 없는지


결론:

MM쓰면 modest하게 improvement가 보통 있더라

왜 modest정도밖에 안되냐?

multimodal data를 활용을 덜해서? 

multimodal model이 덜 complicated해서?

애초에 애매하게정의된 emotion이라는 것에 대한 연구가 부족해서?


recommendations for future work

1. 높은 정확도의 nonauthentic context, person dependent 보다는 naturalistic context의 낮은 정확도가 훨씬 값어치가 있다.

2. 아무리 좋은 결과라도 비교가 없으면 덜 중요해진다.

3. 혼동 및 좌절 같은 감정에 대한 탐색해보기

4. model-fusion with time-varying relationships among different modalities

5. crowd-sourcing 혹은 적은 annotated data만으로도 가능한 semisupervised learning 이용


2018, Multimodal Machine Learning:A Survey and Taxonomy


2018, Efficient Large-Scale Multi-Modal Classification


2017, Deep Multimodal Learning, A survey on recent advanced and trends


2018, Deep Imbalanced Learning for Face Recognition and Attribute Prediction


2018, Recent Trends in Deep Learning Based Natural Language Processing


2017, A Structured Self-attentive Sentence Embedding


2017, Distance measures in author profiling


2018, Emphasizing personal information for Author Profiling_ New approaches for term selection and weighting


2009, LDA를 이용한 대용량 블로그 문서 처리


총 데이터 개수 1000

A인 경우 20

B인 경우 980

따라서 Event Rate(A) = 2%


이럴 때 쓸 수 있는 방법이 무엇이 있을까?


1. Data level에서


Random Under-Sampling

:B를 다 쓰는게 아니라, 비복원으로 몇개만 뽑아쓰기(ex:10%), 

A인 경우 20

B인 경우 98

Event Rate(A) = 20/118 = 17%

장점:데이터를 적게 사용하므로 run time과 storage prob을 improve

단점:

정보 손실

10%만 뽑은 98개가 980개를 대표하지 않은 biased sample이 될 수도 있다.


Random Over-Sampling

:A를 다 복사해서 쓰기(ex 20배)

A인 경우 400

B인 경우 980

Event Rate(A) = 400/1380 = 28.9%

장점:

정보 손실이 없다

Random Under-Sampling보다 성능이 좋을 때가 많다

단점:overfitting이 일어날 확률이 높아짐


Cluster-Based Over Sampling

:A를 KNN, B를 KNN 각각 clustering한 다음에 each cluster of A의 개수가 다 같게 oversampled, each cluster of B의 개수가 다같게, A의 size와 B의 size가 같게 oversampled한다.

장점:each cluster의 크기가 다를 때 좋음

단점:overfitting이 일어날 확률이 높아짐


Informed Over Sampling:Synthetic Minority Over-sampling technique(SMOTE)

:A에서 몇개를 뽑아 사용하되, 걔를 완전히 복사하기보다 Synthetic Instance(합성 유사 사례)를 만들어 사용한다.

장점:

Random Over-sampling할 때 생기는 overfitting 문제를 완화시킨다.

정보 손실이 적음

단점:

Synthetic Instance를 만들 때 다른 class와 overlapping할 것을 고려하지않고 진행될 때가 생겨서 overlapping가능성이 더 늘어난다.

데이터가 high dimensional인 경우 효과적이지 못하다


Modified Synthetic Minority Over-Sampling Technique(MSMOTE)

:A에서 몇개를 뽑아 Safe samples/Border samples/Noise samples로 분류한다. (Safe는 classifier의 성능을 높혀줄, Noise는 classifier의 성능을 낮게만드는, Border는 Safe와 Noise에 넣기 애매한 놈들), 이후 synthetic Instance를 만든 다음에 Safe sample은 kNN중 택해 사용하고, Border Sample은 가장 가까운 것만 synthetic으로, Noise sample의 경우에선 뽑지 않는 방법을 이용한다.


2. Algorithmic Ensemble Techniques

Bagging Based

:전체 데이터에서 복원추출로 Sample을 N개 만들고, 각 Sample마다 Classifier를 만들어서, Classifier를 10개 사용한 Classifier를 만드는 것이다.

장점:

Stability와 accuracy 상승

variance를 낮춤

overfitting 가능성 낮춤

misclassification rate를 낮춤

noisy data인 경우 boosting보다 성능 좋음

단점:각각의 classifier들이 성능이 어느정도 괜찮아야만 효과가 있음










'MachineLearning > 기본' 카테고리의 다른 글

Speech Recognition  (0) 2018.03.28
신호분석 정리  (0) 2018.03.22
[First Edition]머신러닝 기본  (0) 2016.05.11

speaker independent:training이 필요없는 음성인식

speaker dependent:training을 필요로하고 그럼 정확도가 더 올라가는 음성인식

 

DTW(Dynamic Time Warping)

LPC(Linear Predictive Coding)

Cepstrum

HMM(Hidden Markov Model)

n-gram language model

back-off model(multiple length n-gram model)

maximum likelihood estimation

generative model:(input,output)의 joint distribution을 모델링하고 goal로 삼는 방법

discriminative mode:(output|input)의 conditional distribution을 모델링하고 goal로 삼는 방법

feedforward ANN

RNN

LSTM(Long short-term memory)

vanishing gradient problem이 없으며

discrete time steps의 수천번 이전의 내용을 기억하는 효과가 있어서 speech recognition에 유용

acoustic model:audio signal과 phonemes(음소)사이의 관계를 밝히는 모델링

language model:words의 sequence에 해당하는 distribution model

In the long history of speech recognition, both shallow form and deep form (e.g. recurrent nets) of artificial neural networks had been explored for many years during 1980s, 1990s and a few years into the 2000s.[47][48][49] But these methods never won over the non-uniform internal-handcrafting Gaussian mixture model/Hidden Markov model (GMM-HMM) technology based on generative models of speech trained discriminatively.

GMM(Gaussian mixture model)

TDNN(Time Delay Neural Networks)

Autoencoder

RNN-CTC model

LAS(Listen, Attend and Spell, Attention-based ASR model)

LSD(Latent Sequence Decomposition)

WLAS(Watch, Listen, Attend and Spell)

MD-LSTEM(2D-LSTM, Multidimensional LSTM)

 

'MachineLearning > 기본' 카테고리의 다른 글

How to handle imbalanced classification problems  (0) 2018.05.23
신호분석 정리  (0) 2018.03.22
[First Edition]머신러닝 기본  (0) 2016.05.11

일단 머신런이에 싹다 넣고 다 이해되면 정리



'MachineLearning > 기본' 카테고리의 다른 글

How to handle imbalanced classification problems  (0) 2018.05.23
Speech Recognition  (0) 2018.03.28
[First Edition]머신러닝 기본  (0) 2016.05.11

*기본 기법 관련

 

Markov Chain/Process

HMM

RNN

Viterbi

short-term Fourier transform, sliding Blackman window, hop size, zero-padded, L2-normalized, dynamic range

 

*분야별

 

*코드 인식(Chord Recognition) 및 음성 인식(Voice Recognition)

 

acoustic model:audio signal에 집중한 model

musicological(or language) model:연속적인 chord label을 고려하는 model

 

RNN 사용시:

복잡한 long-term temporal dependencies가 반영되어 음악계에 성능이 좋다.

HMM을 능가한다.

 

 

 

 

 A/D(Analog to Digital), 참고자료:  

https://m.blog.naver.com/PostView.nhn?blogId=angleriniraq&logNo=220914462863&targetKeyword=&targetRecommendationCode=1

https://m.blog.naver.com/PostView.nhn?blogId=mino_0206&logNo=220664693016&proxyReferer=http%3A%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D2%26ved%3D0ahUKEwi8oorKgoXbAhUIE5QKHXPrDccQFggrMAE%26url%3Dhttp%253A%252F%252Fm.blog.naver.com%252Fmino_0206%252F220664693016%26usg%3DAOvVaw1jT0FTPy6kVTGK7gVpX54I

A to D는 다음과 같은 절차를 거친다.

1. Sampling

2. quantization

3. coding


 

Decibel(dB): 

데시벨 = 10*log(P/P_0),

P_0:reference power(참고 소리, 주로 0데시벨의 소리 크기이며, 0데시벨은 사람이 겨우 들을 수 있는 소리의 크기),

log은 밑이 10인것을 사용

P의 소리의 크기의 데시벨의 정의이다.

10데시벨은 0데시벨보다 10배 큰 소리

20데시벨은 0데시벨보다 100배 큰 소리

60데시벨은 40데시벨보다 100배 큰 소리

(일상대화가 60데시벨, 록밴드는 110데시벨정도가 된다.)

디지털 오디오는 "6데시벨 규칙"이라는 법칙을 주로 적용한다. 1비트(depth)당 6데시벨을 할당하여 오디오의 강도(소리의 크기)를 표현하는 방법

 

Sampling rate, Sample rate: 1초당 추출되는 샘플의 수

ex)44.1KHz란 1초당 44100개로 샘플을 추출, 대개의 CD음질은 44.1KHz이다.

Sample rate가 높으면 정확한 오디오 데이터(고음질), 하지만 음성 데이터 분석시 데이터 양이 많아져서 처리하기 힘들다.

 

bit rate:초당 전송되는, 처리하는 데이터 양

(보통 bps라 함은 bits per second이다. kb:킬로비트, Mb:메가 비트, kB:킬로바이트 MB:메가 바이트, Mbps:초당 메가비트(주로 인터넷 속도에 씀))

 

bit depth:bit depth가 자연수 n이라 함은, 0부터 최댓값까지 2^n의 단계로 나눈 디지털 데이터를 가리킨다. n이 1커질수록 데이터는 정확해지지만, 데이터양은 2배씩 늘어난다.

 

sample size:bit depth와 마찬가지 개념인데 다른 것을 가리킴, bit depth가 8이면 즉 2^8, 1byte로 표현하겠다는 것, 이때 sample size는 1, 만약 bit depth가 16이면 2byte로 sample size는 2

 

frame size:채널수*sample size

채널수(mono면 1, streo면 2, 5.1채널은 6이 된다.)

frame의 길이와 오해하면 안됨, frame의 길이는 시간의 길이를 가리킨다. sampling rate*frame의 길이=1개의 frame에 있는 sample의 개수

 

Ex)16비트(depth) 48KHz 오디오란, 1초에 48000개의 sample을 얻으며, 0dB~96dB(16*6, 6데시벨 규칙에 의해)의 소리의 크기를 2^16개로 세분화시킨(즉 2byte로 표현) 정밀도로 샘플링해 표현하는 음향 신호라는 의미이다.

 

PCM(Pulse Code Modulation):Sampling부터 시작해 양자화(quantization)을 거쳐 2진 신호로 변환하는 것 까지의 일련의 과정을 가리킨다.

 

mel scale:

MFCC(Mel-frequency cepstral coefficients):


analog->digital->analog 처리 관련

Sampling, Shannon Sampling Theorem


phasor표현법

신호이론에서 대부분 2pi*f를 w라 나타낸다. 익숙해질 필요가 있다.

임의의 신호 x(t)=Acos(2pi*f*t + Φ)는 x(t)=Xcos(2pi*f*t) - Ysin(2pi*f*t)로 나타낼 수 있다. (코사인 덧셈-뺄셈 정리)

이것을 복소수 z=X+Yi로 나타내는 것을 phasor representation of x(t)이라 한다.(X=AcosΦ, Y=AsinΦ)

f가 시간에 대해 일정할 때, phasor표현의 가장 큰 장점은

x(t)=Xcos(2pi*f*t) - Ysin(2pi*f*t) <-> Z=(X,Y) 

dx(t)/dt <-> Z, 이때 Z는 x(t)의 Z에 2pi*f*i(즉 wi)를 곱해주기만 하면된다.

(여기서 미분했으니 w가 밖으로 곱해지겠고, sin과 cos은 서로 미분하면 실수에선 평행이동이지만, 복소평면상의 좌표로 봤을 땐 90도 회전이동이고 그것은 i곱셈연산에 해당되기 때문이다.)


변환관련

FS(Fourier Series)

CTFS(Continuous-time Fourier Series)

input:유한길이(t-domain)에서 정의된 함수 or 주기함수, 공역은 C여도 된다.

output:함수를 정형파의 선형 무한 급수로 나타낸 것일 뿐

별다른 약속 없이는 다음 관례를 익히도록 한다. 

input의 함수를 [-L,L]로 다룬다. 

FS사용시 복소수에서의 FS에 익숙해지도록한다. sin/cos말고

의미:

각 주파수(sin(wt), cos(wt))에 해당하는 진폭, 위상(phrase)을 알 수 있다.


DTFS(Discrete-time Fourier Series)

input:sampling period(T), sample size N, T와 original analog 신호로부터 얻은 유한개의 함숫값들(x(0), x(T), x(2T), ... x((N-1)T)), 그리고 애초에 원래 함수는 주기함수(유한길이였다면 그걸 이어붙인 주기함수 등일 때)

output:함수를 정형파의 선형 유한 급수로 나타낸 것이다.

의미:

DT domain(Discrete time domain)이란, 0, T, 2T, ..., (N-1)T에서 T를 제외한 0,1,2,...,(N-1)을 정의역으로 하는 것을 가리킨다.

sample time T(최소주기)일 때 DT domain에선 0<=f<=f_s=1/T가 0<=f<=1이 된다.

LT(Laplace Transform)(input: / output:)

double-sided LT

single-sided LT

FT(Fourier Transform)

CTFT(Continuous-time Fourier Transform)

input:실수전체(t-domain)에서 정의된 L1 function, 공역은 C여도 된다.

output:실수전체(f-domain)에서 정의된 (적분형태의)function, 공역은

의미:

푸리에 변환하여 얻은 함수(X(f)), X(f)의 크기는 진폭의 밀도함수(의 절반)이다. X(f)의 각은 f에서의 위상(phrase)를 가리킨다.

DTFT(Discrete-time Fourier Transform)

input:time-resolution(T), sample size N, T와 original analog 신호로부터 얻은 유한개의 함숫값들(x(0), x(T), x(2T), ... x((N-1)T)) 

output:실수전체(f-domain)에서 정의된 (급수형태의)function, 공역은

의미:

x(iT)에 pulse function을 곱한다음 CTFT을 씌운 것이 정의이다.

결과는 1/T을 주기로 하는 함수가 나온다(frequency-domain에서의)

반대로 frequency-domain에서 이산적인 값들(delta f(frequency-resolution)를 간격으로)로 pulse function곱한다음 CTFT의 inverse를 씌우면씌워서 얻은 time-domain의 결과는 1/f를 주기로 하는 함수가 나온다.

DT domain(Discrete time domain)이란, 0, T, 2T, ..., (N-1)T에서 T를 제외한 0,1,2,...,(N-1)을 정의역으로 하는 것을 가리킨다.

sample time T(최소주기)일 때 DT domain에선 0<=f<=f_s=1/T가 0<=f<=1이 된다.


DFT(Discrete Fourier Transform)

01.pdf

02.pdf

03.pdf

04.pdf


input:time-resolution(T), sample size N, T와 original analog 신호로부터 얻은 유한개의 함숫값들(x(0), x(T), x(2T), ..., x((N-1)T))

output:

[0,NT]에서 얻은 N개의 이산신호으로부터 구한 DFT는

원래의 연속시간 x(t)의 푸리에 변환 X(f)를 주파수상에서 frequency-resolution (1/NT)로 표본화한 이산 스펙트럼과 같다(다만 크기만 1/(delta t) 을 이산스펙트럼에 곱하면 DFT랑 같다.)

역변환도 존재

고려사항

Shannon Sampling Theorem, Analog(Original)의 관심가는 최대주파수를 B라 할 때 

delta t <= 1/(2B) // time-resolution delta t (f=(1/delta t) >= 2B에서 유도됨, f는 주파수영역에서의 주기길이)

delta f <= gamma // gamma는 신호 x(t)의 지속 구간(Shannon...을 f->t로 반대로 써서 얻은)(T_0 = 1/(delta f) >= gamma에서 유도됨, T_0는 신호영역에서의 주기길이)

N= T_0/delta t = 1/(delta t * delta f), 샘플 개수 N

실제 할 때 T_0선택하고(조금 크게), delta t을 선택(어느정도 작게)

T_0을 크게할수록 주파수의 높은 정밀도를 얻지만 N값이 커지므로 계산량이 증가한다. 

FFT(Fast Fourier Transform)

의미:DFT를 빠르게(계산량이 N^2에서 N*log(N)으로 줄여주는)해주는 방법

방법:N을 2의 power로 만들고 복소 지수함수의 특성을 이용한 것(zero-padding하는 이유)

STFT(Short-term Fourier Transform)

DFT를 하는 데에 있어서, window function을 정해서 적당히 옮겨가면서 계속 DFT를해서 시간영역에 따른 주파수 정보를 얻어내는 기법

실제론 DFT말고 FFT를 쓴다. sampled input signal에 window function을 씌운 것에 FFT씌워서 주파수의 진폭과 위상을 분석하는 것을 STFT라 한다.

STFT를 사용하는 데 결정해야될 parameters

window type(Blackman, Hanning etc)

window length L

FFT size N

frame offset(혹은 hop size라 불리는)I



time sampling(아날로그 신호(시간에 대한) 함수를 컴퓨터가 처리할 수 있게 digital화 한 다음, 다시 아날로그 신호로 바꾸는 과정)

-x_c(t):아날로그 오리지날 신호

-y_c(t)=x_c(t)*p_c(t), p_c(t):uniform impulse train이라 불리는 신호

여기서 y_c(t)의 정의역을 sample period T의 정수배로 제한시키고, DT domain화 시키면 x_d[n]을 얻는다.

-y_c(t)는 비주기 연속신호이므로 CTFT

-p_c(t)는 주기를 T로 하는 연속신호이므로 CTFS

-p_c(t)에 CTFT도 적용

-관심사

x_c(t)을 CTFT하여 얻은 X_c(f)와 x_d[n]을 DTFT하여 얻은 X_d(f)사이 관계는 무엇이며, X_d(f)을 통해 X_c(f), x_c(t)을 복구할 수 있는가?(X_c(f)만 복구하면 당연히 x_c(t)로 복구는 되겠지만)

-y_c(t)=x_c(t)*p_c(t), 모두 CTFT 적용하고 곱셈<->convolution을 이용하면 

Y_c(f)=X_d(Tf)=1/T sum over all integer k X_c(f - (k/T))를 얻는다. 

따라서 X_d(Tf)는 X_c(f)를 여러개 옆으로 붙이고 1/T배 한 것이다.

여기서 shannon sampling theorem이란, 

원래 신호의 CTFT인 X_c(f)에 대해 te B>0 s.t. |f|<B이면 X_c(f)=0, 이러한 B에 대해 T<1/(2B)인 time-resolution T를 잡았다면 왜곡현상(aliasing)이 없다는 정리 이다.

Y_c(f) 혹은 X_d(Tf)를 통해 X_c(f)로 바꾸기 위해선 an ideal low pass filter를 사용하면 된다.(어느 특정 간단한 함수일뿐)

-정리

아날로그 신호->x_d[n]만듦(적절한 T, N)->DTFT적용하여 주파수 분석->원래로 돌릴 땐 Y_c(f)=X_d(Tf)에서 Y_c(f)에 an ideal low pass filter를 곱하기만하면됨


frequency sampling(위의 time sampling에서 DTFT를 적용하여 주파수 분석에서, 결국 DTFT의 결과가 연속적인 변수를 갖게 되므로 frequency sampling도 해줘야 결국 컴퓨터 알아먹고 일처리를 하게 된다.)

-x_d[n]에 DTFT를 적용하여 얻은 연속f의 무한급수에서 유한개의 합만을 택하자. 이것을 DFT라 한다.

 

STFT쪽 다 정리하기(Window, truncation, hopsize, sample rate, frequency의 resolution 정의 등)


신호분석에서는 복소수 i말고 j를 사용한다.


2pif:각속력의 크기, rad/s단위 혹은 분당회전수 RPM을 쓰기도 함

스펙트럼이란, {(주파수, 그 주파수에 해당하는 진폭)}을 가리킨다.

Ex) Acos(wt)=A/2(exp(iwt)+exp(-iwt)), 이경우 스펙트럼은{(-f, A/2), (f,A/2)}

Ex)cos(wt)-0.2cos(3wt)는

{(-3f, 0.1), (-f, 0.5), (f, 0.5), (3f, 0.1)}


다음에 익숙해지자

f_0 = 1kHz

이면 time domain에서는 1ms(0.001초)가 주기(period)


푸리에 시리즈의 핵심내용:

모든 "주기 함수"는 하모닉의 합으로 나타낼 수 있다.

(기본주파수의 정수배를 하모닉이라 한다. exp(하모닉)*푸리에계수)

이때 주기함수의 기본 주기(fundamental period) 혹은 기본 주파수(fundamental frequency)

주기함수를 하모닉의 합(푸리에급수)으로 나타낼 때의 필요한 것은 기본주파수와 신호 x(t)의 함수 explicit형태(그래야 푸리에 계수 적분을 하니까)

만약 주기함수의 기본주기는 알지만 x(t)을 explicit하게 표현을 못한다면 X_n을 구할 때 구분구적법의 partial sum N까지만 사용(여기서 N은 sample 개수)해서 구하면 (x의 FFT)*1/N = X_n이 된다.(근사)

즉, 기본주기 T, sample 개수 N을 알면 가능




푸리에 계수를 구하는 것은 orthogonality를 사용

(주의할 것은 conjugate씌우고 내적)


푸리에시리즈의 주된 성질

superprinciple(linear)

(시간에서의)컨볼루션<->곱셈(주파수의 계수)

(time shift)x(t-t_0)<->exp(-jwnt_0)*X_n

(Parseval's thm)시간 영역 평균 전력은 주파수 성분의 제곱의 합과 같다.


------------------------------------------

푸리에변환

:비주기함수(x(t))를 X(f)로 바꾸는 것


x(t)가 비록 실수(real)신호이더라도 X(f)는 복소수가 나오며

X(f)의 크기는 f의 진폭성분(스펙트럼)을 다룸

X(f)의 각은 f의 위상성분(스펙트럼)을 다룸


x(t)가 실수이면 X(f)는 대칭성을 갖는다.

X(f)의 크기는 우함수

X(f)의 각은 기함수


기본적인 함수들의 푸리에변환 이해(그래야 읽고 비슷하게 생긴것을 예상하기 쉽다.)

δ(t)dirac delta(t)<->1인 상수함수(즉 모든 주파수를 다 갖는다)

1<->dirac delta(f), δ(f), 즉 0인 주파수만을 갖는다?

exp(j2pif_c t)<->δ(f-f_c), 즉 1개의 주파수만을 갖는다

cos(2pif_c t)<->1/2δ(f-f_c) + 1/2δ(f+f_c)

Π(t/τ) <-> τsinc(τf) (즉 rect 신호는 sinc형태로 주파수가 흔들리는 형태)

sum over all int i δ(t-iT) <-> 1/T * sum over all int i δ(f-i*1/T)



푸리에변환을 x(t)의 식을 알면 구할 수 있겠지만 현실적으론 불가능

FFT을 이용하여 보통 구한다.

먼저 필요한 것은 Ts(sample사이의 간격)을 설정(자동으로 Fs도 결정됨)

그리고 nTs마다의 sample 획득(0,x(0)), (Ts,x(Ts)), ...의 총 N개

이때 X(Fs * n/N)는 (즉 X(f)에서 f=Fs/N의 n번째 nFs/N일때의 X(f)의 값)FFT[x]*Ts가 된다. 즉 X(Fx * n/N)을 0~(N-1)까지의 부분합으로만 근사하면 얻는다.


푸리에변환의 주요 성질

불확정성원리(time resolution과 frequency resolution을 둘다 늘릴 순 없다.)

쌍대성

컨볼루션


컨볼루션이란, 

time-domain의 곱<->frequency-domain의 컨볼루션

time-domain의 컨볼루션<->frequency-domain의 곱


신호x(t)의 전력 스펙트럼(power spectrum)

10log|X(f)|^2이 전력 스펙트럼의 정의이다


주파수 영역 필터의 종류

필터는 LTI시스템

H(f)의 요구 조건(스펙)을 설계하고자 하는 목적


주파수 관점에서 필터의 종류

LPF(Low pass filter), HPF(high pass filter), BPF(Band pass filter)

저주파수만 통과, 고주파수만 통과, 중간 주파수만 통과(보통 tuner로 사용됨, 라디오같은)


구현 관점에서 필터의 종류

FIR:Finite impulse response, t-domain의 필터의 길이가 유한한

IIR:Infinite impulse response, t-domain의 필터의 길이가 무한한(다만, t->inf일 때 진폭은 0에 가까워지지만)


--------------------------------------------------------------------------------------------------------------------------------------------------------------

frequency resolution이란, frequency의 한개의 bin의 길이














논문별 분석

Audio Chord Recognition with Recurrent Neural Networks

Learning Deep Audio Features

1. STFT로 magnitude spectrogram 구함

window:Blackman (따라서 FFT의 size는 언급안함, 만약 무한길이의 window function을 truncate하여 쓰는 경우라면 FFT size도 언급 필요)

window size:500ms

hop size:64ms

기타: 

truncated at 4kHz(즉 4kHz 초과 주파수는 제거)

zero-padded





 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*기본 컨셉

-Hidden Layers의 개수와 nodes 개수

-Hidden layer는 abstract representation of the training data를 가리킨다. (Abstraction)

-Hidden layer가 1개여도 충분히 input->taget인 function에 approximation되지만,(Universal Approximation Theorem) 여러개 사용하면 pros and cons가 있다.

-장점:더 좋은 결과(주어진 데이터 양만으로는)

-단점:Vanishing Gradient, Overfitting


-Error종류

-학습방법 종류

-SGD


 

*각종 모델링 기법(NN, FNN, RNN, LSTM, etc)

 

*핵심예제

 

*논문내용 요약, 테크닉





------------------

*심층 신경망(Deep Neural Networks, DNN)

-단일층 신경망과의 핵심적인 차이점은 층의 개수가 입력과 출력 층을 포함해 3개가 넘는 경우에 우리는 이 신경망이 깊다(deep)고 한다.

-첫 layer의 노드(특징, feature)들은 단순하고 구체적이며 후반으로 갈수록 더욱 복잡하고 추상적이다. 

-라벨링이 되어있지않더라도 각 입력값들끼리의 유사도를 비교하여 비슷한 것끼리 군집화 시켜주는 데에도 능하다.

-일반적인 기계 학습과 다른 점은 특징 추출(feature extraction)이 자동적이라는 것

-그 예로 RBM(Restricted Boltzmann Machines)가 있다.


*Autoencoder

-3 layers로 구성

-Input = output = target

-중간에 Hidden Layer 1개, nodes개수는 input의 nodes개수보다 적게

-2개의 Weight Matrix를 학습시킨다. 결국 input의 node보다 적은 abstraction을 얻는다.

-Hidden layer를 feature detector라 한다.

-Deep Learning에서의 overfitting문제를 해결할 수 있는 도구다.


*RBM(Restricted Boltzmann Machines, RBM)

-Generative Model

-2 layers로 구성(input, hidden)

-심층 신경망의 학습을 돕기 위해 쓰이기도 한다.

-연달아 은닉충을 잇고 학습하는 것이 각자 다른 층위의 특징값(feature hierarchy)을 학습하는 과정입니다. 심층 신경망은 이런 구조로 더 추상적이고 복잡한 데이터를 이해합니다. 은닉층을 새로 추가할 때마다 기존 층의 데이터를 근사할 수 있도록 가중치의 학습이 이뤄집니다. 이런 과정을 층별 탐욕 비지도 선행학습(layerwise, greedy unsupervised pre-training)이라고 합니다.

-각 층마다 최대한 오차를 줄이는 방향(D_(KL))->layerwise, greedy

-라벨의 정보가 없이 입력 데이터만을 가지고 이루어짐->unsupervised

-학습한 결과를 다시 다른 학습에 쓸 수 있기 때문에->pre-training

-이렇게 선행학습이 된 가중치는 데이터의 분포를 이미 알고있기 때문에 이 값으로 초기화한 심층 신경망은 더 좋은 성능을 보인다.(즉 RBM을 쓰는 이유는 초기가중치를 얻기 위함도 있음)

-특히 unsupervised learning에 쓰인다.

-입력층과 출력층 2개로만 구성되어 있다.

-입력층의 확률분포와 출력층으로부터 얻어온 추정한 입력층에서의 값의 확률분포에서 D_(KL)이 작아지는 방향으로 학습(자세한 이해 필요)

-이 과정을 재구성(reconstruction)이라 한다.

-입력층과 출력층의 바이어스가 다를 수 있다.

-구체적인 내용

-v:visible units, h:hidden units

-E(v,h):=energy와 softmax를 사용하여 p(v,h)의 distribution을 얻는다. 그리고 p(v)도 얻는다.

-Contrastive divergence learning procedure    



신호의 요소

T:period, 주기

f:frequency, 주파수, 


note)

인간은 20Hz 이하의 저주파는 듣지 못한다.

인간은 22kHz 이상의 고주파는 듣지 못한다.

어떠한 신호(소리)가 갖고 있는 주파수 폭(저주파수~고주파수까지의 범위)를 (주파수) 대역폭이라 한다.

일반적으로 사람의 음성은 300Hz~4kHz, 음악은 20Hz~20kHz까지의 대역폭을 갖는다.

T=1초 <-> f=1Hz

T=1ms(1/1000초) <-> f=1kHz

T=0.22ms <-> f=44kHz


기본적인 audio(analog)데이터를 컴퓨터가 처리하는 방법

Analog(Original) ->Digital ->Analog

여기서 

Analog(Original) ->Digital을 Step 1

Digital ->Analog을 Step 2라 하자.


SR(sampling rate):초당 signal이 read된 횟수(Step1에서) 대개는 44.1kHz, 48kHz 등으로 표현


note)

SR=44kHz <-> signal의 sample들 간의 시간 간격=1/44000=0.22ms


Fmax(frequency range 혹은 Nyquist Frequency):signal을 sample화하여서 read할 때 SR이 주어져있겠고 Shannon Sampling Theorem에 의해 이렇게 sample화한 신호를 복기하여서(Step 2) 들을 때의 최대 진동수(Fmax)는 SR/2이다.(즉 Shannon Sampling Theorem의 결과로서 복기(FFT등을 하여서)해서 듣는 최대진동수를 SR/2라는 것을 알 수 있고 그것을 Fmax라 하자.)

즉 Fmax는 Analog(Original)가 큰 진동수를 포함한 상황에서 SR이 그 큰 진동수를 표현하기엔 적은 양이었다면 우리가 듣는 진동수는 낮은 SR때문에 Analog(Original)가 가진 큰 진동수를 듣지 못하고 Step 2에서 최대 Fmax까지만 듣게 된다.(왜곡 aliasing이 발생)

따라서 SR을 결정하는데에 있어서 Analog(Original)의 최대 주파수(F)를 안다면, SR은 2F보다는 크게해야만 한다는 것이다. 그래야 Step 2에서 원래의 Audio에 가진 최대주파수까지 포함되어서 나온다.


어떠한 Analog(Original)(혹은 결과의 Analog든)이 최대진동수를 가지는 경우를 bandlimited라고 한다.

하지만 현실에서 이렇게 최대진동수(즉 일정 진동수 이상의 진동수를 포함하지 않는 데이터는 거의 없다.)


Analog(Original)과 Step 2의 결과물인 Analog 상에는 반드시 차이가 있을 수 밖에 없다.(애초에 Analog(Original)이 bandlimited할 경우도 없을 뿐더러 있었다 하더라도, Step 2에서의 처리과정에서는 푸리에변환등이 결국 컴퓨터가 무한개의 항에대해서 시행하진 않기 때문)

이렇게 해서 발생한 원본과의 차이를 Aliasing이라 한다.


-------------------------------------------------


Sampling:표본화, analog signal을 discrete in time

discrete-time signals을 continuous-time signals로 바꾼느 것을 reconstruction이라 한다.

Quantization:양자화, analog signal을 discrete in frequency

A/D converter라 함은 sampling과 quantization을 함께 하는 것을 가리킨다.


int over all real t |x(t)|^2 dt를 Total Energy라 한다.


----------------------------------------------------

즉 window legnth는 주파수를 분석하는데 쓸 시간

hop size는 주파수를 분석하는 것을 얼만큼 자주할거냐와 관련

(즉 magni.. spectrum에서 주파수 데이터의 시간간격을 조절하는건 hop size)




*Zero padding의 의의


N개의 샘플에 윈도우 씌운다음 윈도우 밖에 zero를 더 넣는 것을 zero padding

zero padding을 한다음에 DFT한 하면은

안한것보다 일단 DFT의 x축의 개수가 더 늘어난다.(늘린 zero만큼)

(DFT의 x축에서의 sample개수가 f의 bin의 개수인지는 모른다.???? STFT를 더 봐야할듯)

그리고 side lobes가 늘어난다.

zero padding을 많이 할수록 side lobes의 개수가 줄어들고 크기가 작아질까?아니다


zero padding을 하는 이유

X(k)(즉 DFT의 결과)가 더 detail하게 보인다.

이것이 주 사용 이유:sample의 개수가 2의 거듭제곱이면 DFT의 계산이 빠르다.


DFT를 통해 원래의 정보를 제대로 recover하려면 window의 size를 늘려야함

(window의 size를 키우면 main lobe의 크기가 커지고 side lobe의 크기를 줄이고 main이든 side든 lobe의 width를 줄임)



-------------------------------------------------------------------------------


주파수의 정밀도란 

The frequency resolution of a spectrum-analysis window is determined by its main-lobe width (Chapter 3) in the frequency domain, where a typical main lobe is illustrated in Fig.5.6 (top).  https://www.dsprelated.com/freebooks/sasp/Frequency_Resolution.html

For maximum frequency resolution, we desire the narrowest possible main-lobe width, which calls for the rectangular window (§3.1), the transform of which is shown in Fig.3.3. When we cannot be fooled by the large side-lobes of the rectangular window transform (e.g., when the sinusoids under analysis are known to be well separated in frequency), the rectangular window truly is the optimal window for the estimation of frequency, amplitude, and phase of a sinusoid in the presence of stationary noise [230,120,121].


----------------------------------------------------------------------------------

1옥타브 차이난다는 것은

주파수에서 2배차이(혹은 1/2배 차이)


pitch란 음높이(즉 주파수 혹은 A4, B3 등으로 표현한다.)


mel scale:사람의 청각은 저주파에서는 주파수의 변화를 잘 인지하는데, 고주파에서는 잘 인지 못한다. 즉 주파수가 어느정도 변했는데도 같은 음이라고 생각하는 그 주파수의 구간길이가 저주파일때 짧으나 고주파일땐 길다. 따라서 mel scale = 상수 * ln(1 + (f/700))으로 pitch를 다른 scale로 만든 것일 뿐이다.



-----------------------------------------------------

PCA가 아마 Courant-Fischer 결과아닌가 싶은데


'MachineLearning > 기본' 카테고리의 다른 글

How to handle imbalanced classification problems  (0) 2018.05.23
Speech Recognition  (0) 2018.03.28
신호분석 정리  (0) 2018.03.22

+ Recent posts