정보이론에서의 엔트로피(Entropy)의 이해.

0. 들어가기에 앞서. 딥러닝에 대해 처음 공부하던 대학원 2학기차에 <정보이론>이라는 수업이 전자공학을 가르치시는 교수님 담당으로 열렸길래 신청한적이 있다. 딥러닝에서 분류기를 만들 때 loss 함수에서 '엔트로피'라는 개념을 많이 봤지만 사실 정확히 어떤 개념인지 이해하지 못했기 때문에 이번 기회에 확실하게 이해하자는 취지에서 신청했다. 하지만 지도교수님께서 그 정보이론 수업은 네가 기대한 내용과 다를 것이라 하셔서 나중에 수강 취소했던 경험이 있다. 아니, 열역학에서 '엔트로피'와 정보이론의 '엔트로피'와 딥러닝에서의 '엔트로피' 모두 이름은 같지만 개념은 다르다니,,,,도대체 엔트로피란 무엇인가? 1. 정보이론에서의 엔트로피 우선 나무위키의 말을 빌리자면, 한 메세지를 표현할 수 있는 최소의 비트 수이다. 나타날 수 있는 경우의 수가 n개 일때 log n이 엔트로피가 되며 단위는 log벡터경우의수/bit 이다. 각 사건이 독립적이라면, log경우의 수가 단위가 된다. 2. 딥러닝에서의 엔트로피 딥러닝에서 엔트로피는 log예측확률이다. 근데 따지고 보면 경우의 수와 확률은 반비례 관계인데 이게 통하지??앞에 마이너스를 붙여줘서 그런가? 맞다. 로그의 경우 마이너스를 붙이는거니까.... 그런데 참 신기하다.. 경우의수의 역수가 반드시 확률이 된다는 보장이 없는데,,,, 그렇게 의미를 만들어가는건가? 입력값 x가 비슷하면 아예 같은 것으로 몰아가고....아니면 다른 값으로 몰아가도록....사실 결국 최종 representation을 입력값으로 만드는 과정이니.....

대만 타오윈안 공항

GloVe 논문 리뷰

이미지
abstract 벡터 공간에서 단어 벡터를 표현하고자하는 연구는 많이 이루어졌지만 global matrix factorization, 예를 들면, LSA(latent semantic analysis), 은 단어간의 의미거리를 제대로 파악하지 못하고 skip-gram은 단어간 의미상 차이는 잘 반영하지만 단어의 전역적인 통계는 반영하지 못하는 문제가 있다. 단어-단어의 공출현 빈도를 기반으로한 weighted least squares model을 사용하였다. 결과적으로 word analogy dataset에서 75%의 정확도를 기록하였고(state-of-art) NER task에서도 기존 방법들 보다 나은 성능을 보였다. 연구의 배경 사전에서는 단어를 <뜻>에 해당하는 문장으로 정의를 하지만 이외에도 단어를 나타낼 수 있는 방법은 많다. 공출현 빈도가 높은 다른 단어들과의 관계로 단어를 정의하는 방법이 NLP분야에서 word를 정의하는 방법인 것 같다. (이렇게하면 장점도 많지만 한계도 있는데, 그것은 나중에 정리하도록 하자.) 두 단어가 공출현인지 아닌지 정의하려면 말뭉치의 범위를 지정해야한다. 범위가 큰것은 문서 전체 또는 문단 전체가 될 수 있고 범위가 작은 것은 문장, 혹은 bi-gram 등의 n-gram이 될 수 있다. LSA는 문서 전체를 이용한다.  흔히 많이 쓰이는 word2vec의 CBOW와 skip-gram은 작은 범위를 공출현을 이용한다. 전자의 approach를 (1) global co-occurence 후자를 (2) local window로 나누어서 설명을 하겠다. (단순히 범위가 이 둘의 명확한 구분이 되지 않을지도? 알고리즘 자체가 다르니...) (1) global co-occurence matrix factorization(행렬 분해)는 높은 차원의 벡터를 성질(?)을 근사하게 유지하면서 낮은 차원으로 줄이는 방법이다. LSA가 대표적인 방법으로 말뭉치 전체의 통계를 행렬로 먼저 만든 뒤 ...

character 기반 CNN으로 문장 분류하기

실습