๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1๏ธโƒฃ AI•DS/๐Ÿ“— NLP

[cs224n] 4๊ฐ• ๋‚ด์šฉ ์ •๋ฆฌ

by isdawell 2022. 3. 18.
728x90

๐Ÿ’ก ์ฃผ์ œ : Backpropagation and Computation Graphs 

 

๐Ÿ“Œ ๋ชฉ์ฐจ ์ •๋ฆฌ 

 

1. Matrix gradient for NN

 

(1) NN ์˜ ๊ณผ์ •

  • feedforward : X * W = output vector = predict ๊ฐ’ 
  • backpropagation : output vector ๋ฅผ weight matrix ์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ 

 

(2) ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ (parameter) ์˜ ๋ฏธ๋ถ„ 

 

  • Chain Rule : ํ•จ์ˆ˜์˜ ์—ฐ์‡„๋ฒ•์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ๊ณ„์‚ฐ ๊ทœ์น™ (ํ•ฉ์„ฑํ•จ์ˆ˜์˜ ๋ฏธ๋ถ„) 
    • NN ์€ chain rule ์„ ์ด์šฉํ•ด ์ตœ์ข… scalar ๊ฐ’์„ weight ๋กœ ๋ฏธ๋ถ„ํ•ด๊ฐ€๋ฉฐ ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค. 

  • dz/dw ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ • 

 

 

 

