본문 바로가기

Research/Machine Learning74

Kernel Density Estimation https://darkpgmr.tistory.com/147 KDE는 히스토그램을 훨씬 고도화한 방법으로 이해할 수 있다. 각각의 x이 가우시안분포(커널)를 갖는다고 가정한다. 모든 점에 대해 가우시안분포를 부여한다음, 모든 확률을 누적해서 거대한 하나의 분포를 그린다. 즉, 히스토그램의 bin 대신 가우시안분포를 쓴다고보면 된다. Kernel Density Estimation(커널밀도추정)에 대한 이해 얼마전 한 친구가 KDE라는 용어를 사용하기에 KDE가 뭐냐고 물어보니 Kernel Density Estimation이라 한다. 순간, Kernel Density Estimation이 뭐지? 하는 의구심이 생겨서 그 친구에게 물어보니 자기도 잘 모른 darkpgmr.tistory.com 2023. 7. 26.
Contrastive Learning Contrastive Learning Contrasitive Learning이 Masked Language Model하고 다른 핵심은, 감독학습처럼 명확하게 정답을 만들기 힘든 상황에서, ambiguous한 보기 중 가장 가까운 정답을 찾도록 하는 방식이라는 것이다. https://analyticsindiamag.com/contrastive-learning-self-supervised-ml/#:~:text=Contrastive%20learning%20is%20an%20approach,between%20similar%20and%20dissimilar%20images. Contrastive Learning에 쓰이는 Loss는 보통의 retreiver model 학습하는것처럼 CrossEntropy loss를.. 2022. 2. 28.
Hinge Loss https://en.wikipedia.org/wiki/Hinge_loss Hinge Loss는 확률에 대한 정의가 들어있지 않으므로, 아주 쉽게 생각하면 일종의 regression 방식으로 학습된다고 생각할 수 있다. 즉 pos label에 대해서는 예측된 y값이 1로 수렴하도록 리그레션을 하는 것이다. 좀 더 정확히는 정답 class에 대해서는 1-y가 최소가 되도록 학습을 해서, y가 커지도록 학습이 되는건데 다만 y값이 무한히 커지면 안되니까 max(0, 1-y)를 취해서 y가 1보다 커지면 0으로 처리해버려서 1에서 멈추도록 한다. 즉 확률이란 가정없이 y의 범위가 1이하로 되도록 제한하는 것이다. 반면에 오답 class에 대해서는 1+y가 최소가 되어야하므로, y가 작아지도록 학습하는데, 이 역.. 2022. 1. 6.
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.
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.
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 - mo.. 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.
물리학에 기반한 모델 # 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.
Belief Propagation # Belief PropagationAcyclic PGM 모델을 학습하여 MLE나 MAP를 수행하기 위한 알고리즘이다. Cyclic PGM의 경우 수렴성이 보장되지 않고, 계속 확률분포가 진동하지만, Acyclic한 경우 수렴성이 이론적으로 증명되었다고 한다.어떤 임의의 parametric PGM모델을 Acyclic하게 만들고, 이것의 파라미터를 MLE나 MAP에 대해 최적화 하기 위해 각 그래프에서의 Node가 자기와 연결된 주변 Node로 Belief Propagation을 시키고, 이것들이 모여서 1번의 학습이 이뤄진다. 이러한 Belief Propagation을 계속해서 iteration하면서 학습을 수행하게 된다. 기본개념: https://en.wikipedia.org/wiki/Belief_pr.. 2018. 1. 5.
Thompson Sampling, Multi-armed bandit, Contextual bandit # Multi-armed bandit(=K-armed bandit) 여기서 armed는 action이고, K는 action의 개수를 의미함.- Multi-armed bandit = One-state MDP one-state MDP란 것은 state가 1가지로, 항상 고정된 상태를 의미함. 즉 state가 변하지 않기 때문에 이는 곧 state를 무시한다는 말과 동일함. 한마디로 state가 없는 MDP임 # Contextual bandit(=Associative Search) Multi-armed bandit에서 한발 나아가, context를 given condition으로 받아서 문제를 확장한것임. 이때 context는 state와 다른데, 원래의 MDP에서는 Transition probability에.. 2018. 1. 5.
Natural Language Processing NLP 기초 # 용어 - consonant: 자음 - vowel: 모음 - morpheme: 형태소, 뜻을 갖는 최소 단위 - syntactic: 문법적인 - semantic: 의미적인 - delexicalization: 3시15분 -> [Time]으로 바꿈 # Beam search greedy 탐색 알고리즘(휴리스틱 탐색)이다. DP가 아니다. 적당히 쓸만한 solution을 구하는 것이다. 빔서치는 # IOB format: token classification(Slot filling)에서 New York과 같든 2개의 word로 된 녀석들을 처리하기 위한 것. - New: B-city - York: I-city 이런식으로 B가 등장하고, 같은 종류의 sub-slot에 해당하는 I slot이 연속해서 .. 2017. 8. 14.
Precision Recall AveragePrecision # 컨퓨전 매트릭스 - True/False: 모델이 잘 맞췄느냐 못맞췄느냐를 의미함. 즉 True이면 모델이 정답을 맞췄다는 의미이고, False이면 모델이 정답을 틀렸다는 의미이다. - Positive/Negative: 모델이 예측한 값이 True였나, False였나를 의미함. http://www.dataschool.io/simple-guide-to-confusion-matrix-terminology/ - TP: 정답을 맞췄고(T), 모델이 1이라고 예측(P)함. 즉, 실제 정답도 1임 - TN: 정답을 맞췄고(T), 모델이 0이라고 예측(N)함. 즉, 실제 정답은 0임 - FP: 정답을 틀렸고(F), 모델이 1이라고 예측(P)함. 즉, 실제 정답은 0임 - FN: 정답을 틀렸고(F), 모델이 0이라고.. 2017. 5. 31.
Coefficient of Determination(결정계수), R^2(R square) 결정계수 = Coefficient of Determination = R^2 = R squared - Regression model의 성능을 측정하기 위해 mean value로 예측하는 단순 모델(Zero-R 모델)과 비교해서, 상대적으로 얼마나 성능이 나오는지를 측정한 지표. (다른 성능 지표인 RMSE나 MAE는 데이터의 scale에 따라서 값이 천차만별이기 때문에, 절대 값만 보고 바로 성능을 판단하기가 어려운 반면, 결정계수의 경우 상대적 성능이기 때문에 보다 직관적으로 알 수 있다.) 결정계수(R^2) 구하는 공식 ( 보통의 경우 0 2017. 5. 22.