RNN 5

Deep Learning #7 Transformer

1. Transformer의 도입 1.1. Transformer의 아이디어 이전 포스팅에서 Attention에 대해서 다루었다. 그런데 Attention을 공부하다보면, 결국 RNN처럼 시퀀스 순서대로 인풋들을 받을 필요가 있을까, RNN 구조를 유지하는 것이 꼭 필요할까 하는 의문이 든다. 왜냐하면 시퀀스 데이터에 RNN과 Encoder-Decoder를 사용했던 것은 단 하나의 인풋 벡터뿐 아니라 모든 인풋 시퀀스들을 고려하기 위함이었기 때문인데, Attention만을 사용하더라도 어차피 모든 인풋 시퀀스들에 적당한 가중치들을 두고 아웃풋을 만들어낼 수 있기 때문이다. 그래서 그냥 Attention만을 사용하자! 라는 아이디어 하에서 등장한 모델이 있는데, 그게 바로 Transformer이다. Tran..

Deep Learning #6 Attention

1. Encoder-Decoder 구조 1.1. Encoder-Decoder 구조(=Seq2Seq) RNN이 One-to-Many, Many-to-Many 등의 다양한 구조를 갖는다는 것을 이전 RNN 포스팅에서 살펴보았다. 그 중 한 형태인 Encoder-Decoder 구조는 Many-to-Many 구조를 약간 변형한 것이라고도 볼 수 있는데, 다음과 같은 형태이다. 인코더-디코더는 이름에서 알 수 있듯이 인코더와 디코더로 이루어진 구조이다. 인코더 파트에서는 주어진 인풋 시퀀스를 히든 스테이트로 변환한다. 디코더 파트는 히든 스테이트를 받아서 아웃풋 시퀀스를 생성한다. 왜 이런 구조를 고안해냈을까? NLP의 맥락에서 이해해보자. 가령 한국어 문장을 영어로 번역하는 RNN 모델을 만든다고 하면, Man..

Deep Learning #5 NLP의 개요

1. NLP(Natural Language Processing)의 기본 관점 1.1. NLP의 정의 NLP, 또는 자연어 처리란 인간의 언어를 컴퓨터가 이해할 수 있도록 하는 과제를 말한다. 컴퓨터 비전(CV)과 더불어 딥러닝 기술이 활발하게 적용되고 있는 분야이다. 최근 주목받는 ChatGPT도 자연어 처리 딥러닝의 일종이다. 1.2. Word Embedding Word embedding이란, 주어진 자연어를 일정한 차원의 벡터로 바꾸어주는 것을 말한다. 컴퓨터가 자연어를 받아들일 때는 사람처럼 직관적으로 받아들이는 것이 아니고 0과 1로 구성된 수열로서 받아들인다. 따라서 NLP의 첫번째 과제는 주어진 자연어를 컴퓨터에 '입력'하는 것이다. 일반적으로 하나의 단어는 N차원의 기본단위벡터(하나의 원소만..

Deep Learning #4 RNN(순환신경망)

GitHub - SeungbeomDo/DataAnalysis: Practical Codes for Data Analysis using Machine Learning and Deep Learning Practical Codes for Data Analysis using Machine Learning and Deep Learning - GitHub - SeungbeomDo/DataAnalysis: Practical Codes for Data Analysis using Machine Learning and Deep Learning github.com 1. RNN의 개요 1.1. Sequence Data 시퀀스 데이터란 데이터가 배열된 순서에도 정보가 담겨 있는 데이터를 말한다. 가령 번역기는 영어 문장을 인풋..