본문 바로가기

전체 글21

[논문리뷰]Attention Is All You Need 이번 포스트는 이제는 NLP뿐만 아니라 딥러닝 전반에 유용하게 사용되고 있는 attention에 대해 다뤄보고자 한다. Abstract 주요한 sequence transduction 모델들은 인코더와 디코더를 포함하는 복잡한 RNN이나 CNN에 기반한다. 최고의 성능을 자랑하는 모델들은 attention mechanism을 이용해 인코더와 디코더를 연결한다. 이 논문에서는 recurrnece와 convolutions를 사용하지 않고 attention mechanism에 기반한 새롭고 간단한 모델인 Transformer를 소개한다. 이 모델은 2개의 기계번역 실험에서 더 parallelizable 하고 학습을 위한 시간도 크게 단축하면서 번역의 질은 더 좋은 것을 보인다. 1. Introduction RN.. 2022. 9. 20.
[PyTorch]Dataset과 DataLoader 이번 포스트는 PyTorch의 Dataset과 DataLoader에 대해 알아보자. 이에 앞서 이전 포스트에서 텐서의 개념에 대해 먼저 공부하고 오는 것이 도움이 될 것이라 생각한다. [PyTorch]Tensor-part2 이번 포스트는 Tensor-part1에 이어지는 내용을 다루고자 한다. 이전 포스트를 아직 확인하지 못했다면 아래의 링크로 들어가 먼저 보고 오면 더 좋을 것 같다. [PyTorch]Tensor-part1 텐서의 특징 텐서는 dream-be.tistory.com Dataset Dataset은 torch.utils.data.Dataset을 이용하여 PyTorch에서 제공하는 pre-loaded dataset을 불러오는데 사용한다. 이와 더불어 개별 데이터를 처리하는 하위 클래스 함수들로.. 2022. 9. 16.
[PyTorch]Tensor-part2 이번 포스트는 Tensor-part1에 이어지는 내용을 다루고자 한다. 이전 포스트를 아직 확인하지 못했다면 아래의 링크로 들어가 먼저 보고 오면 더 좋을 것 같다. [PyTorch]Tensor-part1 텐서의 특징 텐서는 배열과 행렬과 비슷한 자료구조이다. PyTorch에서 텐서를 이용하여 입력과 출력, 그리고 모델의 파라미터를encode 한다. 텐서는 NumPy의 ndarray와 비슷하지만 한 가지 차이점이 있 dream-be.tistory.com 이번에는 텐서의 속성, 텐서 연산에 대해 공부해보자. 텐서의 속성(Attribute) 텐서의 속성은 shape, dtype(데이터 타입), device와 같은 정보를 의미한다. tensor = torch.rand(3,4) print(f'Shape of t.. 2022. 9. 15.
[PyTorch]Tensor-part1 텐서의 특징 텐서는 배열과 행렬과 비슷한 자료구조이다. PyTorch에서 텐서를 이용하여 입력과 출력, 그리고 모델의 파라미터를encode 한다. 텐서는 NumPy의 ndarray와 비슷하지만 한 가지 차이점이 있다. 그것은 텐서는 GPU를 활용하여 처리가 가능한 반면, array는 CPU로 만 처리가 가능하다. 이번 포스트에선 텐서 초기화에 대해서 알아보자. 텐서 초기화 (Tensor Initialization) 텐서를 초기화한다는 의미는 텐서를 새로생성하거나 혹은 기존에 있던 객체를 텐서로 객체로 변경하는 것 이라고 생각하면 될것 같다. 1. 직접생성 데이터를 직접적으로 텐서화 시켜 텐서를 생성할 수 있다. 이때 데이터의 타입은 자동으로 유추하여 정해진다. data = [[4,3], [2,1]] x_.. 2022. 9. 14.
[Pytorch]패키지 기본구성 파이토치를 사용하면서 너무 당연해서 이해가 충분하지 않았던 부분에 대해 정리해보고자 한다. 가장 먼저 패키지들에 대해 정리부터 하고 넘어가자. 1. torch 가장 기본적인 패키지지로 다차원의 텐서를 위한 데이터구조를 포함하고 이러한 텐서들에 대한 수학적인 연산과 관련한 method를 담고 있다. 또 다양한 유틸리티를 포함하고 있다. 크게 Tensors, Creation Ops, Indexing, Slicing, Joining, Mutaing ops 등 다양한 기능의 operation들로 구별할 수 있고 저마다 여러 하위 method들이 있다. 2. torch.nn 신경망을 구성하는 다양한 layer들과 데이터 구조들을 포함한다. CNN, RNN, LSTM과 같은 모델구조 뿐만 아니라 activation.. 2022. 9. 13.
[논문리뷰]Generative Adversarial Nets Abstract 이 논문에서는 적대적 과정을 통해 생성 모델을 예측하는 새로운 프레임워크를 소개한다. 이 적대적 과정은 데이터의 분포를 저장하는 생성 모델 $G$와 $G$의 데이터가 아닌 학습 데이터 샘플의 확률을 추정하는 판별 모델 $D$로 구성되어 있다. $G$의 학습 과정은 $D$가 잘못 판별하는 확률을 최대화하는 방향으로 진행한다. 저자는 이 프레임워크가 minimax two-player game 게임이라고 설명한다. 자세한 내용은 본문에서 다시 나온다. 임의의 $G$와 $D$의 공간에서, unique solution이 존재한다. $G$가 학습 데이터를 모방하고 $D$의 판별 확률은 50%가 된다. $G$와 $D$가 MLP로 정의하면, 전체 시스템이 backpropagation(역전파)로 학습할 .. 2022. 9. 13.
[논문리뷰]Playing Atari with Deep Reinforcement Learning Abstract 이 논문은 강화 학습을 이용해서 고차원 sensory를 입력으로 받아 성공적으로 control policy를 학습하는 최초의 딥러닝 모델을 소개한다. 모델은 Q-learning으로 학습한 CNN이고 input은 raw pixel이고 output은 미래의 reward를 추정하는 value function이다. 저자는 해당 논문의 방법을 7개의 Atari 2600게임을 Arcade Learning environment에서 적용했다. 결과적으로 6개의 게임에서 이전의 모든 접근법의 결과를 상회하는 성능을 보여주었고 3개의 게임에서는 게임 전문가의 결과 보다 더 나은 결과를 보였다. 1. Introduction vision과 speech와 같은 고차원의 sensory input으로부터 agent.. 2022. 9. 5.
[논문리뷰]Word2Vec Abstract 연속형 Skip-gram 모델이 많은 구문적이고 구분적인 문자 관계를 인식하는 고품질 분포 vector representation을 위한 효율적인 method이다. 이 논문은 품질뿐만 아니라 학습 속도를 향상시키는 여러 방법을 소개한다. 자주 나오는 단어를 subsampling 함으로서 굉장한 속도 향상과 더 자주 나오는 단어를 학습한다. 단어 표현에 있어 내재된 한계점은 단어 순서를 고려하지 않는 점과 숙어 구를 표현하지 못하는 점이다. 1. Introduction 단어들의 분산된 표현의 분산은 비슷한 단어를 묶으면서 알고리즘이 NLP task의 성능을 개선하는 데 도움이 된다. 단어 표현(word representation)은 통계적 언어 모델링과 적용되었고 좋은 성능을 보였다. 후속.. 2022. 9. 5.