일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Python
- pandas
- 밑바닥부터 시작하는 딥러닝2 2장
- 자연어처리
- 정칙행렬
- 프로그래머를 위한 선형대수
- NMT
- word2vec
- 선형대수학
- 역행렬
- ReLU
- sigmoid
- 판다스
- Transformer
- 밑바닥부터 시작하는 딥러닝
- 동시발생 행렬
- 데이터프레임
- machine translation
- one-hot vector
- SVD
- 신경망 학습
- PPMI
- 벡터간 유사도
- NLP
- DataFrame
- 딥러닝
- RNN
- word embedding
- Linear Algebra
- 연립일차방정식
- Today
- Total
목록자연어처리 (7)
생각하는감자

자연어처리란? NLP(Natural Language Processing), 자연어처리는 말 그대로 우리가 사용하는 말을 컴퓨터가 이해하도록 처리하는 기술 분야이다. 우리가 사용하는 언어는 문장의 뜻이 애매할 수도 있고, 같은 의미를 가지고 있더라도 다양하게 표현할 수 있으며, 세월의 변화에 따라 말의 의미가 변형되거나 새로운 단어가 생겨날 수 있다는 특징이 있다. 이와 다르게 컴퓨터언어는 기계적이고 고정되어 있다는 특징이 있다. 컴퓨터에게 자연어를 이해시키는 테스크는 쉽지 않은 기술이 필요하지만, 컴퓨터가 자연어를 이해할 수 있게 된다면 많은 사람들에게 도움이 되는 일들을 컴퓨터에게 시킬 수 있게 된다. 자연어처리를 응용한 예로는 검색엔진이나 기계번역, 질의응답 시스템, 감정분석 등이 있다. 단어의 의미..
Tokenization이란, text를 더 작은 조각인 token으로 분리하는 과정을 의미한다. Tokenizers Word based Tokenizer Character based Tokenizer Subword based Tokenizer *결과적으로 subword based tokenizer을 사용한다. Word based Tokenizer 말 그대로 "단어"단위로 쪼개는 것을 의미한다. 예를 들어 input으로 ['The deveil is in the details.']라고 들어온다면 output은 ['The', 'devil', 'is', 'in', 'the', 'details', '.']로 출력된다. 이 tokenizer를 사용하게 되면 메모리 문제가 발생하고 vocabulary size가 작으..

Attention을 간단히 얘기하면,,,, 더 중요한 것에 집중한다!!! 어텐션 끝😅🤣 Sequence to Sequence Model (seq2seq) seq2seq 모델은 sequence를 입력으로 받아서 sequence를 출력으로 생성하는 모델이다. 많은 자연어처리 task들에서 기본모델로 활용되고 있다. 챗봇이나 기계번역로 예를 들어 보면, 입력값이 문장으로 즉, 순서가 있는 단어의 나열로 들어가게 되며 출력되는 값도 마찬가지이다. 인코딩은 context정보를 그 단어를 중심으로 하는 벡터에 더 입혀서 유의미한 벡터로 만들어주는 과정을 의미한다. 이때 단어의 문장상의 위치(조사, 주어 등)의 정보가 단어 벡터에 같이 입혀지는 형태라고 볼 수 있다. 위의 그림에서 h1에는 He라는 단어의 정보가 들..

Vanishing Gradient 문제 RNN의 구조에는 gradient 가 사라진다는 치명적인 문제점이 있다. 대부분의 연산이 곱셈으로 이루어져 있으며 처음 sequence에 해당하는 단어의 정보를 그다음 time step에 넘어가서도 계속 가지고 있으면서 새로운 input을 받고 그 단어의 정보 또한 누적하여 축적한다고 생각하면 쉬운데, 이렇게 되면 전체 input sequence의 첫 부분에 해당하는 정보가 sequence의 마지막 부분에 도달하면 변질되거나 사라지는 경우가 있다. 즉, 오래 전의 정보를 제대로 활용할 수 없다는 문제가 있다는 것이다. 예를 들어, Jane walked into the room. John walked in too. It was late in the night. Jan..

RNN 가장 기본적인 구조 RNN의 여러 형태 1) one-to-one input 길이(개수) = output 길이(개수) = 1 전통적인 구조로, Fully Connected Neural Network와 동일하다. 2) one-to-many input 길이(개수) = 1, ouput 길이(개수) > 1 Image Captioning에 쓰이는 구조 → input : image → output : 입력된 이미지를 설명하는 문장 Encoder level에서는 Z가 X(이미지)의 정보를 모두 가지고 있어야 하고, Decoder level 에서는 Z에 있는 정보를 잘 해석해서 단어들의 sequence(=문장)으로 만들어야 한다. 3) many-to-one input 길이(개수) > 1, output 길이(개수)..

GloVe : Global Vectors for Word Representation GloVe는 동일한 word pair에 대해 반복적인 계산을 하지 않기 위해 만들어졌다. 모든 word들의 입력 및 출력 벡터들의 모든 조합의 내적 값들을 다 계산해놓은 co-accurrence matrix를 먼저 만들고 이 행렬이 Ground Truth 에 해당하는 행렬과 근사적으로 같아야 한다는 것이 GloVe의 아이디어이다. 수식으로 표현하면 다음과 같다. i 는 모든 입력 단어이고 j 는 모든 출력단어이다. 이 부분부터 보자면, 해당 계산은 ground truth similarity를 의미한다. log함수의 특징 중 하나는 값이 크면 클수록 증가폭이 작아진다는 것인데, log 함수를 사용한 이유는, 값이 커진다고 ..

one-hot vector라는 것은 관련된 것만 1로 표현하고 다른것은 모두 0으로 표현하는 형태의 벡터를 의미한다. 예를들어, 혈액형 4가지를 표현한다고 하면,, A형, B형, AB형, O형이 있을때 각각을 1, 2, 3, 4 등의 숫자로 표현하면 어쩔 수 없이 분류간의 대소관계가 생기게 된다. 이를 범주형 변수라고도 하는데, 이를 word 를 embedding 하는 데에 사용하기에는 적합하지 않다. 대신, A형을 [1 0 0 0], B형을 [0 1 0 0] 의 형태로 표현한다면 대소관계를 만들지 않고 분류할 수 있게 되고 이때 [1 0 0 0]과 같은 벡터를 one-hot vector라고 하는 것이다. Word2Vec Algorithm 기본적인 아이디어는 coaccurance에 비례하여 벡터간의 거리..