AI/Machine Learning

Seq2Seq

proggg 2024. 1. 28. 16:42

Seq2Seq

ํƒœ๊ทธ: Attention

Sequence-to-Sequence

Structure

์ž…๋ ฅ ๋œ ์‹œํ€€์Šค๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์‹œํ€€์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ชจ๋ธ. ์ฑ—๋ด‡๊ณผ ๋ฒˆ์—ญ์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ธ๋ฐ, ์ž…๋ ฅ์‹œํ€€์Šค์™€ ์ถœ๋ ฅ ์‹œํ€€์Šค๋ฅผ ๊ฐ๊ฐ ์งˆ๋ฌธ๊ณผ ๋Œ€๋‹ต์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ์ฑ—๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ๋ฒˆ์—ญ๊ธฐ๋กœ๋„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ค„์—ฌ์„œ Seq2Seq ๋ถ€๋ฅธ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 3.36.32.png

๋ฒˆ์—ญ๊ธฐ๊ฐ€ Seq2Seq ๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ์„ ํ•˜๋Š” ๊ตฌ์กฐ์ธ๋ฐ, ๊ทธ ์ž์„ธํ•œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 3.39.10.png

Seq2Seq ๋Š” ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๋กœ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ์ธ์ฝ”๋”๋Š” ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ๋ชจ๋“  ๋‹จ์–ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์€ ๋’ค์— ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ , ์˜๋ฏธ๋ฒกํ„ฐ ( Context Vector ) ๋กœ ๋งŒ๋“ ๋‹ค. ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋กœ ์••์ถ•๋˜๋ฉด ๋””์ฝ”๋”๋กœ ๋ณด๋‚ด๋Š”๋ฐ ๋””์ฝ”๋”๋Š” ์ด ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ฅผ ๋””์ฝ”๋”์— ํ•™์Šต ๋œ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 3.40.28.png

์ธ์ฝ”๋” ๋ถ€๋ถ„๊ณผ ๋””์ฝ”๋” ๋ถ€๋ถ„์˜ ๋‚ด๋ถ€๋Š” RNN ์ธ LSTM์ด๋‚˜ GRU ์…€๋“ค๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๋””์ฝ”๋”๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ RNN Language Model ์ธ๋ฐ, ๋””์ฝ”๋”์— ์ดˆ๊ธฐ์ž…๋ ฅ์œผ๋กœ ๋ฌธ์žฅ์˜ ์‹œ์ž‘์„ ์˜๋ฏธํ•˜๋Š” ๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

๋””์ฝ”๋”๋Š” ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด, ๋‹ค์Œ์— ๋“ฑ์žฅํ•  ํ™•๋ฅ ์ด ๋†’์€ ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ์ฒซ๋ฒˆ์งธ ์‹œ์ ์˜ ( time step ) ์˜ ๋””์ฝ”๋” RNN ์…€์€ ๋‹ค์Œ์— ๋“ฑ์žฅํ•  ๋‹จ์–ด๋กœ je ๋ฅผ ์˜ˆ์ธกํ–ˆ๋Š”๋ฐ, ์ด๋ฅผ ๋‘๋ฒˆ์งธ RNN ์…€์˜ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿผ ๋‘๋ฒˆ์งธ ์…€์€ je ๋กœ ๋ถ€ํ„ฐ suis ๋ฅผ ์˜ˆ์ธกํ•˜๊ณ  ์ด๊ฒƒ์„ ๋‹ค์Œ ์…€๋กœ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๋„ ๋ฌธ์žฅ์˜ ๋์„ ์˜๋ฏธํ•˜๋Š” ๊ฐ€ ๋‹ค์Œ ๋‹จ์–ด๋กœ ์˜ˆ์ธก์ด ๋  ๋•Œ๊นŒ์ง€ ์ด๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

Embedding Layer

์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด์•˜์œผ๋‹ˆ, ๋” ์ž์„ธํžˆ seq2seq์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ๋‹จ์–ด๋Š” ์ž„๋ฒ ๋”ฉ ๋ ˆ์ด์–ด๋ฅผ ํ†ตํ•ด ํ† ํฐํ™”์ดํ›„ ๋ฒกํ„ฐํ™”๊ฐ€ ๋œ๋‹ค. ํ…์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฒกํ„ฐ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 3.45.41.pngแ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 3.47.27.png

