NLP

ML & DL

[밑시딥2] Chapter 8. 어텐션

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다.  ◼️8.1 어텐션의 구조seq2seq를 한층 더 강력하게 하는 어텐션 메커니즘 아이디어를 소개한다.이 어텐션이라는 메커니즘 덕분에 seq2seq는 필요한 정보에만 주목할 수 있게 된다.  ◾ 8.1.1 seq2seq의 문제점seq2seq에서는 Encoder가 시계열 데이터를 인코딩한다. 인코딩된 정보를 Decoder로 전달하고 Encoder의 출력은 고정 길이의 벡터였다.고정 길이 벡터라 함은 입력 문장의 길이에 관계없이 항상 같은 길이의 벡터로 변환한다는 뜻이다.현재의 Encoder는 아무리 긴 문장이라도 고정 길이의 벡터로 변환하지만 이는 필요한 정보가 벡터에 다 담기지 못하..

ML & DL

[밑시딥2] Chapter 7. RNN을 사용한 문장 생성

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 7.1 언어 모델을 사용한 문장 생성◾ 7.1.1 RNN을 사용한 문장 생성의 순서앞 장에서의 LSTM 계층을 이용한 언어 모델은 아래 그림처럼 생겼다.  언어 모델은 다음과 같은 확률분포를 출력한다.언어 모델은 지금까지 주어진 단어들에서 다음에 출현하는 단어의 확률분포를 출력한다. 이 결과를 기초로 다음 생성하기 위해서는 확률이 가장 높은 단어를 선택하는 방법을 떠올릴 수 있다.확률이 가장 높은 단어를 선택할 뿐이므로 결과가 일정하게 정해지는 결정적인 방법이다. 또 확률적으로 선택하는 방법도 있다. 각 후보 단어의 확률에 맞게 선택하는 것으로 확률이 높은 단어는 선택되기 쉽..

ML & DL

[밑시딥2] Chapter 6. 게이트가 추가된 RNN

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. 요즘에는 앞 장의 단순한 RNN 대신 LSTM이나 GRU라는 계층이 주로 쓰인다. RNN이라고 하면 앞 장의 RNN이 아니라 LSTM을 가리키는 경우도 흔하다.LSTM이나 GRU에는 게이트라는 구조가 더해져 있는데 이 게이트 덕분에 시계열 데이터의 장기 의존 관계를 학습할 수 있다. ◼️ 6.1 RNN의 문제점RNN은 시계열 데이터의 장기 의존 관계를 학습하기 어렵다. BPTT에서 기울기 소실 혹은 기울기 폭발이 일어나기 때문이다. ◾ 6.1.1 RNN 복습RNN 계층은 시계열 데이터인 xt를 입력하면 ht를 출력한다. 이 ht는 RNN 계층의 은닉 상태라고 하여 과거 정보를 저장..

ML & DL

[밑시딥2] Chapter 5. 순환 신경망(RNN)

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 5.1 확률과 언어 모델◾ 5.1.1 word2vec을 확률 관점에서 바라보다지금까지 살펴본 신경망은 피드포워드라는 유형의 신경망이다. 피드포워드란 흐름이 단방향인 신경망을 말한다.입력 신호가 다음 층(중간층)으로 전달되고 그 신호를 받은 층은 그다음 층으로 전달하고 다시 다음 층으로.. 식으로 한 방향으로만 신호가 전달된다.시계열 데이터를 잘 다루지 못하는게 단점이기에 순환 신경망(RNN)이 등장하게 된다. CBOW 모델이 출력할 확률식은 다음과 같이 된다.위 식을 교차 엔트로피 오차에 의해 유도한 결과는 다음처럼 쓸 수 있다.CBOW 모델의 학습으로 수행하는 일은 위의 손..

ML & DL

[밑시딥2] Chapter 4. word2vec 속도 개선

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 4.1 word2vec 개선 1위 그림과 같이 CBOW 모델은 단어 2개를 맥락으로 사용해 이를 바탕으로 하나의 단어를 추측한다. 이때 입력 측 가중치와의 행렬 곱으로 은닉층이 계산되고 다시 출력 측 가중치와의 행렬 곱으로 각 단어의 점수를 구한다.이 점수에 소프트맥스 함수를 적용해 각 단어의 출현 확률을 얻고 이 확률을 정답 레이블과 비교하여 손실을 구한다. 위 그림에서 보듯 입력층과 출력층에는 각 100만 개의 뉴런이 존재한다. 이 수많은 뉴런 때문에 중간 계산에 많은 시간이 소요되며 다음 두 계산이 병목이 된다.- 입력층의 원핫 표현과 가중치 행렬 Win의 곱 계산.- ..

ML & DL

[밑시딥2] Chapter 2. 자연어와 단어의 분산 표현

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다.◼️ 2.1  자연어 처리란한국어와 영어 등 우리가 평소에 쓰는 말을 자연어라고 한다.자연어처리(Natural Language Processing, NLP)를 문자 그대로 해석하면 '자연어를 처리하는 분야'이고 우리의 말을 컴퓨터에게 이해시키기 위한 기술이다.  ◼️ 2.2 시소러스시소러스란 유의어 사전으로 '뜻이 같은 단어(동의어)'나 '뜻이 비슷한 단어(유의어)'가 한 그룹으로 분류되어 있다.자연어 처리에 이용되는 시소러스에서는 단어 사이의 '상위와 하위' 혹은 '전체와 부분' 등 더 세세한 관곆ㅏ지 정의해둔 경우가 있다. 모든 단어에 대한 유의어 집합을 만든 다음 단어들의 관계..

ML & DL

[밑시딥2] Chapter 1. 신경망 복습

해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 1.1 수학과 파이썬 복습◾ 1.1.1 벡터와 행렬벡터는 키기와 방향을 가진 양이며 파이썬에서는 1차원 배열로 취급할 수 있다.행렬은 숫자가 2차원 형태(사각형 형상)로 늘어선 것이다.그림 1-1처럼 벡터는 2차원 배열로, 행렬은 2차원 배열로 표현할 수 있다. 행렬에서 가로줄을 행(row)라고 하고 세로줄을 열(column)이라고 한다. 벡터는 표현하는 방법이 두가지 인데, 하나는 숫자들을 세로로 나열하는 방법(열벡터)이고 또 하나는 가로로 나열하는 방법(행벡터)이다.  ◾ 1.1.2 행렬의 원소별 연산import numpy as npW = np.array([[1, 2, 3..

각종 에러들을 해결 해 보자

gensim Vocab 로드 오류 해결하기 | AttributeError : Can't get attribute 'Vocab' on (module 'gensim.models.word2vec' from '/opt/conda/lib/python3.7/site-package/gensim/models/word2vec.py'>

네이버 영화 리뷰 감성 분석 프로젝트를 진행하면서 한국어 임베딩을 활용하여 성능을 개선하려고 하는 부분에서 파일 로드가 안되는 오류를 마주했다. (해당 프로젝트 노트북) GitHub - YOOHYOJEONG/AIFFEL_LMS_project Contribute to YOOHYOJEONG/AIFFEL_LMS_project development by creating an account on GitHub. github.com 한국어의 미리 학습된 Word2Vec 모델은 박규병님의 깃허브 주소에서 다운받을 수 있다. https://github.com/Kyubyong/wordvectors GitHub - Kyubyong/wordvectors: Pre-trained word vectors of 30+ languag..

토오오끼
'NLP' 태그의 글 목록