데이터 사이언스/머신러닝 & AI 9

SHAP value에 대하여 (이론편)

black-box 모델인 머신러닝의 예측값에 대한 설명 니즈가 커지고 있다. 이에맞추어 오늘은 XAI 방법론 중에 하나인 SHAP value 에 대해서 깊이 파보고자 한다. 경제학의 게임이론 분야에서 대가인 Lloyd Shapley(1951) 가 제안했던 Shapley Value의 개념을 머신러닝의 해석에 적용한 것이 SHAP Value 이다. 이러한 SHAP Value는 Su-In Lee 와 Scott Lundberg 가 2017년에 "A Unified Approach to Interpreting Model Predictions" 라는 제목의 논문으로 발표하였다. Shapley value는 Efficiency, Dummy player, Symmetry, Strong monotonicity, Additi..

[딥러닝] 딥러닝에서 weight initialization 의 영향력

현업에서 딥러닝 모델을 돌리다 보면 initialization 값(여기서 initialization 값이란 모델에 처음으로 배정되는 weight 값들을 말한다) 때문에 스트레스를 받는다. 왜그런가하면 일반적인 딥러닝의 하이퍼파라미터인 learning rate와 batch size, epoch 등을 결정했다고 하더라도 처음에 배정된 initialization 값에 따라 모델 결과가 돌릴때 마다 다르게 나오기 때문이다. (이는 XGBoost나 SVM과 같은 하이퍼파라미터에 deterministic한 모델들과는 다른 특징이다.) 그리고 그 영향력은 생각보다 쎄다. 어쩌면 모델의 성능에서 가장 영향력이 크다고 알려진 learning rate보다 영향력이 클지도 모른다.. 그렇기 때문에 optuna 등으로 하이퍼..

회귀문제에서 Random Forest, SVM, XGBoost 튜닝하는법 (in python)

Tuning practice (SVM / RF / XGBoost) - Regression (PRSA data)¶ 오늘은 튜닝이 필요한 머신러닝 모형들 중에 state of the art의 예측력으로 알려진 SVM(Support Vector Machine), RF(Random Forest), XGBoost 모델의 회귀문제 튜닝 예시를 가져와보았다. 먼저 데이터는 UCI Repository에 있는 PASA_data 이며, 중국의 미세먼지 데이터이다. 데이터의 속성은 아래와 같다. Attribute Information: (PASA_data)¶No: row number year: year of data in this row month: month of data in this row day: day of dat..

크로스엔트로피와 최대가능도추정량(MLE)간의 관계

필자는 석사때까지 통계학을 공부했었는데 크로스 엔트로피(Cross Entropy), 엔트로피(Entropy)를 기반으로 하는 정보이론은 거의 접하지 못하였다. ​ 반면에 가능도(Likelihood), 최대가능도추정량(MLE), 최대 사후 확률 (MAP) 와 같은 가능도 함수 기반의 이론은 많이 접했었다. (피셔정보수라던지... score function 이라던지...) 그리고 일반적으로 최대 가능도 추정량은 추정치로써 좋은 성질들을 많이 가지고 있다. (Consistency라던지, Invariance property라던지, Efficiency 라던지...) ​ 그런데 놀라운것은, 머신러닝을 활용한 분류문제에서 많이 쓰이는 크로스 엔트로피를 최소화하는 것이 가능도를 최대화하는 것과 같은 결과를 준다는 것이..

엔트로피, 크로스엔트로피, 쿨벡라이블러 다이버전스

머신러닝을 공부하다 보면, 엔트로피 (Entropy) 라는 개념이 등장한다. ​ 이 엔트로피는 물리학 또는 통계물리 쪽에서의 엔트로피와는 좀 다른 느낌이다. 위키백과에도 그냥 엔트로피라고 검색하면, 우리가 원하는 머신러닝에서의 그 엔트로피가 나오지 않을 것이다. 머신러닝에서 말하는 엔트로피는 정보이론에서 나온 것으로, 아래의 링크에서 그 정의를 확인할 수 있다. ​ https://en.wikipedia.org/wiki/Entropy_(information_theory) Entropy (information theory) - Wikipedia ​ 아무튼, 정보이론에서 얘기하는 이 엔트로피가 무엇인지, 직관적으로 이해하기에 처음에 너무 힘들었던 기억이 난다. 심지어 아직도 좀 헷갈리는 부분이 있기는 하다. ..

