목록DL/NLP (28)
rueki

Attention이 등장하고, 기계번역의 품질이 월등히 좋아졌는데, Attention에 대해서 오늘 알아보는 시간을 가지고자한다. 어텐션의 기본 정의는 "원 문장의 어떤 단어들에 더 주목할 것인가?" 라고 해석하면 이해가 쉽다. 즉, 다시 말해서, 예를 들어 I say hello, you say good bye 라는 문장이 들어왔을 때, 이를 전체 문맥 및 문장으로 가정하고, 매 시점마다 어떤 단어에 집중을 해야하는 지 동적으로 정하기 위함이다. 기존 RNN 기반의 Seq2Seq 구조에서는 Encoder의 마지막 context vector만 사용한다는 단점이 있었으나, Attention을 사용하면, Encoder에서의 각 Time step에서의 Context vector를 넘겨줌에 따라 이의 단점을 해결..
이전 시간에서 서로 다른 문장이 있을 때 문장의 길이를 맞춰줘야 한다는 것을 언급했었다. 이번 글에서는 문장의 길이를 맞추는 Padding에 대해서 알아보도록 하자. 1 2 3 4 5 6 7 I Love My Dog I Love My Cat You Love My dog! Do you think my dog is amazing? 위의 표에 4개의 문장을 예시로 들겠다. 1번, 2번, 3번 문장의 길이는 4로 같지만 마지막 문장의 길이는 7이다. 위의 표에서 1 ~ 3번 문장의 5,6,7 번 칸은 어떻게 처리해야 될까? 이론적 개념으로는 0으로 채우면된다. 인코딩을 하고, 저 뒤의 빈칸을 0으로 채우면 어떻게 될까? 그렇게 되면, 4개의 문장 길이는 일단 통일이 될 것이다. 이 과정을 코드로 살펴보자. fr..
이전 글에서는 단어와 문장을 토큰화 하는 방법을 알아보았고, 하나의 corpus가 생성되는 것을 볼 수 있었다. 이 다음 작업으로 필요한 것은 토큰 기반으로 문장을 Value list로 만드는 것이다. 이미지 데이터에서는 신경망에 입력할 때 이미지 크기로 정의가 된다. 크기가 다를 때는 reshape 해서 크기를 조정하지만, 텍스트에서는 일단 문장들의 길이를 하나의 길이로 통일 시켜야 한다. 아래의 두 문장 예시가 있다. 1) 나는 엄마를 좋아해. 2) 나는 엄마보다 아빠를 좋아해. 단어 한 개를 문장 길이 1이라고 가정했을 때 1번은 3, 2번은 4이다. 여기서 길이를 3으로 통일하게 되면 2번 문장에서 좋아해는 없어지게 되며, 1번과 2번 문장의 길이는 같아진다. 이제 위에서 설명한 것들을 코드로 옮..
우리는 각 문자에 대해 문자 인코딩을 취할 수가 있다. 이는 컴퓨터가 우리의 언어를 이해하는 데 있어서 가장 기본적인 개념이 될 것이다. 컴퓨터의 언어는 알다시피, 숫자로 이루어져 있기 때문이다. 오늘은 그래서 언어 및 문장을 단순하게 숫자 인코딩하는 것을 알아보도록 하자. 아래와 같이 두 문장이 있다. I love my dog. I love my cat. 위의 두 문장을 인코딩 해보도록 하겠다. I love my dog 1 2 3 4 I love my cat 1 2 3 5 하나의 단어 사전이 위의 문장에 사용된 단어로만 구성되있고 이를 단어와 인코딩 한 번호와 매칭을 했다. 맨 앞에 등장하는 I를 1이라고 가정했을 때 위와 같이 인코딩 되는 것을 볼 수가 있다. 이제 위의 두 문장을 예시로 Tensor..