(3) Gradient Tips

 

  • ๋ณ€์ˆ˜๋ฅผ ์ž˜ ์ •์˜ํ•˜๊ณ  ์ฐจ์›์„ ๊ณ„์† ์ƒ๊ฐํ•˜๊ณ  ์žˆ์„ ๊ฒƒ 
  • Chain Rule ์„ ์ž˜ ์ˆ™์ง€ํ•  ๊ฒƒ 
  • ๋ชจ๋ธ ๋งˆ์ง€๋ง‰ softmax ๊ฐ’์— ๋Œ€ํ•ด์„œ correct class ์™€ incorrect class ์— ๋Œ€ํ•ด ๋”ฐ๋กœ ๋ฏธ๋ถ„ํ•˜์—ฌ ๊ณ„์‚ฐํ•  ๊ฒƒ 
  • ํ–‰๋ ฌ ๋ฏธ๋ถ„ ๋ฐฉ๋ฒ•์ด ํ—ท๊ฐˆ๋ฆฌ๋ฉด element-wise ๋ถ€๋ถ„ ๋ฏธ๋ถ„์„ ์—ฐ์Šตํ•  ๊ฒƒ 
  • Shape convention ์„ ์ด์šฉํ•  ๊ฒƒ ( error message 

 

(4) Word vector ์— ๋Œ€ํ•œ ๋ฏธ๋ถ„ 

 

  • window ๋‹จ์œ„๋กœ ๋‹จ์–ด ๋ฒกํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ฒŒ ๋œ๋‹ค. 
  • ๋‹จ์–ด๋ฒกํ„ฐ๋“ค์ด task ์— ๋„์›€์ด ๋˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ณ€ํ™”ํ•œ๋‹ค. 

 

(4) Word vector ๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ ๐Ÿค”

glove ๋กœ ์›Œ๋“œ ์ž„๋ฒ ๋”ฉ์„ ํ•˜๋ฉด, ์„ธ ๋‹จ์–ด๋Š” ๊ธฐ๋ณธ์ ์ธ ์˜๋ฏธ๊ฐ€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋น„์Šทํ•œ ์œ„์น˜์— ์กด์žฌํ•  ๊ฒƒ

ํ•™์Šต ๋ฐ์ดํ„ฐ์— TV, telly ๊ฐ€ ์žˆ๊ณ  television ์€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž

๐Ÿ‘‰ TV ์™€ telly ๋Š” ๋ชจ๋ธ์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉฐ ์›€์ง์ž„

๐Ÿ‘‰ ๊ทธ๋Ÿฌ๋‚˜ television ์€ ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์— ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ด์œ ๋กœ ๊ฐ€์ค‘์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜์ง€ ๋ชปํ•˜์—ฌ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ ๋‹จ์–ด๋กœ ์ž˜๋ชป ๋ถ„๋ฅ˜๋จ 

 

๐Ÿ‘€ ์œ„์˜ ๊ฒฝ์šฐ์—๋Š” Pre-trained ๋œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค! 

 

 

 

(5) Pre-trained Model 

 

  • ๊ทœ๋ชจ๊ฐ€ ํฐ corpus ๋ฐ์ดํ„ฐ์…‹์— ์ด๋ฏธ ํ•™์Šต๋˜์–ด ์žˆ๋Š” ๋ชจ๋ธ 
  • Word2vec, Glove ๋ชจ๋‘ pre-trained ๋ชจ๋ธ์ด๋‹ค. 
  • pre-trained ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด TV, telly, television ๊ฐ™์ด ๋น„์Šทํ•œ ๋‹จ์–ด์˜ ๊ฒฝ์šฐ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ ์…‹ ํฌํ•จ ์œ ๋ฌด์— ๊ด€๊ณ„ ์—†์ด ์ผ์ • ์ˆ˜์ค€์˜ ์œ ์‚ฌ ๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋œ๋‹ค. 
  • ๋ฐ์ดํ„ฐ์–‘์ด 100๋งŒ๊ฐœ ์ด์ƒ์ด๋ฉด ๋žœ๋ค ์›Œ๋“œ ๋ฒกํ„ฐ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋ชจ๋ธ์„ ํ•™์Šต์‹œ์ผœ๋„ ๊ดœ์ฐฎ์Œ 

 

(6) Fine - Tuning 

 

  • ๊ธฐ์กด์— ํ•™์Šต๋œ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ์˜ ๊ตฌ์กฐ๋ฅผ ๋ชฉ์  task ์— ๋งž๊ฒŒ ๋ณ€ํ˜•ํ•˜๊ณ  ์ด๋ฏธ ํ•™์Šต๋œ Weight ๋กœ ๋ถ€ํ„ฐ ํ•™์Šต์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ• 
  • Training Dataset ์ด ๋งŽ์€ ๊ฒฝ์šฐ์— fine tuning ์„ ํ•˜์—ฌ word vector ๋ฅผ ํ•™์Šต์‹œํ‚ค๋ฉด ์„ฑ๋Šฅ์ด ์ข‹์•„์ง 

* retraining : data ๋ฅผ ์ƒˆ๋กœ ๊ฐ€์ ธ์™€์„œ train ๊ณผ์ •๋ถ€ํ„ฐ ๋‹ค์‹œ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ 

 

 

 

2. Computation Graphs and Backpropagation 

 

(1) Computational Graph 

 

  • ๊ณ„์‚ฐ ๊ทธ๋ž˜ํ”„ : ๊ณ„์‚ฐ ๊ณผ์ •์„ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ node ์™€ ์„ (edge) ๋กœ ํ‘œํ˜„๋œ๋‹ค. 

NN ์„ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ!

 

(2) Forward Propagation  

 

  • x (input) ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ s ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉํ–ฅ๊นŒ์ง€์˜ ์—ฐ์‚ฐ ๊ณผ์ • 

 

(3) Back Propagation  

 

  • ์ˆœ์ „ํŒŒ๋ฅผ ํ†ตํ•ด ์–ป์–ด์ง„ ๊ฒฐ๊ณผ๊ฐ’๊ณผ ์‹ค์ œ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐ ๐Ÿ‘‰ ์˜ค์ฐจ๋ฅผ ๋ฏธ๋ถ„ํ•˜์—ฌ ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธ!

  • Single Node (single input) 
    • upstream gradient → local gradient → downstream gradient 

Downstream = Local * Upstrean

โœจ chain rule โœจ 

 

  • single node (muliple input) 

x, z : vector, W : matrix

  • ๊ณ„์‚ฐ ํšจ์œจ์„ฑ : ์—ญ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ๋ฏธ๋ถ„๊ฐ’์„ ์–ป๋Š” ๊ฒƒ 

๋ฏธ๋ถ„๊ฐ’์„ ์ž˜ ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’์„ ๊ณ„์‚ฐํ•  ๋•Œ ๋น ๋ฅด๊ฒŒ ๊ฐ’์„ ๋Œ€์ž… 

 

(4) Gradient ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• 

 

  • Analytic ํ•ด์„์  ๋ฐฉ๋ฒ• ๐Ÿ‘‰ ์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋˜ computational graph ๋ฅผ ํ†ตํ•œ Chain rule ๊ธฐ๋ฐ˜ ๊ณ„์‚ฐ ๋ฐฉ์‹์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‚˜ ๊ณ„์‚ฐ ๊ณผ์ •์—์„œ ์‹ค์ˆ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌ  
    • ์ฐธ๊ณ . pytorch ๋‚˜ tensorflow ๋“ฑ์˜ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐœ๋‹ฌ ์ด์ „์—๋Š” ์ง์ ‘ Gradient ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธ ํ–ˆ์—ˆ์Œ 
  • Numerical ์ˆ˜์น˜์  ๋ฐฉ๋ฒ• : ์‰ฝ๊ฒŒ ๋ฏธ๋ถ„๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ๋งŽ์Œ 

  • (hybrid) : ํŠน์ • weight ์— ๋Œ€ํ•œ ๋ฏธ๋ถ„์ด ์ž˜ ๊ณ„์‚ฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์น˜์  ๋ฐฉ๋ฒ•์œผ๋กœ check ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 

 

 

3. Tips for NN 

 

(1) Regularization to prevent overfitting 

 

R2 ๊ทœ์ œํ•ญ

  • ๊ณผ์ ํ•ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด feature ๋“ค์ด ๋งŽ์€ ๋ฐ์ดํ„ฐ์…‹์˜ ๊ฒฝ์šฐ θ ์— ๋Œ€ํ•œ ๊ทœ์ œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

(2) Vectorization

 

  • for loop ์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ element ์— ์ผ์ผํžˆ ์ ‘๊ทผํ•˜๋Š” ์—ฐ์‚ฐ๋ณด๋‹ค ํ–‰๋ ฌ & ๋ฒกํ„ฐ ๊ธฐ๋ฐ˜์˜ ์—ฐ์‚ฐ์˜ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. 

 

(3) Nonlinearities 

 

 

  • ReLU ์™€ ๊ฐ™์€ ๋น„์„ ํ˜• ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

 

(4) Initialization

 

  • ๊ฐ€์ค‘์น˜๋ฅผ small random value ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. 
  • ์€๋‹‰์ธต & ์ถœ๋ ฅ์ธต์˜ bias ๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. 
  • ๋‹ค๋ฅธ Weight๋“ค์€ ๋„ˆ๋ฌด ํฌ์ง€๋„, ์ž‘์ง€๋„ ์•Š์€ ๋ฒ”์œ„ ๋‚ด์˜ Uniform distribution์—์„œ ์ž„์˜๋กœ ์ถ”์ถœํ•œ๋‹ค.

 

(5) Optimizers 

 

  • SGD ์„ ๋ณดํ†ต ์‚ฌ์šฉ 
  • ๋ณต์žกํ•œ ์‹ ๊ฒฝ๋ง์ผ ๋• Adaptive ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 
  • Adaptive Optimizer ๐Ÿ‘‰ ๊ณ„์‚ฐ๋œ Gradient ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ•์ ํ•˜๋ฉฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ์‹ 
    • Adagrad, RMSprop, Adam, SparseAdam

 

(6) Learning Rates 

 

  • 0.001 ์ •๋„
  • ๊ฐ’์ด ๋„ˆ๋ฌด ํฌ๋ฉด ๋ชจ๋ธ์ด ๋ฐœ์‚ฐ, ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ์—…๋ฐ์ดํŠธ์–‘์ด ์ž‘์•„ ํ•™์Šต์ด ๋Š๋ ค์ง
  • ํ•™์Šต์„ ์ง„ํ–‰ ์‹œํ‚ค๋ฉด์„œ ํ•™์Šต๋ฅ ์„ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๋„์›€์ด ๋จ!

 

728x90

๋Œ“๊ธ€