본문 바로가기

전체 글

(124)
07 트랜스포머 (3) BERT BERT의 이론적인 내용은 이전 포스팅을 참고 2024.02.07 - [Deep Learning/NLP] - BERT BERT 자료 출처 1. BERT의 개요 BERT(Bidirectional Encoder Representations from Transformers)는 트랜스포머를 이용하여 구현되었으며, 위키피디아(25억 단어)와 BooksCorpus(8억 단어)와 같은 레이블이 없는 텍스트 데이터 ai-junha.tistory.com 모델 실습 패키지 설치 !pip install portalocker Korpora -U 허깅페이스 transformers 라이브러리의 BERT 모델과 네이버 영화 리뷰 감정 분석 데이터세트를 활용해 분류 모델을 학습한다. 네이버 영화 리뷰 데이터 불러오기 import n..
BERT 자료 출처 1. BERT의 개요 BERT(Bidirectional Encoder Representations from Transformers)는 트랜스포머를 이용하여 구현되었으며, 위키피디아(25억 단어)와 BooksCorpus(8억 단어)와 같은 레이블이 없는 텍스트 데이터로 사전 훈련된 언어 모델이다. BERT가 높은 성능을 얻을 수 있었던 것은 레이블이 없는 방대한 데이터로 사전 훈련하고 레이블이 있는 다른 작업에서 Fine-tuning을 하였기 때문이다. 2. BERT의 크기 BERT의 기본 구조는 트랜스포머 인코더를 쌓아올린 구조이다. Base에서는 12개, Large에서는 24개를 쌓았다. 그 외에도 Large는 Base보다 $d_{model}$의 크기나 멀티 헤드 어텐션의 헤드 수가 더 크다..
ELMo(Embeddings from Language Model) 자료 출처 paper 1. ELMo Bank라는 단어는 Bank Account와 River Bank에서 전혀 다른 의미를 가진다. 그러나 Word2Vec이나 GloVe는 Bank라는 단어를 예를 들어 [0.2, 0.8, -1.2]와 같이 동일한 임베딩 벡터로 표현한다. 같은 표기의 단어라도 문맥에 따라서 다르게 단어 임베딩을 할 수 있다면 자연어 처리의 성능을 올릴 수 있을 것이다. 단어 임베딩 시 문맥을 고려하여 임베딩을 하겠다는 아이디어가 문맥을 반영한 워드 임베딩(Contextualized Word Embedding) 이다. 2. biLM(Bidirectional Language Model)의 사전 훈련 아래 그림은 다음 단어를 예측하는 작업을 수행하는 일반적인 단방향 RNN 언어 모델을 보여준다...
07 트랜스포머 (2) GPT GPT(Generative Pre-trained Transformer)는 2018년 OpenAI에서 발표한 트랜스포머 기반 언어 모델이다. 이 모델은 ELMo(Embeddings from Language Model)와 같이 대규모 말뭉치로 사전 학습된 모델로 다양한 다운스트림 작업에서 우수한 성능을 보인다. ELMo는 다른 포스팅을 참고 2024.02.06 - [Deep Learning/NLP] - ELMo(Embeddings from Language Model) ELMo(Embeddings from Language Model) 자료 출처 paper 1. ELMo Bank라는 단어는 Bank Account와 River Bank에서 전혀 다른 의미를 가진다. 그러나 Word2Vec이나 GloVe는 Bank..
An Image Is Worth 16x16 Words : Transformers For Image Recognition At Scale Google에서 2021/06에 발표된 논문이다. 이 포스팅에서는 논문의 모든 섹션을 다루지 않으며 자세한 내용은 paper에서 확인할 수 있다. paper Abstract Computer Vision에서는 주로 어텐션을 합성곱 네트워크와 함께 사용하거나 합성곱 네트워크의 일부 구성 요소를 대체하는데 사용되며 전반적인 구조는 유지된다. 이 논문에서는 CNN을 사용하지 않은 이미지 패치 시퀀스에 직접 적용된 순수한 트랜스포머가 이미지 분류 작업에서 매우 우수한 성능을 발휘할 수 있음을 보여준다. 또한 합성곱 네트워크에 비해 훈련에 필요한 계산 리소스가 상당히 적게 든다. 1. Introduction 자연어 처리에서의 트랜스포머의 성공을 영감으로 삼아, 최소한의 수정으로 표준 트랜스포머를 이미지에 직접 적용..
Jigsaw-ViT : Learning Jigsaw Puzzles in Vision Transformer paper github 1. Introduction 저자들은 이미지 분류를 위한 ViT에서 자가 지도 보조 손실로서 퍼즐 맞추기를 해결하는 방법인 Jigsaw-ViT를 제안하고 있다. figure 1은 Jigsaw-ViT의 전반적인 overview를 보여주는데, red flow로 표현된 일반적인 CLS 토큰을 사용한 분류 학습에 blue flow로 표현된 $L_{Jigsaw}$를 추가로 학습하는 것이다. 논문에서는 이를 self-supervised 보조 손실로 표현하였다. 일반적인 ViT와 다른 두 가지가 있다. 위치 임베딩 제거 : 모델이 명시적인 단서를 활용하여 부정행위를 하는 것을 방지한다. 무작위 패치 마스킹 : 마스킹이 안된 패치의 위치만 예측하도록 하여 예측이 여러 특정 패치가 아닌 전역 컨텍..
사전 학습된 모델 사전 학습된 모델(Pre-trained Model)이란 대규모 데이터셋으로 학습된 딥러닝 모델로 이미 학습이 완료된 모델을 의미한다. 사전 학습된 모델 자체를 현재 시스템에 적용하거나 사전 학습된 임베딩 벡터를 활용해 모델을 구성할 수 있다. 이를 활용한다면 모델을 처음부터 구성하고 학습하는 것이 아닌 이미 학습된 모델의 일부를 활용하거나 추가 학습을 통해 모델의 성능을 끌어낼 수 있다. 처음부터 모델을 훈련하지 않으므로 학습에 필요한 시간이 감소하고, 전이 학습(Transfer Learning)과 같은 작업뿐만 아니라 백본 네트워크(Backbone Networks)로 사용되어 소규모 데이터로도 우수한 성능을 달성할 수 있다. 1. 백본 백본 네트워크(Backbone Network)는 딥러닝 모델의 핵심..
07 트랜스포머 (1) Transformer 트랜스포머의 이론적인 내용은 이전 글에서 볼 수 있습니다. 여기서는 파이토치에서 트랜스포머를 사용하는 방법에 대해서만 다룹니다. 2024.01.11 - [Deep Learning/NLP] - 트랜스포머 1. 포지셔널 인코딩 import math import torch from torch import nn from matplotlib import pyplot as plt class PositionalEncoding(nn.Module): def __init__(self, d_model, max_len, dropout=0.1): super().__init__() self.dropout = nn.Dropout(p=dropout) position = torch.arange(max_len).unsqueeze(1) ..