Tensorflow 2 NLP(자연어처리) 37

정보의 정량화, 정보 엔트로피에 이은 Cross Entropy

비용함수로 자주 사용되는 Cross Entropy에 대해서 깊은 이해를 하게 해주는 영상을 발견했다. ( 자막도 잘 나와있어서 좋다. ) https://www.youtube.com/watch?v=PtmzfpV6CDE https://www.youtube.com/watch?v=2s3aJfRr9gE | 정보량 ​ 세상에는 다양한 종류의 정보들이 있다. 이 정보들을 하나의 기준으로 평가하고 싶은데 어떤 기준이 좋을 것인가? ​ ​ A라는 사람이 B라는 사람에게 정보를 전달할 것인데 보내고자 하는 정보의 양(정보량)을 수치화 할 수 있는 방법이 있을까? ​ 일단 정보들을 하나의 기준으로 평가하려면 정보들을 전달하는 방식이 동일해야 할 것이다. ​ 어떤 정보는 문자로 보내고, 어떤 정보는 숫자로 보내면 이 둘 정보..

Automatic Differentiation이란

PyTorch가 dynamic auto differentiation(autodif)를 지원한다고 하기에 이 Auto differentiation이 무엇인지 한번 알아보려고 한다. ​ 우리는 Gradient Descent를 이용해 손실함수의 최솟값을 쫓아가면서 가중치들을 업데이트한다. ​ 이때, 가중치를 업데이트 하는 방법은 아래와 같다. ​ 현재 가중치에 Loss를 현재 업데이트하려는 가중치로 편미분한값을 스케일조정(a)해서 빼주는 방식으로 업데이트 한다. ​ Gradient Descent에 대해서는 잘 설명된 글이 넘쳐나기 때문에 이 정도에서 마무리하고 ​ 이때, 저 미분값을 컴퓨터가 어떻게 계산할 것인지에 대해 다뤄보고자 한다. Finite Differencing ​ 가장 먼저, 도함수의 정의를 이용..

GPT-1(Improving languague understanding by Generative Pre-Training)란?+벡터 흐름 하나하나 자세하게 설명 및 논문 리뷰

목차 ​ 1. 간단 요약 2. 논문 분석 1. 간단 요약 ​ ​ 최근 2020년에 발표된 GPT-3가 뛰어난 성능을 보여주고 있다. ​ https://twitter.com/i/status/1284801028676653060 트위터에서 즐기는 Paras Chopra “I made a fully functioning search engine on top of GPT3. For any arbitrary query, it returns the exact answer AND the corresponding URL. Look at the entire video. It's MIND BLOWINGLY good. cc: @gdb @npew @gwern” twitter.com 다음과 같이 어떠한 질문을 하든지 척척 답해내..

Transformer이란? ("Attention is all you need") + 벡터 흐름 하나하나 자세히 설명 및 논문 리뷰

트랜스포머라고 하면 위의 로봇영화가 가장 먼저 떠오를 것이다. 논문 저자가 모델 이름을 트랜스포머라고 지은 이유가 무엇일까? ​ 영어로 transform을 검색해보면 다음과 같고, transformer는 변형시키는 것으로써 변압기를 나타내는 말이기도 하다. 하지만 이런 생명력이 없는 시시한 의미보다는 저 두번째, 완전히 바꿔 놓는다는 의미가 눈에 띤다. ​ 실제로 Transformer는 NLP분야를 완전히 뒤흔들어 놓았다. ​ 목차 1. 기본적인 모델 이해 2. 자세한 논문 리뷰 참고한 사이트는 다음과 같고, 이미지 또한 이 사이트에서 가져왔다. https://jalammar.github.io/illustrated-transformer/ 가장 간단한 번역기 모델로 transformer를 이해를 해보자. ..

PCA(주성분분석)의 목적함수 증명

PCA의 목적함수는 결론부터 말하자면 차원축소를 위해 제거한 고유치(λ)들의 합이다. 이를 증명해보자. ​ PCA부터 review 하자 더 자세한 내용은 내 블로그 다음 글 참조 https://nlp-study.tistory.com/24 [4-2] PCA(주성분 분석)와 SVD(특이값 분해) 차원축소를 완벽하게 이해하기 오늘은 정말 중요한 PCA와 SVD (특이값 분해)차원축소에 대해 다룰 것이다. 선형대수학을 배웠으면 천천히 따라가면서 충분히 이해 할 수 있을 것이다. 부디 이를 정확이 이해하고 싶다면 자신만 nlp-study.tistory.com 1. 표준화 표준화를 먼저 해준다. 이는 정보의 왜곡을 방지하고, 계산을 단순화 시킨다. ​ 2. 근사 차원 축소를 통해 정제된 데이터를 가지고, 원래 값을..

