๐Ÿ—๏ธ

Hierarchical RNN

๊ณ„์ธต์  ์ˆœํ™˜์‹ ๊ฒฝ๋ง - ๋‹ค์ธต ๊ตฌ์กฐ๋ฅผ ํ†ตํ•œ ๋ณต์žกํ•œ ํŒจํ„ด ํ•™์Šต

๋”ฅ๋Ÿฌ๋‹ ์ˆœํ™˜์‹ ๊ฒฝ๋ง ๊ณ„์ธต๊ตฌ์กฐ

๊ฐœ์š”

Hierarchical RNN์ด๋ž€?

Hierarchical RNN์€ ์—ฌ๋Ÿฌ ์ธต์˜ RNN์„ ๊ณ„์ธต์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๊ฐ„ ์Šค์ผ€์ผ์˜ ํŒจํ„ด์„ ๋™์‹œ์— ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ๊ฒฝ๋ง ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ๊ฐ ์ธต์€ ์„œ๋กœ ๋‹ค๋ฅธ ์ถ”์ƒํ™” ์ˆ˜์ค€์—์„œ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ํ•˜์œ„ ์ธต์€ ์„ธ๋ถ€์ ์ธ ํŒจํ„ด์„, ์ƒ์œ„ ์ธต์€ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์ธ๊ฐ„์˜ ์ธ์ง€ ๊ณผ์ •๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ, ๋ณต์žกํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ๋‹ค์–‘ํ•œ ์‹œ๊ฐ„์  ํŠน์„ฑ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•

  • ๋‹ค์ธต ๊ณ„์ธต ๊ตฌ์กฐ
  • ๋‹ค์ค‘ ์‹œ๊ฐ„ ์Šค์ผ€์ผ
  • ์ ์ง„์  ์ถ”์ƒํ™”
  • ์žฅ๊ฑฐ๋ฆฌ ์˜์กด์„ฑ
  • ํšจ์œจ์ ์ธ ์ •๋ณด ์ฒ˜๋ฆฌ

๊ธฐ์ˆ ์  ์„ธ๋ถ€์‚ฌํ•ญ

์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ

ํ•˜์œ„ ์ธต (Lower Layer)

์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์„ธ๋ถ€์ ์ธ ํŒจํ„ด๊ณผ ๋‹จ๊ธฐ ์˜์กด์„ฑ์„ ํ•™์Šตํ•˜๋Š” ์ธต

์ค‘๊ฐ„ ์ธต (Middle Layer)

์ค‘๊ฐ„ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ค‘๊ธฐ ์˜์กด์„ฑ์„ ์ฒ˜๋ฆฌ

์ƒ์œ„ ์ธต (Upper Layer)

์ „์ฒด์ ์ธ ๊ตฌ์กฐ์™€ ์žฅ๊ธฐ ์˜์กด์„ฑ์„ ํ•™์Šตํ•˜๋Š” ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”

์ž‘๋™ ์›๋ฆฌ

1๋‹จ๊ณ„: ํ•˜์œ„ ์ธต์—์„œ ์„ธ๋ถ€ ํŒจํ„ด ํ•™์Šต

2๋‹จ๊ณ„: ์ค‘๊ฐ„ ์ธต์—์„œ ์ค‘๊ฐ„ ์ˆ˜์ค€ ์ถ”์ƒํ™”

3๋‹จ๊ณ„: ์ƒ์œ„ ์ธต์—์„œ ์ „์ฒด ๊ตฌ์กฐ ํŒŒ์•…

4๋‹จ๊ณ„: ๊ฐ ์ธต์˜ ์ •๋ณด๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ตœ์ข… ์ถœ๋ ฅ ์ƒ์„ฑ

์‘์šฉ ๋ถ„์•ผ

์ž์—ฐ์–ด ์ฒ˜๋ฆฌ

๋ฌธ์žฅ, ๋‹จ๋ฝ, ๋ฌธ์„œ ์ˆ˜์ค€์˜ ๊ณ„์ธต์  ์–ธ์–ด ๊ตฌ์กฐ ๋ชจ๋ธ๋ง

์Œ์•… ์ƒ์„ฑ

์Œํ‘œ, ๋งˆ๋””, ์•…์ ˆ ์ˆ˜์ค€์˜ ๊ณ„์ธต์  ์Œ์•… ๊ตฌ์กฐ ์ƒ์„ฑ

์‹œ๊ณ„์—ด ์˜ˆ์ธก

๋‹ค์–‘ํ•œ ์‹œ๊ฐ„ ์Šค์ผ€์ผ์˜ ํŒจํ„ด์„ ๋™์‹œ์— ๊ณ ๋ คํ•œ ์˜ˆ์ธก

์žฅ์ 

  • ๋‹ค์ค‘ ์‹œ๊ฐ„ ์Šค์ผ€์ผ ์ฒ˜๋ฆฌ
  • ์žฅ๊ฑฐ๋ฆฌ ์˜์กด์„ฑ ํ•™์Šต
  • ํšจ์œจ์ ์ธ ์ •๋ณด ์••์ถ•
  • ํ•ด์„ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ
  • ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜

ํ•œ๊ณ„์ 

  • ๋ณต์žกํ•œ ๊ตฌ์กฐ
  • ๋†’์€ ๊ณ„์‚ฐ ๋น„์šฉ
  • ํ•™์Šต ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์˜ ์–ด๋ ค์›€
  • ๊ทธ๋ž˜๋””์–ธํŠธ ์†Œ์‹ค ๋ฌธ์ œ

๊ตฌํ˜„ ๋ฐ ์‚ฌ์šฉ๋ฒ•

ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

pip install torch
pip install numpy
pip install tensorflow

๊ธฐ๋ณธ ์‚ฌ์šฉ ์˜ˆ์‹œ

# Hierarchical RNN ๋ชจ๋ธ
class HierarchicalRNN(nn.Module):
def __init__(self):
super().__init__()
self.lower_layer = nn.LSTM(...)
self.upper_layer = nn.LSTM(...)

์—ฐ๊ตฌ ๋ฐ ๊ฐœ๋ฐœ ํ˜„ํ™ฉ

์ดˆ๊ธฐ ์—ฐ๊ตฌ

1990๋…„๋Œ€๋ถ€ํ„ฐ ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์‹ ๊ฒฝ๋ง์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์œผ๋ฉฐ, ์‹œ๊ฐ„์  ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์ค‘์š”์„ฑ์ด ์ธ์‹๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ๋ฐœ์ „

Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋”์šฑ ๊ฐ•๋ ฅํ•œ ๋ชจ๋ธ๋“ค์ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ๋„๋ฉ”์ธ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ƒํƒœ

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

๋ฏธ๋ž˜ ์ „๋ง

๋ฐœ์ „ ๋ฐฉํ–ฅ

  • Attention ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ์˜ ๊ฒฐํ•ฉ
  • ํšจ์œจ์ ์ธ ํ•™์Šต ๋ฐฉ๋ฒ• ๊ฐœ๋ฐœ
  • ์ž๋™ ๊ตฌ์กฐ ํƒ์ƒ‰
  • ๋‹ค์–‘ํ•œ ๋„๋ฉ”์ธ ์ ์šฉ

์˜ˆ์ƒ ์‘์šฉ ๋ถ„์•ผ

  • ์ธ์ง€ ๊ณผํ•™
  • ๋กœ๋ด‡ ์ œ์–ด
  • ๊ฒฝ์ œ ์˜ˆ์ธก
  • ์ƒ๋ฌผํ•™์  ์‹œ๊ณ„์—ด