분류 전체보기 310

[Books] 행렬 분해 기반 언어 모델 (LSA, GloVe, Swivel)

Contents 행렬 분해는 단어-문서 행렬이나 TF-IDF 행렬 등의 행렬 구조에 차원 축소 방법을 적용해 차원의 수를 줄여 계산 효율성을 키우고, 행간에 숨어 있는 잠재 의미를 파악하는 것이 목표다. 언어 모델이 가질 수 있는 행렬은 단어-문서 행렬, TF-IDF 행렬, 단어-문맥 행렬, 점별 상호 정보량(PMI) 등이 존재하는데, 이번 글에서는 PMI 행렬의 특수한 버전인 PPMI 행렬에 대해서 다루어볼 것이다. PMI는 두 확률변수 사이의 상관성을 계량화한 지표이며, 두 단어의 등장이 독립을 가정했을 때 대비 얼마나 자주 같이 등장하는지를 수치화한 것이고, 수식은 다음과 같다. \[ \text{PMI}(A,B) = \log \frac{\text{P}(A,B)}{\text{P}(A) \times \..

[Books] 확률 기반 언어모델 (NPLM, Word2Vec, FastText)

Contents 단어수준 임베딩이란 추후 나올 문장수준 임베딩이 나오기 이전에 나온 방법론으로, 단어들을 임베딩해 모델을 구축하는 것을 의미한다. 단어수준 임베딩은 예측기반 모델(rediction based model)과 행렬 분해기반 모델(Matrix Factorization based model)이 존재한다. Prediction based model NPLM, Word2Vec, FastText Matrix Factorization based model LSA, GloVe, Swivel 이번 글에서는 NPLM, Word2Vec, FastText 등의 확률 기반 언어모델에 대해서 다룰 것이고, 행렬 분해 기반 언어모델은 다음에 다루어볼 것이다. Prediction Based Model NPLM (Neur..

[Statistics] F-test

F-test는 ANOVA를 이야기할 때 많이 언급되는 검정 방법이다. ANOVA는 집단 내 혹은 집단 간을 비교해 유의미한 결과를 도출하는 방식인데, 이는 바로 F-test를 의미하기 때문이다. F-test를 다루기 이전 집단 내 분산과 집단 간 분산에 대해서 알아보자. 집단 내 분산(within-groups variability)은 말 그대로 샘플 데이터 내부의 분산을 의미한다. 집단 내 분산이 작으면 작을수록 뾰족한 모양의 분포를 가질 것이다. 집단 간 분산(between-groups variability)은 각 데이터 간의 분산을 의미한다. 집단 간 분산이 크면 클수록 각 분포들은 멀어지게 된다. 그렇다면 우리는 집단 내 분산이 작으면 작을수록, 집단 간 분산이 크면 클수록 두 집단의 평균이 차이가..

[Deep Learning] RBF : Radial basis function

RBF는 SVM을 다룰 때도 많이 언급되는 내용이다. 딥러닝에서의 RBF 뉴럴네트워크란 Gaussian basis function을 이용하는 것으로, $\mu$와 $\sigma$를 가지는 정규분포의 선형결합으로 데이터의 분포를 근사하는 것을 의미한다. 일반적인 MLP는 초평면으로 데이터를 분할하지만, RBF 뉴럴네트워크의 경우 각 데이터에 맞는 Kernel function을 이용하기에 비선형적이고, MLP보다 학습이 빠르다. 저차원 공간에서 선형 분리가 되지 않는 데이터를 분리하고자 하면 고차원으로 확장해 초평면을 도입해 분리하는 등의 형태로 분리할 수 있는데, 이때 저차원 공간의 데이터를 고차원 공간으로 매핑시켜주는 함수가 바로 커널 함수(Kernel function)이다. 커널 함수는 Gaussian..

Deep Learning 2022.03.21

[t-SNE] manifold 데이터 시각화하기

t-SNE는 차원축소 기법 중 하나다. 차원 축소 기법 중 대표적인 기법은 PCA가 있을텐데, PCA는 데이터의 형태가 선형이라는 가정하에 분석을 수행하게 된다. 그렇기 때문에 manifold 형태를 가지는 데이터에서는 성능을 발휘하기가 어렵다. 이때 사용하는 것이 바로 t-SNE이다. sklearn에서는 t-SNE와 PCA를 지원해주기에 본 글에서는 sklearn 패키지를 활용해서 시각화한다. from sklearn.manifold import TSNE from sklearn.feature_extraction.text import TfidfVectorizer newsgroups_train = fetch_20newsgroups(subset='train', remove=('headers', 'footers..

Collaborative Filtering for Implicit Feedback Datasets (ICDM'08)

먼저 Alternative Least Squares(ALS)를 이해하기 위해서는 Matrix Factorization(MF)에 대해 어느정도 알고 있어야 가능하다. ALS는 MF와 같이 하나의 모델이 아니라 최적화하는 알고리즘 중 하나다. 우리의 목표는 Latent Factor Matrix를 찾는 것이며, 이를 위해 Loss Function 혹은 Cost Function이라는 하나의 '지표'를 선정한 후 최적화하는 방식으로 접근한다. 이때 최적화를 하는 방법은 Gradient Descent(GD), ALS 등 다양한 알고리즘이 존재하지만 여기에서는 ALS에 대해서만 다룰 것이다. ALS를 제시한 논문에 따르면 분산처리 환경에서 GD보다 더욱 효과적이고, sparse matrix에 robust하면서, Im..

[Calculus] Sigmoid 함수 미분하기

딥러닝에서 활성화 함수를 사용할 때 시그모이드(Sigmoid) 함수를 많이 사용한다. 역전파를 보내기 위해서는 해당 함수의 편미분값을 보내야하기에 이번 글에서는 시그모이드 함수를 수식적으로 미분해보자. 우리가 알고 있는 시그모이드 함수는 다음과 같다. \[ f(x) = \frac{1}{1 + e^{-x}} \] \[ \begin{equation} \begin{split} \frac{df}{dt} = & -\frac{1}{t^2}, \ \ \ (t = 1+e^{-x}) \\ \\ \Rightarrow & \ \frac{1}{(1+e^{-x})^2} \cdot e^{-x} \\ \\ \Rightarrow &\ \frac{1 + e^{-x} -1}{ (1+e^{-x})(1+e^{-x})} \\ \\ \Righ..

[Calculus] 라플라스 변환(Laplace Transform)

라플라스 변환은 수학자 피에르시몽 라플라스의 이름을 따서 지은 이름이며, 미분방정식을 대수방정식으로 변환해주는 녀석이다. 대수방정식은 우리가 일반적으로 알고 있는 $x^2 + x - 2 = 0$과 같은 형태를 의미하고, 미분방정식은 우리가 알지못하는 함수와 그의 도함수, 그리고 이 함수들의 함수값에 관계된 여러 개의 변수들에 대한 방정식을 의미한다. 이전 글에서 다룬 테일러 급수, 매클로린 급수와 같은 녀석이 미분방정식의 예라고 할 수 있다. 미분방정식의 경우 대수방정식에 비해 상대적으로 사람이 이해하기 어렵기에 대수방정식으로 변환하여 인수분해 혹은 근의 공식을 사용하여 쉽게 해를 구하기 위해 라플라스 변환을 사용한다. 라플라스 변환을 통해 미분방정식을 대수방정식으로 변환한 후 대수방정식의 해를 구한 후..

[Calculus] Taylor series 는 무엇일까?

테일러 급수(Taylor series)는 임의의 함수 $f(x)$를 다항함수로 표현하는 것을 일컫는다. 머신러닝이나 딥러닝에서는 실제 데이터의 함수가 어떻게 생겼는지 알지 못한다. 이런 상황에서 임의의 함수 $f(x)$를 다항식으로 근사하여 점 $a$에서의 $f(x)$ 값을 도출할 수 있으며, 항이 많아질수록 근사의 정확도는 높아진다. 우리는 임의의 점 $a$에 대해서 함숫값 $f(a)$가 주어지고, 그의 도함수인 $f^{\prime}(a)$가 주어졌을 때 이웃한 점에서의 함숫값을 추정할 수 있을 것이다. 다만, 테일러 급수에서 주의해야될 점은 $x$에서 근처 임의의 점($a$) 간의 거리가 멀어질수록 큰 오차를 가지게 된다. 그렇기에 점 $x$와 점 $a$ 간의 거리를 최소화 하는 지점을 적절히 선정해..

반응형