LSTM 내의 벡터들의 흐름을 이해해 보자.

LSTM에 대한 설명은 구글에 검색하기만 한다면, 이해하기 좋게 자세하게 설명된 글들을 찾아 볼 수 있다. ​ 하지만, 코드로 구현된 LSTM셀을 보았을 때, 벡터 하나하나들이 어떻게 이동하고, 출력되고, 변형되는지에 대한 이해는 따로 설명이 필요해 보였다. 왜냐하면 우리는 텐서플로우 keras sequential로 생성한 LSTM셀의 input에 2차원 행렬을 굳이 reshape를 하여 3차원 행렬을 집어넣기 때문이다. ​ 그래서 그냥 대충 넘어가는 사람들은 LSTM의 input에 3차원 행렬을 넣으니까 행렬 자체가 LSTM셀에 바로 들어가는 줄 착각하기도 한다. 하지만, 각 LSTM에는 벡터가 들어간다! 그렇다면 어떻게 들어가는가? 를 풀어서 설명해 보겠다. 목차 1. LSTM review 2. LS..

[5-4] Attention Mechanism(어텐션 메커니즘)이란?

Attention!(주의!) 기법이란 무엇일까? 단순히 말하자면, 다음 결과를 예측하는 작업에서 '이 정보 좀 봐주세요!'라는 의미를 뜻한다. 그리고 그 정보는 인풋으로 들어온 정보들을 현재의 작업에 맞게 정제하여 얻은 추가적인 정보이다. 그리고 이 정보를 참조하여 예측 작업의 '성능' 을 높일 수 있다. ​ ​ Attention Mechanism은 여러 종류들이 있지만 그 중 한 종류인 (Dot-product Attention)을 소개하겠다. 참고로 Dot-product는 내적이다. 해당 논문 ​ 가장 먼저 전반적인 구조를 한 페이지에 시각화해 보았다. 순서대로 따라가 보자. ​ 1. Q, K, V 사전 형태에 대한 이해 Q : 현재 시점 t의 디코더셀의 은닉 상태, K : 인코더 셀의 모든 은닉상태들..

[5-3] 시퀀스-투-시퀀스(Sequence-to-Sequence)란?

Transformer(트랜스포머)의 Attention(어텐션)을 이해하기 위해서 알아야 하는 구조이다. ​ seq2seq 모델은 함수와 같은 역할을 한다. 입력이 들어오면 출력이 나오고 , 우리는 주어진 입력에 대해 우리가 원하는 출력이 되도록 교사학습(Supervied-learning)을 하면 된다. ​ 함수 내 구조는 어떻게 되어있을까? 1. 임베딩된 각 단어 'I' , 'am', 'hungry' 를 LSTM(RNN,GRU)에 각각 입력으로 넣어준다. 이 입력 LSTM 층을 '인코더' 라고 한다. ​ 2. 인코더 LSTM 셀의 마지막 시점의 은닉 상태 를 출력 LSTM 층인 '디코더'에 넘겨 주는데 그 넘겨주는 벡터를 'context vector' 라고 한다. (앞의 문장 정보(문맥)를 담았다) ​ ..

[5-2] ELMo란?

ElMo(2018)가 세상에 나오고 부터 pre-trained word represetation 에 대한 인식이 늘어남에 따라 NLP 모델의 성능이 급등하기 시작했다. ​ ELMo는 이 캐릭터의 이름을 따왔다. ELMo(Embeddings from Language Model) ​ ​ 논문 pdf: 목차 1. RNN과 LSTM review 2. ELMo의 간단한 요약 3. 논문 분석 -개요 -세부내용 RNN (hidden state)h가 직전 시점의 (hidden state)h의 영향을 받아 갱신됨으로써 이전 상태의 정보를 받아 올 수 있게 됨 ⇒ 이전에 언급한 단어들도 기억할 수 있게 되어 문맥 고려가 가능해짐 ​ RNN의 자연어처리에서의 사용 인풋을 벡터로 받아옴 ⇒ 그에 따른 출력이 원하는 알파벳이 ..

[5-1] Six challenges(benchmarks) in NLP

NLP (natrual language processing) 에는 성능을 측정하기 위해 많이 쓰는 과제들이 있다. Elmo에서 사용한 6개를 소개한다. ​ 1. SQuAD (Standard Question Answering Dataset) (독해 이해 reading comprehension) 입력 : context /question 쌍 출력 : answer , 정수 쌍 ​ ​ 2. SNLI (​Stanford Natural Language Inference) (자연어 추론 language inference) 문장 (premise(전제) 와 hypothesis(가정))과 label (entailment(결과), contradiction(대치), neutral(중성))으로 구성 ​ 3. SRL (Semant..