딥러닝과 머신러닝, 그리고 모수적 방법과 비모수적 방법이란 ?

사실 머신러닝이 딥러닝을 포함하는 개념이지만 본 포스팅에서는 뉴럴 네트워크 기반의 모델을 딥러닝으로, 그 외의 모델들을 머신러닝으로 지칭하기로 한다. ​ 우리는 데이터로부터 어떤 현상이나 규칙을 포착해내기 위해서 모델링을 진행한다. 즉, 우리가 관심이 있는 변수 y가 다른 변수들(x1,x2,...)와 어떤 (함수) 관계가 있는지 파악하고 이를 통해 미래의 y를 예측하거나, 현상을 설명하고자 한다. ​ 요즘에는 딥러닝 모델들이 AI를 대표하면서 뛰어난 성능을 보이고 있다. 그런데 딥러닝이 과연 항상 최선일까? 머신러닝이 딥러닝을 이길 수도 있지 않을까? 답은 데이터의 질(quality)과 개수에 달려 있다. 머신러닝이나 딥러닝 모두 데이터를 먹이(feeding)로 주어야 이를 통해 스스로 학습하면서 유용한..

딥러닝 시계열 모형 Neural prophet (in Python)

본 포스팅은 파이토치 버전 1.11.0 이 깔려있다고 가정하고 진행한다. Neural PROPHET 사용법¶ In [7]: #필요한 라이브러리들 import time import numpy as np import pandas as pd import warnings warnings.filterwarnings('ignore') from neuralprophet import NeuralProphet #neural prophet 모델링에 필요한 패키지 In [8]: # 패키지 버전 확인 !pip show neuralprophet Name: neuralprophet Version: 0.3.2 Summary: Explainable Forecasting at Scale Home-page: https:/..

비선형 모델 및 머신러닝에 대하여 (feat. 튜닝)

학부때 개인적으로 존경하는 교수님께서 통계학의 꽃은 "회귀분석" 이라고 말씀하셨다. 그리고 "회귀분석"은 아무리 강조해도 지나치지 않다고 말씀하셨다. 그 이유는 회귀분석이 모델링의 전반에 대한 기초체력을 기를 수 있게 해주기 때문일 것이다. 회귀분석은 linear regression을 말하는데, linear 라는 특성상 매우 간단하다고 생각하기 쉽다. 하지만 회귀분석은 그 linear한 모형 조차도 매우 신중하게 다룬다. 잔차 plot을 유심히 보기도 하고 적합도 검정(goodness of fit test)을 통해 모형의 goodness를 계속 확인한다. 설명 변수들간의 상관성으로 혹여나 모델의 해석에 왜곡이 생기지는 않는지(다중공선성), 또 그 상관성이 왜 문제가 되는지 수학적으로 풀어헤쳐본다. 이런 ..

[NLP] Character based tokenization

오늘은 NLP에서 Character based tokenization에 대해서 포스팅하겠다. 먼저 나오게된 계기는 띄어쓰기 기반의 토큰화가 Vocabulary 생성에 있어서 상당히 비효율성을 나타내기 때문이다. 예를 들어, "아버지가방에들어가신다" 처럼 띄어쓰기가 안되어있는 경우에는 사용자가 띄어쓰기를 수동적으로 해줘야할 수도 있고 "ㅋ", "ㅋㅋ", "ㅋㅋㅋ" 등 통신언어에서도 이 세개의 문장이 모두 같은 뜻임에도 불구하고 서로 다른 세개의 Vocabulary로 지정되게 된다. Character based tokenization에 들어가기에 앞서 한국어의 문장 구성을 살펴보겠다. 한국어의 경우 하나의 문장이 음운, 음절, 형태소, 단어, 어절, 문장으로 이루어져 있게 된다. 여기서 음운이란, 말의 뜻을..