분류 전체보기 55

Decision Tree(의사결정나무)

Decision Tree : 머신러닝의 분류,예측 알고리즘중 하나. ​ 1. 결과의 원인 분석이 쉽다. 2. 간단하다. 3. 빠르다. ​ 1. Root node : 나무의 가장 꼭대기 2. Splitting(branch) : node의 출력 3. Decision node(internal node) : 하나의 특성(attribute,class) 4. Leaf node(terminal node) : 마지막 node 1.ID3(하나의 Decision node에 대해 3개 이상의 branch(가지) 생성 가능 => ID3 알고리즘을 보완하여 C4.5가 개발되었고, C4.5를 보완하여 C5.0이 개발됨 : Information gain을 이용하여 판단 ​ 2. CART (하나의 Decision node에 대해 2..

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..

[4-5] 잠재 디리클레 할당(LDA, Latent Dirichlet Allocation)이란? + 베이즈 정리,깁스 샘플링

잠재 디리클레 할당(LDA)은 주어진 문서들에 대하여 각 문서에 어떤 토픽(주제)들이 존재하는지에 대한 확률 모형이다. 말뭉치 이면에 잠재된 토픽(주제)를 추출함으로써 토픽 모델링(topic modeling)이라 부르기도 한다. 문서들의 토픽 활률 분포로 각각 알아낸 다음 이를 이용해 문서를 임베딩한는 것이다. ​ 참고 자료는 다음과 같다. 1. 글쓴이가 글을 쓸 때 의도를 가지고 쓴다. 2. 그러므로 그 의도에 유사한 주제들이 글 속에 뭉텅이씩 차지하고 있을 것이다. 3. 그리고 주제에 해당하는 단어들이 글 속에 쓰였을 것이다. 특정 주제에 대한 글을 쓸 때 자주 쓰는 단어들 말이다. ​ 하지만, 우리가 볼 수 있는 것은 문서(글) 내의 단어들 뿐이다. 우리는 단어들로부터 문서의 의도를 추출해내고 그 ..

[4-4] Word2Vec에서 Doc2Vec까지

Word2Vec은 내 블로그에서 이미 다룬적이 있는 내용이다. 하지만 Doc2Vec은 Word2Vec의 응용형으로 생각 할 수 있기 때문에 다시한번 집는 동시에 이미지를 이용한 공간적 이해를 정확하게 해보면 좋을 것이다. ​ Word2Vec 단어 임베딩으로써 Word2Vec의 기본 개념은 1. 타깃단어와 문맥단어(주변단어)를 문장 내에서 선택한다. (window 사이즈(주변단어로 몇개까지 인정할것인가)를 정해놓아야 한다.) 2. 타깃단어와 문맥단어의 벡터 공간상 비슷한 공간에 위치하도록 한다. (유사한 방향을 보도록 = 코사인 유사도가 크도록) 3. 동시에 문맥단어가 아닌 단어(negative sample에서 negative word)들을 몇개 뽑아(negative sampling) 다른 방향으로 놓는다..