본문 바로가기

딥러닝

(38)
tensorflow, keras 실습: Iris data import tensorflow as tf from tensorflow import keras !pip install tensorflow로 tensorflow를 깔고, 위처럼 import를 해준다. tensorflow로 iris를 분류하는 모델을 만들겠다. from sklearn.datasets import load_iris iris = load_iris() X,y_ori = iris.data, iris.target iris.target으로 받은 y_ori는 0, 1, 2로 구분되어 있다. 0, 1, 2는 명목형 변수로 대소관계가 없기 때문에 이를 one hot encoding으로 만들어주겠다. from tensorflow.keras.utils import to_categorical y = to_cate..
Attention 논문 정리: Neural Machine Translation by Jointly Learning to Align and Translate encoder decoder seq2seq attention (1) encoder encoder에서는 biRNN 과정을 거친다. 순방향 RNN에서는 input sequence를 앞에서부터 순서대로 읽어서 forward hidden state를 구하고, 역방향 RNN에서는 input sequence를 뒤에서부터 읽어서 backward hidden state를 계산하고 동일한 시점에 대해 forward hidden state와 backward hidden state를 concatenate 한다. j 시점에서 encoder의 hidden state인 hj는 j시점 앞, 뒤의 단어들을 모두 포함하게 된다. RNN은 최근의 단어들에 대해 더 초점을 맞추는 경향이 있기 때문에 hj는 xj 근처의 단어들을 더 많이 ..
Attention 모델이란? (배경) seq2seq 모델의 한계점 context vector의 크기가 정해져 있어서 input으로 들어온 모든 정보를 제한된 크기의 vector에 넣어야 하므로 긴 sequence가 input으로 들어왔을 때 학습이 제대로 되지 않는다는 문제가 있었다. 이를 개선한 attention 모델은 단어들의 대응 관계를 파악하는 계산 과정이 추가되어 필요한 정보에 더 잘 주목할 수 있게 된다. Attention model : seq2seq model에서 encoder과 decoder을 개선하여 위의 seq2seq의 문제점을 해결했다. (1) Encoder 개선 기존의 seq2seq 모델은 encoder을 거친 후 나온 context vector의 크기가 정해져 있다는 문제점이 있었는데, encoder의 출력을..
Seq2Seq (Sequence-to-Sequence) 이란? Seq2Seq 모델은 입력 sequence에서 다른 도메인의 sequence를 출력하는 모델로, 챗봇(Chat-bot),기계 번역(machine translation), 내용 요약(text summarization), STT(speech to text) 등에서 주로 쓰인다. Seq2Seq 모델은 encoder와 decoder로 나뉜다. encoder와 decoder는 RNN 구조이고, 그림에서는 둘 다 LSTM을 사용했다. encoder context vector decoder 입력 문장의 모든 단어를 입력받아 context vector를 만든다. encoder RNN 셀의 마지막 시점의 은닉 상태가 context vector이다. 입력 문장에 대한 정보가 압축되어 있다. context vector을 받..
LSTM (Long-Short Term Memory)이란? (배경) vanilla RNN 모델의 장기 의존성 문제(the problem of Long-Term Dependencies) 기존의 RNN 모델은 input 문장의 길이가 길어질 수록, 즉 time step이 길어질 수록 앞의 정보가 뒤로 충분히 전달되지 못한다. 긴 문장이 input으로 들어왔을 때, 앞쪽에 위치하는 단어들은 아무리 중요한 단어라고 해도 멀리 떨어진 단어를 예측하는 데 거의 영향을 주지 못한다. 이는 back propagation 관점에서 이해할 수 있다. RNN에서 gradient를 구할 때는 이전 시점들에서의 gradient들까지 time series 하게 chain rule로 곱해야 해서 이 때의 back propagation을 backpropagation through time(..
FastText tkdguq05.github.io/2020/08/14/Fasttext/ SISG를 활용한 Fasttext에 대해서 알아보자 자연어 처리 모델에 자주 사용되는 FastText를 뽀개보고 skipgram 모델과의 차이를 알아보자. tkdguq05.github.io 위 페이지를 참조하여 작성한 fasttext 논문 리뷰입니다. 이전 모델들의 한계점 각각의 단어에 독립적으로 서로 다른 벡터를 부여함으로써 단어의 morphology, 내재적인 의미를 무시함. 거대한 데이터셋과 희귀 단어에 대해 embedding 정확도가 낮아서 학습이 제대로 일어나지 않는다. FastText skip gram model을 기반으로 character 단위의 n-gram의 벡터들의 표현을 합치는 방법 하나의 단어를 n개로 잘라서 만든..
Word2vec 논문 리뷰 4. Results 단어들간 유사성을 측정하는 데 여러 방법이 존재한다.(semantic relationship or syntactic relationship) 4.1 task description semantic question과 syntactic question을 test set으로 구성한다. 비슷한 단어의 쌍들을 직접 찾아 연결하여 question들을 만든다. 랜덤하게 두 단어를 한 쌍으로 선택해서 총 2.5K개의 질문을 만들었다. 모든 질문에 대해 정확도를 측정했다: 예측한 결과 벡터에 대해 가장 가까운 단어가 질문과 완벽하게 일치할 때 정답으로 처리한다. 4.2 maximization of accuracy 구글 뉴스의 word vector를 training set으로 사용했고 6B개의 token..
NNLM, RNNLM, Word2vec wikidocs.net/45609 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 딥러닝을 이용한 자연어 처리 입문 페이지를 많이 참고했습니다. 1. Language model 단어 시퀀스(문장)에 확률을 할당하는 모델 이전 단어들이 주어졌을 때 다음 단어를 예측하도록 함. 통계를 이용한 방법과 인공 신경망을 이용한 방법이 있음. (1) 통계적 언어 모델(SLM, statistical language model) 문장 학습 이후에 이전 단어 이후에 특정 단어가 나타날 확률을 조건부 확률로 계산함. -> 희소 문제(sparsity problem) 발생 모든 단어들을 독립적으로 계산하면 유사한 단어들에 대한 정보를 놓치게 되고, 이를 모두 계산하기 위해선 방대한 양의 데이터가 필요함..