์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ณธ๋ก 6] :: deep neural network์—์„œ์˜ backpropagation

deep neural network์—์„œ์˜ backpropagation

backpropagation

์›๋ž˜ backpropagation(์—ญ์ „ํŒŒ)๋Š” ํ•™์Šต ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ perceptron์—์„œ loss function์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋œปํ•˜์ง€๋งŒ, ๋„“์€ ์˜๋ฏธ์—์„œ๋Š” ๊ธฐ์šธ๊ธฐ๋ฅผ ์ด์šฉํ•œ ํ•™์Šต ๋ฐฉ์‹์œผ๋กœ ์“ฐ์ธ๋‹ค.

์ฐธ๊ณ  : https://en.wikipedia.org/wiki/Backpropagation

delta rule

https://en.wikipedia.org/wiki/Delta_rule

delta rule์˜ ์ •์˜์™€ ์ฆ๋ช…

delta rule์€ backpropagation ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

 

delta rule์€ ์™œ multi-layer์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š”๊ฐ€...

๋ณธ๋ก 5์—์„œ์™€ ๊ฐ™์ด ์ฒ˜์Œ์—๋Š” ์‹ ๊ฒฝ๋งํ•™์Šต์—์„œ delta rule์ด๋ผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ํ•™์Šต์„ ํ–ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ error์— ๋Œ€ํ•œ w์˜ ๋ฏธ๋ถ„ ๊ฐ’์— ์ƒ์ˆ˜๋ฅผ ๊ณฑํ•ด์„œ w์˜ ์กฐ์ •๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํ•˜์ง€๋งŒ delta rule ๋ฐฉ์‹์€ ์‹ฑ๊ธ€ ๋ ˆ์ด์–ด, ์ฆ‰ ๋‹จ์ธต perceptron์—์„œ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค.

