A A
[NLP] BPTT (Backpropagation Through Time)

BPTT (Backpropagation Through Time)

BPTT(Backpropagation Through Time)๋Š” ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง(RNN, Recurrent Neural Network)์˜ ํ•™์Šต์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” Backpropagation(์—ญ์ „ํŒŒ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ™•์žฅ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

  • ์—ฌ๊ธฐ์„œ์˜ Backpropagation(์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•)์€?
  • '์‹œ๊ฐ„ ๋ฐฉํ–ฅ์œผ๋กœ ํŽผ์นœ ์‹ ๊ฒฝ๋ง์˜ ์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•' ์ด๋ž€ ๋œป์œผ๋กœ BPTT(Backpropagation Through Time)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ˆœํ™˜ ๊ตฌ์กฐ๋ฅผ ํŽผ์นœ RNN ๊ณ„์ธต์—์„œ์˜ Backpropagation(์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•)

  • ์ด BPTT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด RNN์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RNN์— ๊ด€ํ•œ ๊ฐœ๋…์€ ์•„๋ž˜์˜ ๊ธ€์— ์ ์–ด๋†“์•˜์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด ์ฃผ์‹œ๋ฉด ๋ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.
 

[DL] RNN (Recurrent Netural Network) - ์ˆœํ™˜์‹ ๊ฒฝ๋ง

1. RNN ์ด๋ž€?RNN์€ Sequence data๋ฅผ ์ฒ˜๋ฆฌ ํ•˜๊ธฐ ์œ„ํ•œ ์‹ ๊ฒฝ๋ง ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค.์ฃผ๋กœ ์ž์—ฐ์–ด์ฒ˜๋ฆฌ(NLP)๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ Sequence Modeling ์ž‘์—…์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.ํŠน์ง•์œผ๋กœ๋Š” ์‹œ๊ฐ„์ , ๊ณต๊ฐ„์  ์ˆœ์„œ ๊ด€๊ณ„์— ์˜ํ•˜์—ฌ Context๋ฅผ

daehyun-bigbread.tistory.com

  • ๋‹ค๋งŒ, ๊ทธ์ „์— ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๋ฐ”๋กœ ๊ธด ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•  ๋•Œ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
  • ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐ„ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋Š”๊ฒƒ์— ๋น„๋ก€ํ•˜์—ฌ BPTT(Backpropagation Through Time)๊ฐ€ ์†Œ๋น„ํ•˜๋Š” ์ปดํ“จํŒ… ์ž์›์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ์‹œ๊ฐ„ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉด Backpropagation(์˜ค์ฐจ์—ญ์ „ํŒŒ)๋•Œ์˜ Gradient(๊ธฐ์šธ๊ธฐ)๊ฐ€ ๋ถˆ์•ˆ์ •ํ•ด์ง€๋Š”๊ฒƒ๋„ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
BPTT๋ฅผ ์ด์šฉํ•ด Gradient๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด, RNN ๊ณ„์ธต์˜ ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜์—ฌ, ๊ณ„์‚ฐ๋Ÿ‰ & ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Truncated BPTT

  • ํฐ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ทจ๊ธ‰ํ•  ๋•Œ์—” Neural Network(์‹ ๊ฒฝ๋ง)์—ฐ๊ฒฐ์„ ์ ๋‹นํ•œ ๊ธธ์ด๋กœ '๋Š์Šต๋‹ˆ๋‹ค'.
  • ๋„ˆ๋ฌด ๊ธธ์–ด์ง„ ์‹ ๊ฒฝ๋ง์„ ์ ๋‹นํ•œ ์ง€์ ์—์„œ ์ž˜๋ผ๋‚ด์–ด์„œ ์ž‘์€ Neural Network(์‹ ๊ฒฝ๋ง)์„ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ด ์ž˜๋ผ๋‚ธ ์ž‘์€ Neural Network(์‹ ๊ฒฝ๋ง)์—์„œ Backpropagation(์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•)์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๊ฒƒ์ด ๋ฐ”๋กœ Truncated BPTT๋ผ๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
Truncated - '์ž˜๋ฆฐ' ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ ๋‹นํ•œ ๊ธธ์ด๋กœ ์ž˜๋ผ๋‚ธ Backpropagation(์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•)์ด ๋˜๋Š”๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Truncated BPTT์—์„œ Neural Network(์‹ ๊ฒฝ๋ง)์˜ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค๋งŒ, ์ œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด 'Backpropagation(์—ญ์ „ํŒŒ)'์˜ ์—ฐ๊ฒฐ๋งŒ ๋Š์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Forward Propagation(์ˆœ์ „ํŒŒ)์˜ ํ๋ฆ„์€ ๋Š์–ด์ง€์ง€ ์•Š๊ณ  ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค.
  • ํ•œํŽธ, 'Backpropagation(์—ญ์ „ํŒŒ)'์˜ ์—ฐ๊ฒฐ์€ ์ ๋‹นํ•œ ๊ธธ์ด๋กœ ์ž˜๋ผ๋‚ด์„œ, ๊ทธ ์ž˜๋ผ๋‚ธ Neural Network(์‹ ๊ฒฝ๋ง) ๋‹จ์œ„๋กœ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์•ž์—์„œ๋„ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ๊ณ„์‚ฐ์ชฝ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๊ณ„์ธต์ด ๊ธธ์–ด์ง์— ๋”ฐ๋ผ Neural Network(์‹ ๊ฒฝ๋ง)์„ ํ•˜๋‚˜ ํ†ต๊ณผํ•  ๋•Œ ๋งˆ๋‹ค Gradient(๊ธฐ์šธ๊ธฐ)๊ฐ’์ด ์กฐ๊ธˆ์”ฉ ์ž‘์•„์ ธ์„œ, ์ด์ „ ์‹œ๊ฐ t๋กœ Backpropagation(์—ญ์ „ํŒŒ)๋˜๊ธฐ ์ „์— 0์ด ๋˜์–ด ์†Œ๋ฉธ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ ๊ธธ๊ฒŒ ๋ป—์€ Neural Network(์‹ ๊ฒฝ๋ง)์˜ Backpropagation(์—ญ์ „ํŒŒ)๋Š” ์—ฐ๊ฒฐ์„ ์ ๋‹นํ•œ ๊ธธ์ด๋กœ ๋Š์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Backpropagation(์—ญ์ „ํŒŒ)์˜ ์—ฐ๊ฒฐ์„ ์ ๋‹นํ•œ ์ง€์ ์—์„œ ๋Š์Šต๋‹ˆ๋‹ค.

  • ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ Backpropagation(์—ญ์ „ํŒŒ)์˜ ์—ฐ๊ฒฐ์„ ์ž๋ฅด๋ฉด, ๋ฏธ๋ž˜์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ƒ๊ฐํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง‘๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ ๊ฐ๊ฐ์˜ ๋ธ”๋ก๋‹จ์œ„๋กœ, ๋…๋ฆฝ์ ์œผ๋กœ Backpropagation(์—ญ์ „ํŒŒ)๊ฐ€ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์ด๋•Œ Backpropagation(์—ญ์ „ํŒŒ)์˜ ์—ฐ๊ฒฐ์€ ๋Š์–ด์ง€์ง€๋งŒ, Forward Propagation(์ˆœ์ „ํŒŒ)๋Š” ์—ฐ๊ฒฐ ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
    • ์ด๋ง์€ ๋ฐ์ดํ„ฐ๋ฅผ Sequentialํ•˜๊ฒŒ, ์ฆ‰ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ด์ œ Truncated BPTT ๋ฐฉ์‹์œผ๋กœ RNN์„ ํ•™์Šต(์ฒซ๋ฒˆ์จฐ Block data๋ฅผ RNN ๊ณ„์ธต์— ์ œ๊ณต)์‹œ์ผœ ๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์จฐ ๋ธ”๋ก์˜ ์ˆœ์ „ํŒŒ & ์—ญ์ „ํŒŒ: ์ด ๋ธ”๋ก ๋‚ด์—์„œ๋Š” ์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•์ด ์™„๊ฒฐ๋œ๋‹ค.

  • ๊ทธ๋ฆผ์—์„œ ๋ณด๋“ฏ, ๋จผ์ € Forward Propagation(์ˆœ์ „ํŒŒ)๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ, Backpropagation(์—ญ์ „ํŒŒ)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌ๋ฉด ์›ํ•˜๋Š” Gradient(๊ธฐ์šธ๊ธฐ)๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ฒ˜๋Ÿผ ๋‹ค์Œ ๋ธ”๋ก์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด ์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์‹คํ–‰ ํ๋ฆ„์€ ์•„๋ž˜์˜ ๊ทธ๋ฆผ์— ๋‚˜์˜ต๋‹ˆ๋‹ค.

Truncated BPTT์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ˆœ์„œ

  • ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ Truncated BPTT๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•ด์„œ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฐ ์‹์œผ๋กœ Forward Propagation(์ˆœ์ „ํŒŒ)์˜ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋ฉด์„œ, Backpropagation(์—ญ์ „ํŒŒ)๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Truncated BPTT์˜ Mini-Batch ํ•™์Šต

  • Truncated BPTT ์—์„œ Mini-Batch ํ•™์Šต์‹œ ์›๋ž˜๋Œ€๋กœ ๋ผ๋ฉด ๊ตฌ์ฒด์ ์ธ ๋ฐฐ์น˜ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•ด ์œ„์˜ Truncated BPTT ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ˆœ์„œ ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๋Š” ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๊ฐ Mini-Batch์˜ ์‹œ์ž‘ ์œ„์น˜๋กœ '์˜ฎ๊ฒจ์ค˜์•ผ' ํ•ฉ๋‹ˆ๋‹ค.

Mini-Batch ํ•™์Šต์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๊ฐ Mini-Batch(๊ฐ ์ƒ˜ํ”Œ)๋กœ ์˜ฎ๊ธด๋‹ค.

 

  • ์ฒซ๋ฒˆ์จฐ Mini-Batch ์›์†Œ๋ฅผ X0, ... , X9๊ฐ€ ๋˜๊ณ , ๋‘๋ฒˆ์จฐ Mini-Batch ์›์†Œ๋Š” X500, ... , X509๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ด Mini-Batch Data๋ฅผ RNN์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•ด ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ดํ›„๋กœ๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋˜๋ฏ€๋กœ ๋‹ค์Œ์— ๋„˜๊ธธ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ๊ฐ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ 10~19๋ฒˆ์งธ, 510~519๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๋Š” ์‹์ž…๋‹ˆ๋‹ค.
  • ์ด์ฒ˜๋Ÿผ Mini-Batch ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” ๊ฐ Mini-Batch์˜ ์‹œ์ž‘์„ Offset์œผ๋กœ ์˜ฎ๊ฒจ์ค€ ํ›„ ์ˆœ์„œ๋Œ€๋กœ ์ œ๊ณตํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•˜๋‹ค๊ฐ€ ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž…๋ ฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
Truncated BPTT์˜ ์›๋ฆฌ๋Š” ๋‹จ์ˆœํ•˜์ง€๋งŒ, '๋ฐ์ดํ„ฐ ์ œ๊ณต ๋ฐฉ๋ฒ•'์—์„œ๋Š” ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ œ๊ณตํ•˜๊ธฐ, Mini-Batch๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์ž‘์œ„์น˜ ์˜ฎ๊ธฐ๊ธฐ ์ž…๋‹ˆ๋‹ค.

Summary

• RNN์˜ ์ˆœํ™˜ ๊ฒฝ๋กœ๋ฅผ ํŽผ์นจ์œผ๋กœ์จ ๋‹ค์ˆ˜์˜ RNN ๊ณ„์ธต์ด ์—ฐ๊ฒฐ๋œ ์‹ ๊ฒฝ๋ง์œผ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณดํ†ต์˜ ์˜ค์ฐจ์—ญ์ „ํŒŒ๋ฒ•์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค (=BPTT).
• ๊ธด ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ ๋‹นํ•œ ๊ธธ์ด์”ฉ ๋ชจ์œผ๊ณ  (์ด๋ฅผ ‘๋ธ”๋ก’์ด๋ผ ํ•œ๋‹ค), ๋ธ”๋ก ๋‹จ์œ„๋กœ BPTT์— ์˜ํ•œ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•œ๋‹ค(=Truncated BPTT).
• Truncated BPTT์—์„œ๋Š” ์—ญ์ „ํŒŒ์˜ ์—ฐ๊ฒฐ๋งŒ ๋Š๋Š”๋‹ค.
• Truncated BPTT์—์„œ๋Š”์ˆœ์ „ํŒŒ์˜ ์—ฐ๊ฒฐ์„์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ‘์ˆœ์ฐจ์ ’์œผ๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.