본문 바로가기

반응형

분류 전체보기

(291)
어텐션(Attention)과 트랜스포머 (2) 13.3 셀프 어텐션(Self-attention)과 트랜스포머 13.3.1 셀프 어텐션의 이해 셀프 어텐션의 목적은 문장 내에서 단어 간 영향을 표현하는 것 어떤 단어를 벡터로 임베딩할 때, 그 단어에 영향을 미치는 다른 단어들의 정보를 함께 인코딩하고 싶은 것 각 단어들에 대해 그 단어에 영향을 미치는 단어들의 정보를 선별해 자신에게 축적 이 경우 각 단어가 모두 자신에게 오는 어텐션에 대한 정보를 갖고 있으므로 RNN 혹은 LSTM에 기반한 seq2seq 모형과는 달리 어느 한 벡터가 전체 문맥에 대한 정보를 축적하고 있지는 않음 13.3.2 트랜스포머의 구조 현재 딥러닝을 이용한 자연어 처리 모형의 정점 BERT(Bidirectional Encoder Representations from Trans..
어텐션(Attention)과 트랜스포머 (1) 13.1 Seq2seq: 번역에서 시작한 딥러닝 기법 seq2seq: 일련의 단어들이 들어오고 이를 이용해서 다시 일련의 단어들을 생성해야 하는 문제 seq2seq 문제에 적용할 수 있는 가장 단순한 딥러닝 모형은 RNN 모형은 인코더와 디코더로 이루어짐 13.2 어텐션을 이용한 성능의 향상 컨텍스트 벡터: 추가된 부분의 인코더 윗부분, 예측에 가장 많은 영향을 미치는 단어에 대한 정보가 담겨 있음 어텐션 메커니즘은 번역의 성능을 향상시킨 결정적인 발견 중 하나 ※ 해당 내용은 의 내용을 토대로 학습하며 정리한 내용입니다.
CNN - 이미지 분류를 응용한 문서 분류 (1) 12.1 CNN의 등장과 작동 원리 CNN은 딥러닝 기반의 학습을 이용해 26% 정도였던 오류율을 16%까지 떨어뜨림 CNN에서 주변 정보들을 요약하고 특성을 추출하는 과정은 컨볼루션과 풀링 12.2 CNN을 이용한 문서 분류 12.2.1 CNN을 이용한 문서 분류의 원리 단어들의 연속된 나열에 대해 앞뒤 단어들 간의 주변정보를 요약해낼 수 있다면 문맥을 파악하는 것이 가능 문서 분류에서는 이미지에서 일반적으로 사용하는 conv2D 계층 대신 한 방향으로만 움직이는 conv1D 계층을 사용 단어의 시퀀스로부터 워드 임베딩을 이용해 각 문서에 대해 2차원 행렬로 변환하고, 컨볼루션과 풀링의 반복을 통해 요약 정보를 추출한 다음, 완전 연결 계층으로 구성된 분류기를 적용해 문서를 판별 12.2.2 CNN을 ..
Word2Vec, ELMo, Doc2Vec의 이해 (2) 11.2 ELMo - 문맥에 따른 단어 의미의 구분 11.2.1 Word2Vec의 문제점 동음이의어 구분의 여러움 ELMo(Embeddings from Language Model)를 통해 자연어 처리의 성능 향상 ELMo: 문맥을 반영한 워드 임베딩 모형 중 하나 11.2.2 ELMo의 구조 사전학습된 양방향 LSTM을 사용해 임베딩을 수행 ELMo 임베딩 벡터 산출 과정 11.3 Doc2Vec - 문맥을 고려한 문서 임베딩 문서에 대해 직접 임베딩함 Doc2Vec의 학습 구조 DM(Distributed Memory): Word2Vec의 CBOW에 문서 ID를 추가한 형태 DBOW(Distributed Bag of Words): Skip-Gram에 문서 ID를 추가한 형태 ※ 해당 내용은 의 내용을 토대..
Word2Vec, ELMo, Doc2Vec의 이해 (1) 11.1 Word2Vec-대표적인 워드 임베딩 기법 11.1.1 Word2Vec 학습의 원리 Word2Vec 기법에서 학습의 목적은 단어에 의미적인 정보를 함축함으로써 유사도를 계산하거나 연산을 수행하고, 더 나아가서 학습된 결과를 다른 작업에서도 사용할 수 있는 전이학습을 지원하는 것 Word2Vec은 주변의 단어를 이용해 중심에 있는 단어를 예측하도록 학습함(CBOW에 한해서) CBOW(Continuous Bag of Words), Skip-Gram의 두 가지 학습 방식을 가짐 CBOW: 문장에서 윈도(앞뒤 단어들을 몇 개씩 예측에 사용할지 결정하는 범위)를 뒤로 이동하며 학습에 사용할 입력과 출력을 만듬 Skip-Gram: CBOW와 달리 중심 단어를 입력으로 해서 주변의 여러 단어들을 예측 11...
RNN-딥러닝을 이용한 문서 분류 (6) 10.4 LSTM, Bi-LSTM과 GRU를 이용한 성능 개선 LSTM은 장기 기억정보를 추가함으로써 장기의존성을 학습 GRU(Gated Recurrent Unit): LSTM을 간소화한 모형으로 계산량이 적고 속도가 빠르면서도 좋은 성능을 냄 Bi-LSTM: 역방향의 영향을 함께 구현하기 위해 사용 from tensorflow.keras.optimizers import legacy as legacy_optimizers from tensorflow.keras import optimizers model = Sequential([ Embedding(max_words, 64), Bidirectional(LSTM(64)), Dense(64, activation='relu'), Dense(1, activation..
RNN-딥러닝을 이용한 문서 분류 (5) 10.3 RNN을 이용한 문서 분류 10.3.3 문서의 순서정보를 활용하는 RNN 기반 문서분류 Flatten() 대신에 SimpleRNN() 레이어를 사용 from tensorflow.keras.layers import SimpleRNN from tensorflow.keras.optimizers import Adam model = Sequential([ Embedding(max_words, 32), SimpleRNN(32), # 펼쳐서 flat하게 만드는 대신 RNN 모형을 사용, maxlen만큼의 시계열 데이터 Dense(32, activation='relu'), Dense(1, activation='sigmoid') ]) model.summary() adam = Adam(learning_rate=1..
RNN-딥러닝을 이용한 문서 분류 (4) 10.3 RNN을 이용한 문서 분류 10.3.2 RNN이 아닌 일반적인 신경망 모형을 이용한 분류 임베딩 레이어, Flatten() 레이어, Dense() 레이어로 이루어진 Sequential 모형 # 케라스 모형 생성 및 학습 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Flatten, Dense, Embedding model = Sequential([ #순차적 모형 Embedding(max_words, 32, input_length=maxlen), #word embedding layer 생성 # max_words는 one-hot encoding을 할 때의 vector 크기가 됨 - 사용된 단어의 수..
RNN-딥러닝을 이용한 문서 분류 (3) 10.3 RNN을 이용한 문서 분류 10.3.1 워드 임베딩을 위한 데이터 준비 import nltk nltk.download('movie_reviews') """ [nltk_data] Downloading package movie_reviews to /root/nltk_data... [nltk_data] Unzipping corpora/movie_reviews.zip. True """ from nltk.corpus import movie_reviews fileids = movie_reviews.fileids() #movie review data에서 file id를 가져옴 reviews = [movie_reviews.raw(fileid) for fileid in fileids] #file id를 이용해 ..
RNN-딥러닝을 이용한 문서 분류 (2) 10.2 워드 임베딩의 이해 10.2.1 워드 임베딩이란? 범주형 데이터를 수치로 변환하는 방법 원핫 인코딩(one-hot encoding): 범주형 데이터를 벡터 형태의 연속된 수치로 변환하는 것 원핫 벡터: 원핫 인코딩의 결과 임베딩: 범주형 데이터를 연속적인 값을 갖는, 상대적으로 작은 크기의 벡터로 변환하는 작업 밀집 벡터: 희소 벡터의 반대개념 임베딩을 수행하는 이유 차원이 큰 원핫 벡터를 그대로 쓰면 연산이 비효율적 대상 간의 의미적 유사도를 계산할 수 있음 단어가 의미적인 정보를 함축함으로써 연산이 가능해질 수 있음 전이학습을 가능하게 함 10.2.2 BOW와 문서 임베딩 BOW에서는 단어가 아닌 문서 단위로 임베딩이 이루어짐 문맥에 대한 파악은 이뤄지지 않음 10.2.3 워드 임베딩과 딥러..

반응형