delta rule์€ Mean Square Error๋ฅผ ์ด์šฉํ•˜๋ฏ€๋กœ Mean Square Learning Rule์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. ์ด ๊ทœ์น™์€ ํ•œ ๋ฒˆ์— ํ•œ ๊ณ„์ธต์”ฉ ์ด์ „ ๊ณ„์ธต์œผ๋กœ back propagation ๋˜๋ฏ€๋กœ ์ „์ฒด์ ์ธ ์กฐ์ •์„ ์ด๋ฃจ์ง€ ๋ชปํ•˜๊ณ  ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜๊ฐ€ input ๋ ˆ์ด์–ด์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋ˆ„์ ๋œ๋‹ค. (https://www.researchgate.net/publication/224398598_Performance_Comparison_of_Multi-layer_Perceptron_Back_Propagation_Delta_Rule_and_Perceptron_algorithms_in_Neural_Networks ๋…ผ๋ฌธ ์ฐธ๊ณ )

์‰ฝ๊ฒŒ ๋งํ•ด์„œ hidden layer์˜ target์„ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ•œ ๋‹จ๊ณ„์”ฉ back propagationํ•˜๋Š” delta rule์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค.

์กด์žฌํ•˜๋Š” weight ๊ฐ’์„ ๋™์‹œ์— ํ•™์Šตํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—

ํŒŒ๋ž€์ƒ‰ ํ…Œ๋‘๋ฆฌ์ฒ˜๋Ÿผ ๋์—์„œ๋ถ€ํ„ฐ ์กฐ์ •ํ•˜๊ณ  ์‹ถ์€ w๊นŒ์ง€ ๊ฑฐ์Šฌ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ backpropagation์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฃผํ™ฉ์ƒ‰์ฒ˜๋Ÿผ ํ•œ ๋‹จ๊ณ„์”ฉ backpropagation์„ ํ•˜๋ฏ€๋กœ ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ target ๊ฐ’์„ ์•Œ์•„์•ผํ•œ๋‹ค๋Š” ์–˜๊ธฐ ๊ฐ™๋‹ค. (์ •ํ™•ํžˆ ์•„์ง ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์Œ)

multi-layer์—์„œ์˜ backpropagation

multi-layer์—์„œ๋Š” ํŽธ๋ฏธ๋ถ„์˜ ๊ณ„์‚ฐ์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ

ํ•˜๋‚˜์˜ ๊ธฐํ˜ธ๋กœ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•จ

2layer perceptron์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•œ๋‹ค๋ฉด x,w๋กœ net์„ ๊ณ„์‚ฐํ•˜๊ณ  activation function(f)์„ ๊ฑฐ์ณ output์„ ๋‚ด๋Š” ๋ถ€๋ถ„์ด ์ค‘๋ณต๋œ๋‹ค.

์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์—ฌ๊ธฐ์„œ ํŒŒ๋ž€์ƒ‰ ๊ธ€์ž์™€ ์ฃผํ™ฉ์ƒ‰ ๊ธ€์ž๋Š” ๋ณ€์ˆ˜๋งŒ ๋‹ค๋ฅผ ๋ฟ ๊ฐ™์€ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„

์ด๋ ‡๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐ๋กœ ํ•ด๋ณด์ž.

๊ทธ๋ ‡๋‹ค๋ฉด δ1 ์€ δ2 ์—์„œ

๋ฅผ ๊ณฑํ•œ ๊ฒƒ์ด๋‹ค.

์ด๊ณ 

์ธ๋ฐ,

X0,X1,... ์— ๋Œ€ํ•ด ๋ชจ๋‘ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ

๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋ ค์šฐ๋‹ˆ ๊ทธ๋ฆผ์œผ๋กœ ๋‹ค์‹œ ์‚ดํŽด๋ณด์ž.

ํ˜„์žฌ δ2๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์•Œ๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ δ1๋ฅผ ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด ๋นจ๊ฐ„์ƒ‰ ํ™”์‚ดํ‘œ๋งŒ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋œ๋‹ค. ํ•˜์ง€๋งŒ xb์™€ wb๋ฅผ ๊ณฑํ•ด์„œ net2๋ฅผ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ์€ ์‹ค์ œ๋กœ j๊ฐœ์˜ x,w์— ๋Œ€ํ•ด์„œ ๊ณฑํ•˜๊ณ  ๋”ํ•˜๋Š” ์—ฐ์‚ฐ์„ ํ•˜์—ฌ net2๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋”ฐ๋ผ์„œ X0,1,...,j ๊นŒ์ง€์˜ ํŽธ๋ฏธ๋ถ„ ๊ฐ’์„ ๊ตฌํ•˜๋ ค ํ•  ๋•Œ, ๊ฐ๊ฐ์— ๋Œ€์น˜ํ•˜์—ฌ W0,1,...,j ๊ฐ€ ๋‚˜์˜จ๋‹ค.

net2 = w0*x0+w1*x1+... ์ด๋ฏ€๋กœ net2๋ฅผ x0๋กœ ํŽธ๋ฏธ๋ถ„ํ•˜๋ฉด w0, x1์œผ๋กœ ํŽธ๋ฏธ๋ถ„ํ•˜๋ฉด w1๊ฐ€ ๋‚˜์˜จ๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋“  j๊ฐœ์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ net2 ๊ฐ’์€ ํ•ญ์ƒ ๊ฐ™์œผ๋ฏ€๋กœ j๊ฐœ์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ backpropagation์œผ๋กœ ํŽธ๋ฏธ๋ถ„์„ ์ „ํŒŒํ•  ๋•Œ, net์—์„œ ๋‚ด๋ ค์˜ค๋Š” ๋ชจ๋“  ํŽธ๋ฏธ๋ถ„์„ ๋”ํ•ด์ฃผ์–ด์•ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ฒฐ๋ก 

์ด๋Ÿฌํ•œ ์‹์œผ๋กœ ์ข€ ๋” ์‰ฝ๊ฒŒ ์—ญ์ „ํŒŒ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ณผ์ •์œผ๋กœ ๋‚˜ํƒ€๋‚ด์ž๋ฉด

  1. forward sweep

  2. error์˜ ๋ฒ”์œ„๊ฐ€ ๋งŒ์กฑ?

    1. o => ๋

    2. x => backward sweep

     

๋ฌธ์ œ์ 

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์•„๋ž˜ ์ธต์˜ ๋ธํƒ€(δ)๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ, ์•„๋ž˜ ์ธต์˜ f'(net) ๊ฐ’์„ ๊ณฑํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์ธต์—์„œ ๋ธํƒ€์— ๋Œ€ํ•œ ๊ณ„์‚ฐ์„ ๋๋‚ผ ์ˆ˜๊ฐ€ ์—†๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด

๋ฅผ ์ด์šฉํ•ด์•ผํ•œ๋‹ค.

 

Lecun's backpropagation algorithm

๋ผ๊ณ  ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ธฐ์กด์˜ ๋ฐฉ์‹์—์„œ

 

๋ฅผ ์ œ์™ธํ•˜๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.

์ด๋กœ ์ธํ•ด,

์ด๋Ÿฌํ•œ ์‹์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ธฐ์กด์˜ ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ net์€ ํ˜„์žฌ์˜ ์ธต(j์ธต)์—์„œ ์ฐธ๊ณ ํ•˜๋ฉด ๋˜๊ณ  wij๋„ ํ˜„์žฌ์˜ ์ธต์—์„œ ์กด์žฌํ•˜๋ฏ€๋กœ ์•„๋ž˜ ์ธต(i์ธต)์˜ ์–ด๋–ค ๊ฐ’์„ ์ฐธ์กฐํ•  ํ•„์š”๊ฐ€ ์—†์–ด์„œ ์ธต๋ณ„ ๋ถ„๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋…๋ฆฝ์ ์ธ layer ๊ณ„์‚ฐ ๊ฐ€๋Šฅ
  • ์ธต๋ณ„๋กœ moduleํ™” ๊ฐ€๋Šฅ
    • ์ธต์˜ ๊ตฌ์กฐ, ๊ฐฏ์ˆ˜๊ฐ€ ์ƒ๊ด€์—†์Œ

์‹ค์Šต

์†Œ์ŠคํŒŒ์ผ ํ•˜๋‚˜์— ๋ณ€์ˆ˜๋ฅผ ๋ชฐ์•„๋‘๋ฉด.. ๋ฉ”๋ชจ๋ฆฌํ• ๋‹น ํ›„ ๊ฐ’ ๋„ฃ๊ธฐ๋ž‘ ๊ทธ๋ƒฅ ์„ ์–ธ์ด๋ž‘ ๊ผฌ์ผ ์ˆ˜๋„ ์žˆ์Œ..

์–ด๋–ค ๊ฑด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ํ›„์— ๊ฐ’์„ ๋„ฃ์œผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์–ด๋–ค ๋ณ€์ˆ˜๋Š” ์„ ์–ธ ํ›„์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ํ•จ์ˆ˜์—์„œ ์“ฐ์—ฌ์•ผํ•  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ ^ใ… ^...

๊ทธ๋ƒฅ ์†Œ์ŠคํŒŒ์ผ์—์„œ ์“ฐ์ด๋Š” ๋ณ€์ˆ˜๋Š” ๊ฐ ์†Œ์ŠคํŒŒ์ผ์—์„œ ์„ ์–ธ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ํ•˜๊ธฐ๋กœ ํ•˜์ž... (๋ป˜์ง“๋งจ!)

๊ตฌํ˜„ ์‹คํŒจํ•˜๊ณ  ์ผ๋‹จ ์ง„๋„ ๋‚˜๊ฐ€๊ธฐ๋กœ ํ•จ

๋ฐ˜์‘ํ˜•