์ฝ์ ์๋ฃ:
https://hulk89.github.io/neural%20machine%20translation/2017/04/04/attention-mechanism/
Image Captioning
https://greeksharifa.github.io/computer%20vision/2019/04/17/Visual-Question-Answering/
- Image captioning: ์ด๋ฏธ์ง๋ฅผ ์ฃผ๋ฉด ๊ทธ ์ด๋ฏธ์ง๋ฅผ ์ค๋ช ํ๋ ๋ฌธ์ฅ์ ๋ง๋๋ ๊ฒ
- VQA (Visual Question Answering): ์ด๋ฏธ์ง์ ๊ทธ ์ด๋ฏธ์ง์ ๋ํ ์ง๋ฌธ์ด ์ฃผ์ด์ก์ ๋ ์ฌ๋ฐ๋ฅธ ๋ต๋ณ์ ๋ง๋ค์ด๋ด๋ ๊ฒ
Attention
Motivation
Image captioning์ด๋ ๋ฒ์ญ์ด๋ Source๋ฅผ Target์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ Encoder - Decoder๋ก ์ด๋ฃจ์ด์ง ๋ชจ๋ธ์ ์๊ฐํ ์ ์๋ค. Attention ์ด์ ์๋ Source์ ์ ๋ณด๋ฅผ ํ๋์ ๋ฒกํฐ s๋ก Encodeํ๊ณ ์ด๋ฅผ ๋ค์ Decodeํ์๋ค. ๊ทธ๋ฐ๋ฐ, ๊ฐ๋ น ๋ด๊ฐ ์๋์ ๊ฐ์ ๋ฒ์ญ์ ํ๊ณ ์ถ๋ค๊ณ ํ์.
The cat eats the mouse
โ Die katze frisst die maus
frisst๋ ์ ๋ฌธ์ฅ์ eats์ ํด๋น๋๋ ๋จ์ด์ธ๋ฐ, frisst๋ฅผ ๋ง๋ค ๋ eats์ ๋ํ ์ ๋ณด๊ฐ ํ๋ฌ์จ ๊ฒฝ๋ก๋ฅผ ๋ณด๋ฉด ๋งค์ฐ ๊ธธ๋ฉฐ (๊ทธ๋์ ๋ง์ transformations๊ฐ ๊ฐ์ ๋ ์ ์์ผ๋ฉฐ: Long-range dependency) eats์ ํน์ ๋๋ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํ์ง๋ ์๋๋ค. ๊ทธ๋์ frisst๋ฅผ ๋ง๋ค ๋ eats์ ์ง์คํ ์ ์๋๋ก ํ๋ ๊ฒ์ด Attention์ด๋ค.
"Before with RNNs, the entire sentence-to-sentence translation is one sample because we need to back propagate through all of these RNN steps (because they all happen in sequence). Here (with Attention) basically output of one single token is one sample. And then the computation is finished the back propagate through everything for this one step."
Query, Key, and Value
Q, K, V๋ก ๋ถ๋ฆฌ๋ Query, Key, Value๋ ๊ฐ๊ฐ ๋ฌด์์ผ๊น? ์ด๊ฒ์ ๋ํ ๋ช ์์ ์ธ ๋ต์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ค์ ๋ค..
์ ํฌ๋ธ์์๋ ์๋์ ๊ฐ์ด ์ค๋ช ํ๋ค.
Q: output by the encoding part of target sentence
K, V: output by the encoding part of source sentence
์ง๊ธ๊น์ง ๋ด๊ฐ ์ดํดํ๋๋ก ์ ๋ฆฌํด๋ณด๋ฉด ...
Q: Target sentence๋ฅผ ๋ง๋๋ ๊ณผ์ ์์, "ํ์ฌ๊น์ง ์ด๋ ๊ฒ Sentence๋ฅผ ๋ง๋ค์ด ์๋๋ฐ ๊ทธ๋ผ ์ด๋ฒ ์คํ ์์๋ ์ด๋ค ๋จ์ด๊ฐ ๋์์ผ ํด?" ํ๋ ์ฟผ๋ฆฌ. Target์์ ํ์ฌ๊น์ง์ context๋ฅผ ๋ด๊ณ ์๋ค. (ํํฌ ๋ธ๋ก๊ทธ ๊ธ์์ c์ ํด๋น)
K: Input sentence์ ๊ฐ ๋ถ๋ถ์ผ๋ก, Q์ ์ ์ฌ๋๋ฅผ ๊ฒ์ฌํ๋ ๋์. ์ฌ๊ธฐ์ ์ ์ฌ๋๋ Q๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ผ๋ง๋ ๋์์ด ๋๋ ์ ๋ณด์ธ๊ฐ (์ฆ Q๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ด K์ ์ผ๋ง๋ Attention์ ์ค์ผ ํ๋๊ฐ)๋ฅผ ์๋ฏธํ๋ค. ๊ฐ๋ น ์์ ์์์ frisst๋ฅผ ๋ง๋ค์ด ๋ผ ์คํ ์์ eats๊ฐ ์ผ๋ง๋ ๋์์ด ๋๋ ์ ๋ณด์ธ๊ฐ๋ฅผ ํ์งํ๋ค. (๋ฌผ๋ก The, cat, eats, the, mouse์ ๋ํด ๊ฐ๊ฐ ์ผ๋ง๋ ๋์์ด ๋๋์ง๋ฅผ ํ๋จํ๊ณ , softmax๋ฅผ ์ทจํด eats๊ฐ ๊ฐ์ฅ ๋์์ด ๋๋ ์ ๋ณด๋ผ๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.) Value๋ฅผ Indexing ํ๋ ์ญํ ๋ ํ๋ค. (Index hidden states via softmax)
V: (K1, V1), (K2, V2) ... ์ด๋ฐ ์์ผ๋ก K์ Corresponding ํ๋ ๊ฐ. ์์์ ์ค๋ช ํ softmax ๊ฐ์ ๊ณฑํด์ง๋ ๊ฐ. ์ํฉ์ ๋ฐ๋ผ K์ V๋ ๊ฐ์ ๊ฐ์ด ๋ ์๋ ์๋ ๋ฏ. (ํํฌ ๋ธ๋ก๊ทธ ๊ธ์์ K์ V๋ yi์ ํด๋น)
์ ํ๋ธ์์๋ ์์ ๊ฐ์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ๋ค.
(๋ฐฐ๊ฒฝ: Q, Ki๋ ๊ฐ๊ฐ ๋ฒกํฐ์ด๊ณ , ๊ฐ Ki์ ๋์๋๋ Vi๊ฐ ์๋ค.)
"We compute the dot-product with each of the keys and then we compute a softmax over this - which means that one key will basically selected (k2). That has the biggest dot-product with Q. This is kind of indexing scheme into this memory of values."
"Basically, the encoder of the source sentence discovers interesting things and it builds Key-Value pairs. And then the encoder of the target sentence builds the Queries. And together they give you kind of the next signal."
"Here's a bunch of things about the source sentence that you might find interesting - that's the value V. The Keys are ways to index the values. And Q is like 'I want to know certain things.'."
Mechanism
๊ฐ๋จํ ๋งํ๋ฉด Attention์ ...
- ์ธํ์ n๊ฐ์ ๋ถ๋ถ์ผ๋ก ๋๋๊ณ Encoder๋ก ๊ฐ ๋ถ๋ถ์ ๋ํ ํํ์ธ h1, ..., hn์ ๋ง๋ ๋ค. (๊ฐ hidden state)
- ์์ํ์ ๋ง๋๋ ์ด๋ค ์๊ฐ c์์ h1, ..., hn ์ค ๊ด๋ จ๋ ๋ถ๋ถ์ด ๋ฌด์์ธ์ง ์ฐพ๋๋ค. (c๋ context์ ์ฝ์๋ก ๊ทธ ์๊ฐ์ context๋ฅผ ๋ด๊ณ ์๋ค๊ณ ์๊ฐํ ์ ์์)
'๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋ > OCR' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Multi-GPU Model์์ h5(hdf5)๋ฅผ ๋ก๋ํ์ง ๋ชปํ๋ ๋ฌธ์ (0) | 2019.08.13 |
---|---|
Variable Scope ๊ณต๋ถ (0) | 2019.08.13 |
Attention Is All You Need ๊ณต๋ถ (0) | 2019.08.09 |
ResNet ๊ณต๋ถ (0) | 2019.07.31 |
Simultaneous Recognition of Horizontal and Vertical Text in Natural Images (2018.12) (0) | 2019.07.29 |
๋๊ธ