Attention Is All You Need The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new arxiv.org 본 글은 "Attention is All You Need" 논문을 번역 및 분석했다. 일부 문장은 맥락에 따라 의역되었으며, 명확한 이해를 위해 부분적으로 설명을 추가했다. 주요 용어는 정확..
들어가기 전 Object Detection은 이미지에서 객체 위치를 찾고, 객체 클래스를 분류하는 문제를 말한다. 객체가 위치한 영역을 표시한 박스를 bounding box라고 하며, 줄여서 bbox라고 부른다. bbox는 좌측 상단 좌표 & 가로/세로 길이로 나타낼 수 있다. 이렇게 객체가 위치한 부분을 RoI, Region of Interest라고 한다. bbox를 찾는 대표적인 방법으로 Sliding window와 Selective search가 있다. Sliding window는 고정 크기의 박스를 계속 움직여가며 객체 위치를 찾는다. 모든 영역을 탐색하면 윈도우 크기를 변경해 가며 같은 작업을 반복한다. 윈도우 안에 객체가 있으면 1, 없으면 0이 나온다. Selective search는 색상,..
Attention을 이해하기 위해 seq2seq에 대한 이해가 필요하다. Encoder/Decoder에 대해 모른다면 아래 글을 참고하자. https://denev6.tistory.com/entry/Encoder-Decoder RNN 개념과 Encoder-Decoder 구조 순환 모델 이해하기 RNN: Recurrent Neural Network은 순환 신경망으로 순서가 있는 sequence 데이터를 학습하는 데 사용한다. 단일 RNN 층을 보면 은닉층($h$)이 순환하며 이전 상태의 정보를 가져간다. 즉, denev6.tistory.com Attention이란? Attention을 대략적으로 설명하면 아래와 같다. Encoder를 거쳐 맥락을 담고 있는 벡터를 계산한다. 벡터와 Decoder 출력 사이..
순환 모델 이해하기 RNN: Recurrent Neural Network은 순환 신경망으로 순서가 있는 sequence 데이터를 학습하는 데 사용한다. 단일 RNN 층을 보면 은닉층($h$)이 순환하며 이전 상태의 정보를 가져간다. 즉, 반복되는 은닉층은 시간에 따른 맥락을 저장한다. Multi-layer RNN을 여러 층으로 쌓으면 위와 같은 형태가 된다. 연산 과정 $t$는 time step이다. $t-1$은 $t$ 바로 이전 상태를 의미한다. 먼저 RNN은 입력 2개를 받는다. 외부 입력($x$) $t-1$ 시점의 은닉층 정보($h^{t-1}$) $t$ 시점 은닉층($h^t$)을 구하는 과정이다. $z_h^t=W_{xh}x^t+W_{hh}h^{t-1}+b_h$ $h^t=\phi_h (z_h^t)$ ..
Optimizer는 모델의 Training Loss를 최소화하는 방향으로 파라미터를 업데이트하는 중요한 역할을 한다. 쉽게 말해 모델을 어떤 방향으로 얼마만큼 업데이트할 것인지를 결정하는 역할을 한다. Optimizer는 Gradient Descent(경사하강법)를 기반으로 한다. 기울기(Gradient)는 학습 방향을 결정하고, 학습률은 학습할 정도를 결정한다. 여기까지 내용을 모른다면 "경사하강법과 학습률" 글을 먼저 이해해야 한다. 아래 내용은 Gradient Descent를 기반으로 한 여러 optimizer의 개념들을 설명한다. SGD momentum Adagrad RMSProp Adam [기호 정리] $w$: 가중치, $t$: 시점(step), $\mu$: 학습률, $L$: Loss 값. SG..
딥러닝으로 모델을 학습시키기 위해 미분 값을 구하는 과정이 필요하다. 만약 왜 미분이 필요한지 모른다면 '경사하강법과 학습률'을 참고하면 된다. 해당 내용을 몰라도 이번 글을 이해하는 데는 문제가 없다. 문제점 Chain-rule 연산자와 미분 결과 계산 과정 시각화 역방향으로 계산 문제점 일반적으로 미분값을 구할 때, 도함수를 구한 후 값을 대입해 계산한다. $f(x)=ax^3+bx^2+c \\ \cfrac{d}{dx}f(x)=3ax^2+2bx$ 하지만 문제는 모델의 연산 과정이 너무 복잡하다. $f(x)=Linear(Droupout( ... (maxpool(relu(conv(...))))))$ 위 예시는 아주 기본적인 CNN 모델의 구조이다. 그리고 가장 많이 사용되는 손실 함수인 Cross Entr..