본문 바로가기

728x90

NLP

(11)
문장 유사도(1) 개요 대화체 문장간의 유사도를 구하여 추천 알고리즘으로 만들기 위한 목적으로 스터디 하고 있습니다. 임베딩는 크게 단어임베딩 VS 문장임베딩으로 나눌수가 있습니다. 단어임베딩은 각 단어에 대해서 vector 진행 후 유사도를 구하는데 이에 단점은 문맥을 고려 하지 않는다는 점이다. 문맥을 포함한 임베딩을 만들기 위해서 문장임베딩이 사용이 되는데, 여기에는 Doc2vec 혹은 Transformer과 같은 딥러닝의 임베딩을 예로 들수가 있다. 필자는 Word2vec(단어임베딩)를 사용하여 문장 전체 임베딩을 구하는 sentence2vec을 사용하여 실험해 보았습니다. 자세한 코드 내용은 https://github.com/stanleyfok/sentence2vec 에서 볼수 있습니다. 사용된 데이터는 유튜브 ..
10. 차원축소 차원이 높아질수록 sparse하게 분포되므로 모델링하기가 어려워진다. 예를들어 Kmean는 고차원의 데이터를 다룰 경우 성능이 저하되며 해석도 난해하게 된다. 따라서 쓸데없이 공간만 차지 하는 차원 때문에 성능 저하에 우려가 된다. 이를 해결하기 위해선 적절하게 저차원에서 실행하는 것이 옳다. *차원 축소 PCA는 어떤 샘플이 있을 때, 이를 잘 설명하는 새로운 축을 찾아내는 방법이다. 축이 분포를 잘 설명한다는 뜻은 무엇일까를 한번 생각해보자. 위 두 조건을 만족했을 때 설명을 잘 해준다고 볼수 있다. 검은점이 기존의 분포이며 이 것들이 빨간점으로 projection된다. 이때 빨간점끼리 서로 멀어지도록 해야 한다. 두번째 조건은 projection할 때, 검은점과 검은 선 사이의 거리의 합이 최소가 ..
9.Mse Loss Classification는 multinomial(다항분포)를 따른다고 가정하에 CE를 통한 minimize를 진행했다. 이산부포가 아닌 연속형 분포일 경우에는 뉴럴 네트워크의 출력이 가우시안 분포를 따른다는 가정하에 MSE가 사용되어 지고 있다. 위 그림을 통해 MSE가 유도되는 위 과정을 자세히 살펴보도록 한다. 위 식은 전 시간에 배웠듯 loglikelihood이다. 해당 값들을 모두 더한값이 최대가 되는 theta값을 찾게 된다. 부연설명하자면, log그래프는 확률이 올라갈수록 영양가가 높은 정보를 얻을수 이다. 그래서 높은 값일수록 유리한데, 이를 nagative loglikelihood 바꾸게 되면 아래처럼 변형된다. 부호가 –로 변경되면서 minimize하는 theta값을 찾게 되는 것이다...
8.Cross_entropy 어떻게 하면 최소의 바이트를 사용하면서 정보를 전달할수 있을까?의 연구에서 출발했다.( 정보가 높다 = 불확실성이 높다.) P(X)라는 확률분포에 –log를 붙여주면 X라는 변수에 대한 정보라고 표현 할수 있다. 확률이 1에 가깝게 올라 갈수록 값이 내려가고, 확률이 0에 가까울수록 값이 무한대로 커진다. 그래서 “영희는 내일 밥을 먹을 확률이 높다”라고 할 때, 당연히 밥을 먹으므로 밥 먹을 확률은 거의 99% 일 것이다. 이때 우리가 얻을 수 있는 값은 0에 가깝다는 것이다. 이해하기 편하게 의역을 하자면 영양가 있는 정보가 아니다. 영양가가 0이다 라는 뜻이고. 그 반대로 불확실할수록 새롭게 알게된 정보일 것이므로 영양가가 높을것이다. 그래서 값(영양가)이 커진다. P라는 분포의 entropy = ..
7.Kullback Kullback­Leibler Divergence(두 분포사이의 다름을 측정) KL(p||q)은 p에 대해서 q와 얼마나 다른지를 나타낸다. 왜 P에 대해서인지는 오른쪽 식에 처진 동그라미를 보면 알수있다. P(x) 확률분포에서 샘플링 했기 때문이다. 그리고 log의 성질에 의해서 분모,분자 위치가 바뀌고 마이너스를 제거한 표현식과도 동일하다. P(x)라는 확률분포에서 x를 샘플링 했다고 가정하고 q1,q2 확률분포에 이를 아래처럼 표현해 볼수 있다. x라는샘플링을 각 확률분포에 표시한 그림이다. 크기를 비교해보면 q1 > p(x) > q2 순이다. 각 분포에 log를 씌운 값을 비교하면 당연히 왼쪽 값이 더 클것이다. 하지만 맨 위에 공식은 마이너스가 붙어 있으므로 이를 적용해 보면 부호가 반대로 적용..
6. MAP(Maximum A Posterior) Maximum A Posterior(MAP) D는 datset를 뜻하고, h는 가정,가설을 뜻한다. 즉, 데이터가 주어 졌을 때 그 데이터에 대한 가설을 얘기하는 것이다. MLE는 likelihood를 maximize하는 방법이다. 마찬가지로 것처럼 h값을 maximize하는 즉, 데이터가 주어 졌을 때 Posterior를 maximize할수있다. 그래서 이번 글에서는 Posterior를 maximize해서 h값을 찾는 방법에 대해서 알아본다. X 값이 240일 때 남자일까? 여자일까?를 묻고 있다. 이때 우리는 쉽게 정답을 내린다. 240이면 대부분 여자다. 이 생각이 바로 가능도 확률이다. 우리도 모르는 사이에 가능도를 재고 있었던 것이다. 아래 이미지를 통해 보도록 한다. 첫번째) y가 남자일 때 ..
5. MLE 수식 수식 MLE 위 수식에 대해서 자세히 알아보자. P(x)라는 알고자 하는 확률분포에서 x,y data를 샘플링하여 모은 데이터로 파라미터를 찾고자 한다. 이때, 이 파라미터는 상황에 따라 다르다. 가우시안이라면 μ, σ 일것이고, 신경망이라면 weights, bias일 것이다. 그래서 위 식처럼 maximum log likelihood를 최대화 하는 theta를 찾는다. 해당 식을 풀이하자면 “Xi를 입력으로 넣고, theta라는 어떠한 파라미터가 있었을 때 yi의 값은 확률 값이 얼마인가?” 그렇게 얻은 확률값에 log를 취하고 이런 과정을 N번 반복하고 모두 더한다. 그렇게 더한 값들 중에 theta가 가장 큰 값을 찾으면 된다. 위 방식은 어디까지나 Ascent 방식이다. 우리는 마이너스를 곱해줌으..
4. MLE MLE 샘플링 된 만 명의 신장 데이터가 있다고 가정해본다. 내가 알고 싶었던 것은 전국 사람들의 정규분포를 알고 싶었던 것이다. 즉, 모집단이 궁금해서 표본집단을 만개를 수집해 놓은 것이다. 이 모집단을 알기 위해서 아래 이미지처럼 평균과 분산을 랜덤하게 설정하여 각 샘플링에 대한 확률 값이 어떤지를 알아낸다 위처럼 랜덤하게 평균과 분산을 만들어 가면서 비교하던 도중 위 이미지처럼 가장 높은 확률값을 가지고 있다. 높은 확률값을 가지고 있다는 것은 빨간 점선이 길다는 것이다. 빨간 길이들의 곱을 구하면(Likelihood)세번째 분포가 가장 길다는 걸 알수있다. 그러면 이 초록색 분포가 Ground Truth 확률분포에 가장 근접한 분포가 될 것이다. 점선들의 곱 = Likelihood이다. 즉, Li..