4์ฐจ์›์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์ง€๋งŒ, ์‹ค์ œ ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ๋ฅผ ์ˆ˜๋ฐฑ๊ฐœ์˜ ์ฐจ์›์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

RNN CELL

Embedding Layer ๋ฅผ ํ†ตํ•ด ๋ฒกํ„ฐํ™” ๋œ ๋‹จ์–ด๋“ค์ด RNN ์…€์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ, ์ด RNN ์…€์„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 3.51.22.png

RNN ์…€์€ ๊ฐ๊ฐ์˜ ์‹œ์  ( time step ) ๋งˆ๋‹ค ๋‘๊ฐœ์˜ ์ž…๋ ฅ์ด ์กด์žฌํ•˜๊ณ , ์ž…๋ ฅ์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ์€๋‹‰ ์ƒํƒœ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ฆ‰ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค.

  1. ํ˜„์žฌ ์‹œ์  time-step t ๋ผ๊ณ  ํ•  ๋•Œ, t-1 ์˜ ์€๋‹‰ ์ƒํƒœ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค.
  2. ํ˜„์žฌ ์‹œ์  time-step t ๋ผ๊ณ  ํ•  ๋•Œ, t ์—์„œ์˜ ์ž…๋ ฅ๋ฒกํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค.
  3. ํ˜„์žฌ ์‹œ์  t ์˜ ์€๋‹‰ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค.
  4. ์ด๋•Œ t ์—์„œ์˜ ์€๋‹‰์ƒํƒœ๋Š” ๋˜ ๋‹ค๋ฅธ ์€๋‹‰์ธต์œผ๋กœ ๋ณด๋‚ด๊ฑฐ๋‚˜ ํ•„์š” ์—†์œผ๋ฉด ๊ฐ’์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
  5. t ์€๋‹‰์ƒํƒœ๋ฅผ t+1 Cell ์˜ ์ž…๋ ฅ์œผ๋กœ ๋ณด๋‚ธ๋‹ค.

์ด๋ ‡๋“ฏ ์ด์ „ ์…€์˜ ์€๋‹‰์ƒํƒœ ๊ฐ’๋“ค์ด ํ˜„์žฌ ๊ฐ’ ์—ฐ์‚ฐ์— ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์˜ ๋ชจ๋“  ์…€๋“ค์˜ ์ •๋ณด๋ฅผ ์š”์•ฝํ•ด์„œ ๋‹ด๊ณ  ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

Decoder Cell

๋””์ฝ”๋”๋Š” ์ธ์ฝ”๋”์˜ ๋งˆ์ง€๋ง‰ RNN ์…€์˜ ์€๋‹‰ ์ƒํƒœ์ธ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ฅผ ์ฒซ๋ฒˆ์งธ ์€๋‹‰์ƒํƒœ์˜ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๋””์ฝ”๋”์˜ ์ฒซ๋ฒˆ์งธ RNN ์…€์€ ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ์™€ ํ˜„์žฌ์‹œ์  t ์—์„œ์˜ ์ž…๋ ฅ๊ฐ’์ธ ๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ์— ๋“ฑ์žฅํ•  ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ธก๋œ ๋‹จ์–ด๋Š” t+1 ์‹œ์ ์˜ ์…€์— ์€๋‹‰์ƒํƒœ๊ฐ’์˜ ์ž…๋ ฅ๊ฐ’์ด ๋œ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-01-28 แ„‹แ…ฉแ„’แ…ฎ 4.07.36.png

์ถœ๋ ฅ๋‹จ์–ด๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š”๋ฐ, seq2seq ๋ชจ๋ธ์€ ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์ถœ๋ ฅ ์‹œํ€€์Šค์˜ ๋‹จ์–ด๋ณ„ ํ™•๋ฅ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋””์ฝ”๋”๊ฐ€ ์ถœ๋ ฅ ๋‹จ์–ด๋ฅผ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.