본문 바로가기

Research113

소리에 대한 사람의 인지적인 특성 Mel scalemel scale의 핵심은 사람이 멜로디를 인지하는 방식대로, hz에 대해 log scale을 취하겠다는 것이다. 데시벨소리의 크기인 amplitude를 log scale로 처리해주는 것. 이는 사람이 자극의 크기(소리의 크기)를 log scale로 인지하는 [베버-페히너의 법칙](https://ko.wikipedia.org/wiki/%EB%B2%A0%EB%B2%84-%ED%8E%98%ED%9E%88%EB%84%88%EC%9D%98_%EB%B2%95%EC%B9%99)에서 기초한다. https://m.blog.naver.com/PostView.nhn?blogId=msnayana&logNo=80100281096&proxyReferer=https:%2F%2Fwww.google.com%2F ht.. 2021. 1. 7.
Decibel과 SPL(Sound Pressure Level) Decibel과 Sound Pressure Level(SPL)우선 벨은 단순히 P2과 P1의 비율에 log_10을 취한 것으로 두 값의 상대적인 비율을 나타내는 값이다. 보통 분자인 P2는 output signal을 의미하고, P1은 input signal을 의미한다.그다음 데시벨은 벨에서 1/10을 한 값이다. 보통의 경우 그냥 Bel은 너무나 큰 값이라서 쓰기가 매우 불편하다. 3 Bel 만해도 1000배를 의미하기 때문에 실제로 사용하려면 소수점이 발생하기 쉽다. 그래서 여기에 1/10을 곱해서 30 dB가 1000배를 의미하도록 만든 것이 바로 데시벨이다. 또한 데시벨은 기본적으로 log_10 을 사용하므로, 데시벨 수치가 +10 씩 증가할 때마다 실제 값은 기준치의 10배씩 증가하게 된다. (물.. 2020. 12. 22.
Smooth Approximation LogSumExpLogSumExp는 max()의 smooth approximation이다.그 이유는 exp를 취하게 되면, 숫자가 큰 값의 영향력이 지수적으로 커지게 되는데, 이것들을 덧셈을 하게되면 숫자가 작은 값들은 영향력이 매우 줄어들게된다.그다음 log를 취해서 다시 exp의 역과정을 하게 되면, 사실상 영향력이 큰 숫자만 의미를 갖게 되므로 max함수와 유사한 기능을 하게 된다. https://en.wikipedia.org/wiki/LogSumExp Softmaxsoftmax는 argmax()의 smooth approximation이다.argmax의 결과물이 one-hot encoding으로 표현되는 상황에서 사실상 softmax의 결과물은 argmax와 같은 솔루션을 갖는다. 특히 temper.. 2020. 8. 6.
레이더와 라이다 - 레이더(Radar): 전자기파를 방출하고 돌아오는 시그널을 통해 주변의 물체를 파악 - 라이다(Lidar): 레이저를 방출하고 돌아오는 시그널을 통해 주변의 물체를 파악레이저는 직진하도록 가지런히 모은 전자기파를 의미하며, 따라서 라이다는 레이더에 비해 더 고해상도이다. http://blog.naver.com/e_mobis/221979032096 2020. 7. 21.
Information Bottleneck Information Bottleneck Method 한마디로, input X와 latent T의 정보량은 최소가 되면서 동시에 latent T와 target Y의 정보량은 최대가 되어야한다. https://en.wikipedia.org/wiki/Information_bottleneck_method 2020. 6. 12.
Pseudo Label 원 모델이 틀린 데이터에 대해서, pseudo-labeling할 때 class를 맞춰야만 유의미한 성능이 증가한다. 모델이 underfitting 된 상황에서만, 이러한 pseudo-labeling이 동작하는게아닐까? 데이터가 부족해서 블러리한 디시전바운더리가 있는 지점의 sharpness를 증가시켜서, 모델의 underfitting을 해결한다.음어렵다... 근데 이게 블러리한 영역에서 양쪽 방향으로 동일한 개수의 x가 생성되면...? 다만, 여기에 thresholding을 해서 좀 더 확실한 클래스에 대해서만 학습을한다면? 근데이건 애초에 블러리하지 않다는건데..게다가 overconfident문제가 있음.. 2020. 6. 12.
Probability Calibration Probability Calibrationscikit-learn 사이트에 정말 친절하고 상세하게 잘 설명되어있다.https://scikit-learn.org/stable/modules/calibration.html#calibration 아주 간단히 insight만 적자면 이러하다. 애초에 LogisticRegression처럼 모델 자체가 sigmoid 함수를 이용한 확률을 return하고, 이 확률을 NLL로 학습시키면 자연히 probability분포가 confidence와 동치가 된다. 그런데 SVM같은 모델은 output과 loss가 확률 및 NLL과 관련이 없어서, probability가 confidence를 갖지 않고, 항상 bias를 갖는 prediction 분포가 생긴다. 그래서 이러한 문제를.. 2020. 4. 17.
Forward Looking Problem, Omniscient(Oracle) Forward Looking Problem기본적으로 time-series데이터를 이용한 future forecasting task에서는 절대적으로 미래의 정보가 예측 모델(함수)의 input으로 들어가는 것이 엄격히 금지된다.특히 금융 모델의 경우, 미래 주가를 validation셋으로 사용하고, 여기서 구한 단순 1차 통계(mean값)를 사용해 과거의 데이터인 training셋을 normalize하기 위해서 사용하는 것 만으로도 엄청난 문제가 된다. 그 정도로 future 정보는 엄격히 사용이 금지되어야 하는 것이 원칙적으로는 맞다. Time-series Cross-validation그래서 이러한 종류의 time-series forecasting하는 task에서 cross-validation을 할 때에.. 2020. 3. 16.
Graph Neural Networks 0. Convolutional Neural Networks의 Graph 해석Karate club graph, colors denote communities obtained via modularity-based clustering (Brandes et al., 2008) 위와 같은 그래프 형태의 데이터를 학습하기 위한 가장 좋은 네트워크 아키텍쳐는 무엇일까? 바로 Graph Convolutional Networks이다. GCN은 널리 알려진 Convolutional Neural Networks에 Adjacency Matrix를 도입하여 보다 데이터의 structure를 보다 일반화된 형태의 그래프로 정의한 것이다. Adjacency Matrix란 아래와 같은 graph가 있을 때, 각 node간에 연결(e.. 2020. 1. 30.
다양한 Convolution Layer Convolution기본적으로 convolution layer는 fully connected layer에서 spatial(이미지의 가로세로) 영역을 잘게 쪼개고, 그만큼 weight sharing을 시킨 아키텍쳐이다.그러나 feature dimension(=channel, depth)에 대해서는 여전히 fully connected를 유지하고 있다. 즉 모든 input channel을 섞어서 각각의 output channel로 연결하는 과정이 fully connected라는 의미이다. 수식으로 말하자면 input channel이 256 dim이고 output channel이 128 dim이라면, feature dim에 대한 weight matrix는 [256x128]로 fully connected 이다. .. 2020. 1. 30.
Bayesian Inference Machine Learning 에서 궁극적으로 추구하는 목표는 P(X'|X) 를 알아내는 것이다. (X' : 예측하고자 하는 데이터 , X : 기존에 관측된 사건의 데이터) 즉, 기존에 관측된 사건의 데이터 X를 이용해서 앞으로 일어날사건 X'에 대해 예측하는 것이다.만일, X 없이 그냥 P(X')를 계산한다는 것은 기존에 일어난 사건 데이터 전혀 고려하지 않고, 오직 수학적 모델만으로 확류를 계산하겠다는 의미이다. 이는 machine learning이라 부를 수 없고, 일반적으로 데이터 X를 고려할 때보다 훨씬 부정확한 확률 추론을 하게된다. 좀 더 직관적인 예를 들면, 두개의 박스 A와 B에서, A에는 빨간공이 99%, B에는 파란공이 99% 들어 있다고 하자. 이때 한 사람이 무작위로 두 박스중 하.. 2020. 1. 29.
Advanced Supervised Learning Advanced Supervised Learning Active LearningUnlabeled data에 대해 MC dropout을 inference를해서 confidence를 측정해서 낮은것부터 labeling한다.똑같은 방법으로 loss prediction을 해서 loss가 큰 것부터 labeling할 수도 있다. Online Service Data + Active Learning감독학습 모델의 실서비스를 하면서 계속해서 들어오는 input x에 대해, 모든 데이터를 전부 labeling할 수는 없다. 따라서 이 중에서 어떤 데이터를 labeling할 지 우선순위를 정해야하는데 이 때 active learning이 필요하다. Multi-task Learning에서 난이도에 따른 Overfitting.. 2020. 1. 28.
The Bitter Lesson 번역 The Introduction of Reinforcement Learning의 저자로 유명한 Richard Sutton의 2019년 5월 13일에 올라온 AI에 대한 글을 번역해보았다. (역자: 곽동현, 윤상웅) The Bitter Lesson 씁쓸한 교훈 70년간의 AI연구로부터 깨달을 수 있는 가장 큰 교훈은 바로 계산을 이용하는 일반적인 방법론이야말로 궁극적으로, 큰 격차를 두고도 가장 효율적이라는 것이다. 이에 대한 궁극적인 이유는 바로 무어의 법칙, 더 일반화해서는 유닛 당 계산 비용이 지수적으로, 꾸준히 감소하고 있기 때문이다. 대다수의 AI 연구는 agent가 사용가능한 계산자원이 일정하다는 조건에서 행해졌으나(이 경우 인간의 지식을 최대한 이용하는 것이 오직 유일한 성능 향상의 방법일 것이.. 2020. 1. 17.
음성인식 기초 이해하기 # 발음기호와 문자표현- phoneme: 음소, 가장 작은 소리의 단위. 쉽게 말해 영어사전의 발음기호를 생각하면 된다. - grapheme: 자소(=문자소), 가장 작은 문자의 단위. 발음기호로 표현되기 이전의 원래 문자를 의미한다. 그리고 대부분의 경우 알파벳 1개가, phoneme 1개에 대응 된다. ex) help -> h / e / l / p그러나 항상 phoneme과 1:1대응은 아니다. 예를 들어 shop 에서 sh는 2개의 알파벳이 묶어서 ʃ 으로 발음되므로, 2개의 알파벳이 1개의 grapheme에 대응 된다.ex) shop -> ʃ / ɑː / p경우에 따라서 최대 4개의 알파벳이 1개의 graphpeme에 대응 되기도 한다. ex) weight -> w / ei / t - monoph.. 2019. 12. 29.
소리 합성 사람 목소리의 주파수목소리의 fundamental frequency의 경우 남성 85~180hz, 여성 165~255Hz이다.그런데 전화통화 기술에서는 목소리의 범위를 300~3400Hz로 가정하고, 이를 voice frequency라고 한다. 그리고 목소리를 전송하는 채널은 4kHz를 쓰며 이에 따라 최소한 2배(Nyquist-Shannon의 샘플링이론에 의해)가 되는 8kHz로 샘플링을 해서 목소리를 pcm으로 변환한다. https://en.wikipedia.org/wiki/Voice_frequency#:~:text=The%20voiced%20speech%20of%20a,frequency%20band%20as%20defined%20above. Voice Synthesis에서의 두가지 큰 방법- con.. 2019. 12. 9.
Residual connection 2019. 10. 22.
각종 Normalization technique • Batch Normalization: 개별 input feature에 대한 통계를 구한다.(mini-batch내의 모든 데이터와 모든 시공간 dimension을 across out) • Layer Normalization: 개별 instance에 대한 통계를 구한다.(모든 feature와 모든 시공간 dimension을 across out) 특히 각 seq마다 input feature의 스케일이 다를때 유용하다. ex) 시끄러운 wav 파일, 조용한 wav 파일 • Instance Normalization: 개별 instance에서, 개별 input feature의 통계를 구한다.(모든 시공간 dimension을 across out) 이것은 사실 통계라고 말하기 힘듦. 그냥 그 값 1개를 가져오는 것.. 2019. 10. 22.
물리학에 기반한 모델 # Ising Mode Ernst Ising에 의해 만들어진 모델로, 원자의 spin을 나타내는 수학적 통계 모형이다. 각각의 변수는 -1 or +1 의 값을 가지고, 일반적으로 격자 형태의 모양에 배열되어 있고, 인접한 이웃과만 서로 영향을 주고 받음 2019. 5. 15.
강화학습, Exponentially weighted average계산하기 https://gist.github.com/imcomking/b1acbb891ac4baa69f32d9eb4c221fb9 def exponentially_weighted_matrix(discount, mat_len): DisMat = np.triu(np.ones((mat_len, mat_len)) * discount, k=1) DisMat[DisMat==0] = 1 DisMat = np.cumprod(DisMat, axis=1) DisMat = np.triu(DisMat) return DisMat def exponentially_weighted_cumsum(discount, np_data): DisMat = exponentially_weighted_matrix(discount, np_data.shape[0.. 2019. 1. 22.
PID 제어 # PID Controller: 산업적으로 매우 넓게 사용되는 제어 시스템으로, 수학이나 물리학적으로 유래된 모델이기 보단, 순수히 실용적인 목적으로 만들어져서 널리 사용되고 있는 공학적인 모델이다.https://en.wikipedia.org/wiki/PID_controller#Proportional_term P, I, D 세가지 요소로 우리가 원하는 target value를 만들어내기 위해 최적의 제어 routine을 만들어낸다.예를 들어 에어컨을 틀어서 실내온도를 30도에서 20도로 만들려면 어떻게 해야할까? 너무 과하게 가동하면 자칫 온도가 18도까지 내려갈수도 있고, 너무 살살틀면 20도까지 가려면 한도끝도 없이 기다려야할 것이다.그래서 매우 빠르고 정확하게 20도를 만들어내기 위한 제어가 필요한.. 2018. 11. 13.