Oneulog

0. Abstract주요 시퀀스 변환 모델은 인코더와 디코더를 포함하는 RNN 또는 CNN을 기반으로 한다. 최고 성능의 모델은 또한 어텐션 메커니즘을 통해 인코더와 디코더를 연결한다. 본 논문에서는 recurrence와 convolution을 완전히 없애고 attention 메커니즘에만 기반한 새로운 간단한 네트워크 아키텍처인 Transformer를 제안한다. 1. Introdution특히 RNN과 gated RNN은 언어 모델링 및 기계 번역과 같은 시퀀스 모델링 및 변환 문제에 대한 최첨단 접근 방식으로 확고히 자리 잡았다.  Recurrent model은 일반적으로 입력 및 출력 시퀀스의 symbol 위치를 따라 계산을 고려한다. 계산 시간의 step에 따라 위치를 정렬하면, 이전의 hidden ..
아래의 내용은 파이토치 패키지의 전반적인 구성을 보여준다. 1. torch 메인 네임스페이스이다. 텐서 등의 다양한 수학 함수가 포함되어져 있으며, Numpy와 유사한 구조를 가진다. 2. torch.autograd 자동 미분을 위한 함수들이 포함되어져 있다. 자동 미분의 on/off를 제어하는 콘텍스트 매니저(enable_grad/no_grad)나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 'Function' 등이 포함되어져 있다. 3. torch.nn 신경망을 구축하기 위한 다양한 데이터 구조나 레이어 등이 정의되어져 있다. 4. torch.optim 확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 중심으로 한 파라미터 최적화 알고리즘이 구현되어 있다...
0. AbstractNeural machine translation은 번역 성능을 극대화하기 위해 공동으로 조정될 수 있는 단일 신경망 구축을 목표로 한다. Neural machine translation을 위해 최근 제안된 모델은 보통 encoder-decoders 제품군에 속하며 decoder가 번역을 생성하는 고정 길이 벡터로 source sentence를 인코딩한다. 본 논문에서는 고정 길이 벡터의 사용이 기본적인 encoder-decoders 모델의 성능을 향상시키는데 병목 현상이 발생한다고 추측하고, 이러한 부분을 명시적으로 하드 세그먼트로 구성할 필요없이 모델이 target 단어 예측과 관련된 소스 문장의 일부를 자동으로 검색할 수 있도록 하여 이를 확장할 것을 제안한다. 새로운 접근 방식을..
이전 글인 CBOW 모델 구현에 이어 Skip-gram 모델 구현을 진행한다. 전반적인 구현 과정더미 데이터를 생성한다.해당 데이터를 띄어쓰기를 기준으로 쪼개 단어로 이루어진 시퀀스 리스트를 생성한다.해당 시퀀스에 있는 단어들을 중복을 제거해 단어 : 인덱스 값을 가지는 딕셔너리를 생성한다.시퀀스 리스트와 딕셔너리를 활용해 Skip-gram 모델 학습을 위한 데이터셋을 생성한다.모델 학습을 위한 DataLoader를 생성한다.Skip-gram 모델을 정의한다.Skip-gram 모델과 loss, optimizer를 선언하고 학습을 진행한다.단어 간 유사도를 확인한다. 0. 라이브러리 설정해당 과정에서 사용할 패키지들을 불러온다.import torchfrom torch.utils.data import Te..
이전 글인 Word2Vec 논문 리뷰에 이어 구현을 진행한다.  해당 논문에서 소개된 CBOW를 구현한다.전반적인 구현 과정더미 데이터를 생성한다.해당 데이터를 띄어쓰기를 기준으로 쪼개 단어로 이루어진 시퀀스 리스트를 생성한다.해당 시퀀스에 있는 단어들을 중복을 제거해 단어 : 인덱스 값을 가지는 딕셔너리를 생성한다.시퀀스 리스트와 딕셔너리를 활용해 CBOW 모델 학습을 위한 데이터셋을 생성한다.모델 학습을 위한 DataLoader를 생성한다.CBOW 모델을 정의한다.CBOW 모델과 loss, optimizer를 선언하고 학습을 진행한다.단어 간의 유사도를 확인한다.0. 라이브러리 설정해당 과정에서 사용할 패키지들을 불러온다.import torchfrom torch.utils.data import Ten..
논문 링크 : Efficient Estimation of Word Representations in Vector Space 0. Abstract 단어의 연속 벡터 표현을 계산하기 위한 2가지 새로운 모델 아키텍처를 제안한다. 결과는 이전에 다양한 유형의 신경망을 기반으로 최고 성능을 발휘했던 기술들과 비교되며, 우리가 제안하는 방식을 통해 훨씬 낮은 비용으로 정확도가 크게 향상하는 것을 관찰했다. 16억 개의 단어 데이터세트에서 고품질의 단어 벡터를 학습하는데 하루가 채 걸리지 않으며, 이러한 벡터는 구문 및 의미 단어 유사성을 측정하기 위한 우리의 테스트셋에서 최첨단 성능을 제공한다. 1. Introduction현재 많은 NLP 시스템과 기술은 단어를 원자 단위로 다루며, 단어 사이의 유사성에 대한 개..
독립 변수 데이터를 x, 숫자 0 초과인 경우에는 1, 이하인 경우에는 0을 부여한 레이블 데이터를 y라고 해 보자 Keras로 구현하는 로지스틱 회귀 이번 데이터는 앞서 배운 단순 선형 회귀 때와 마찬가지로 1개의 실수 x로부터 1개의 실수인 y를 예측하는 맵핑 관계를 가지므로 Dense의 output_dim, input_dim 인자값을 각각 1로 기재한다. 또한 시그모이드 함수를 사용할 것이므로 activation 인자값을 sigmoid로 기재해준다. 옵티마이저로는 가장 기본적인 경사 하강법인 sgd를 사용했다. 시그모이드 함수를 사용한 이진 분류 문제에 손실 함수로 크로스 엔트로피 함수를 사용할 경우 binary_crossentropy를 기재해주면 된다. 에포크는 200으로 한다. x = np.ar..
이진 분류(Binary Classification) 앞서 선형 회귀를 설명하며 공부 시간과 성적 간의 관계를 직선의 방정식으로 표현한다는 가설 하에, 주어진 데이터로부터 가중치 w와 편향 b를 찾아 데이터를 가장 잘 표현하는 직선을 찾았다. 하지만 둘 중 하나의 선택지 중에서 정답을 고르는 이진 분류 문제는 직선으로 표현하는 것이 적절하지 않다. 학생들이 시험 성적에 따라 합격, 불합격이 기재된 데이터가 있다고 가정해보자. 시험 성적이 x라면, 합불 결과는 y이다. 이 데이터로부터 특정 점수를 얻었을 때의 합격, 불합격 여부를 판정하는 모델을 만들고자 한다. 위 데이터에서 합격을 1, 불합격을 0이라고 하였을 때 그래프를 그려보면 아래와 같다. 이러한 점들을 표현하는 그래프는 알파벳의 S자 형태로 표현된..
NLP Developer
'NLP' 카테고리의 글 목록