전체 글

Sampling a sequence from a trained RNN 이전 강의에서 배운 것처럼 RNN 모델이 학습을 마치고 나면 sampling을 해봅니다. a는 0으로 초기화된 상태에서 시작하면, 각 토큰들을 기준으로 다음에 등장할 확률이 가장 높은 토큰 하나를 예측하게 됩니다. 이때 토큰이 등장하지 않게 하려면 resampling 하게 하는 등의 조치를 취할 수 있습니다. Character-level language model 지금까지 살펴본 것은 단어 단위의 RNN이었지만, 이 토큰을 글자 단위로 만들 수도 있습니다. 이때는 소문자, 대문자, 공백, 특수 기호 등등 다양한 문자가 vocab에 포함될 수 있겠죠. 하지만 모든 글자 단위로 연산을 하게 되면 비용이 비싸다는 단점이 있습니다. Seque..
What is language modeling? 언어라는 것은 구성 요소에 따라 일정한 확률로 표현될 수 있습니다. 위 예시에서 apple, pear, salad는 잘 어울리는 조합이지만, pear 대신 pair가 들어가면 그렇지 않죠. 결국 각 문장이 등장할 확률, 혹은 다음에 어떤 단어가 등장할지에 대한 확률을 예측하는 것이 기본적인 내용입니다. Language modeling with an RNN 우선 영어 텍스트로 된 corpus(말뭉치)를 준비합니다. 이를 이용하여 tokenize합니다. tokenize란 corpus에 저장된 단어를 기준으로 문장 단위를 쪼개는 것을 뜻합니다. 문장 맨 뒤에는 모델의 입장에서 이 문장의 끝이라는 것을 인지할 수 있도록 토큰을 추가합니다. 만약 corpus(voc..
Examples of sequence data 지난 시간까지 공부한 RNN은 Tx = Ty인, 즉 입력과 출력의 개수가 동일한 경우였습니다. 하지만 실제로 RNN은 그렇지 않은 경우가 많습니다(더 많겠죠 정확히는). 예를 들어 기계 번역의 경우, 같은 의미를 지닌 두 문장이 언어에 따라 다른 길이를 가질 수 있습니다. Examples of RNN architectures input과 output의 길이(개수)에 따라 RNN의 architecture를 위와 같이 구분할 수 있습니다. Summary of RNN types One to one : 사실 이때는 굳이 RNN이라고 할 필요도 없겠죠 ㅎㅎ One to many : 작곡과 같은 예시를 드셨는데 잘 와닿는 예는 아니었습니다. Many to one : 영..
문제 링크 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 소스 코드 from collections import deque def main(): n = int(input()) board = [[0 for _ in range(n)] for _ in range(n)] k = int(input()) for _ in range(k): r, c = map(int, input().split()) board[r-1][c-1] = -1 # 사과 위치 기록 turns..
Forward propagation and backpropagation 지난 강의에서 볼 수 있었던 것처럼 RNN의 기본 구조는 위와 같습니다. 파란색 화살표는 순전파 방향을 나타내고 있고, 역전파는 정반대로 계산을 하면 되겠죠? Loss를 구하는 것도 별반 다르지 않습니다. 우리가 예측한 결과인 y hat과 실제 정답(label)인 y 사이의 오차를 구해줍니다. 그리고 이 오차를 각 예측에 대해서 모두 합쳐주면 됩니다. 출처: Coursera, Sequence Models, DeepLearning.AI
Why not a standard network? 지난 강의에서 살펴본 9개 단어로 구성된 예제를 떠올려 봅시다. 이를 이전까지 배웠던 딥러닝 모델에 적용하는 것은 크게 두 가지 문제점을 야기합니다. 첫째로 입/출력의 길이가 달라질 수 있습니다. 물론 둘이 동일한 경우도 존재하지만 이것이 보장되지는 않습니다. 번역 문장의 예시를 떠올려보면 이해하기 쉽습니다. 둘째로 다른 위치에서의 feature가 공유되지 않습니다. 이건 조금 추상적이긴 하지만, 만약 동일한 단어가 같은 문장 내에 반복되어 사용되는 경우 어떻게 처리해야 할까요? 기존에 학습한 feature를 이용할 수 없다는 문제가 발생하는 것입니다. 또한 10,000개 단어가 들어있는 vocab의 경우 10,000차원으로 표현되는데 이를 CNN 모델에..
chanmuzi
chanmuzi