[Deep Learning] Backpropagation

2023. 3. 30. 01:18
๐Ÿง‘๐Ÿป‍๐Ÿ’ป์šฉ์–ด ์ •๋ฆฌ

Neural Networks
Feed-forward
Backpropagation

 

 

Backpropagation

 

์ž, ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ™์ด Peceptron์„ ํ†ตํ•ด linear problem์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•˜๊ณ ,

 

๊ทธ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ Multi-layer perceptron์„ ๊ตฌํ•˜์—ฌ, ์ด๋ฅผ ํ†ตํ•ด Non-linear problem ๋˜ํ•œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ,

 

๊ทธ๋ž˜์„œ Weight๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ•œ๋‹ค๋Š” ๊ฑด๋ฐ?

 

๋ผ๋Š” ์˜๋ฌธ์ด ์ƒ๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๊ฒƒ์„ ์ด๋ฒˆ ์žฅ์—์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ ํ•œ ๋งˆ๋””๋กœ ๋งํ•˜์ž๋ฉด,

 

"Backpropagation์ด๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ•ฉ๋‹ˆ๋‹ค."๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

57๋…„๋„์— single-layer perceptron์ด ๋‚˜์˜ค๊ณ , 69๋…„๋„์— MLP๊ฐ€ ๋‚˜์™€์„œ ์šฐ๋ฆฌ๋“ค์€ ๊ทธ๊ฒƒ๋“ค์„ ๊ฐ€์ง€๊ณ  ๋งŽ์€ ๋ฌธ์ œ๋“ค์„ ํ’€ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๊ทธ๊ฒƒ์œผ๋กœ Weight๋ฅผ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋ฌธ์ œ๋กœ Neural Net์„ ์ฃฝ์ด๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ 57๋…„์— ํƒœ์–ด๋‚˜ 69๋…„์— ์ฃฝ์—ˆ์ง€๋งŒ,

 

Backpropagation์ด 86๋…„์— ๋“ฑ์žฅํ•˜๋ฉฐ NN์„ ๋‹ค์‹œ ์‚ด๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Backpropagation์€ ์ˆ˜ํ•™์ ์œผ๋กœ ์กด์žฌํ•˜๋˜ ๊ฒƒ์ด์ง€๋งŒ, ์‹ค์ œ๋กœ ์กด์žฌํ•˜์˜€์ง€๋งŒ,

 

MLP์—์„œ Weight๋ฅผ updateํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์“ฐ์ด๊ฒŒ ๋œ ๊ฒƒ์€ ์ด๋ฒˆ์ด ์ฒ˜์Œ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ , ๋ฒˆ์™ธ๋กœ 95๋…„๋„์— SVM์œผ๋กœ ๋‹ค์‹œ ์ฃฝ์—ˆ๋‹ค๊ฐ€, 06๋…„๋„์— DBN์œผ๋กœ ๋‹ค์‹œ ์‚ด์•„๋‚˜์„œ ํ˜„์žฌ ์ „์„ฑ๊ธฐ๋ฅผ ๋งž๊ณ  ์žˆ๋Š” Neural Net์˜ ์—ญ์‚ฌ์ ์ธ ์ˆœ๊ฐ„์„ ์—ฌ๋Ÿฌ๋ถ„ ํ•จ๊ป˜ํ•˜๊ณ  ๊ณ„์‹ญ๋‹ˆ๋‹ค.

 

 

 

์ž ๊ทธ๋Ÿผ Backpropagation์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ด…์‹œ๋‹ค.

 

 

์ด๊ฒƒ์€ error backpropagation ์ด๋ผ๊ณ  ์นญํ•˜๋ฉฐ,

 

์šฐ๋ฆฌ ๋ง๋กœ ์—ญ์ „ํŒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ,

 

Gradient descent method์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ error ๋ฅผ ์—ญ์ „ํŒŒ ์‹œํ‚ค๋ฉฐ weight๋ฅผ optimizationํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์†Œ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Input layer, Hidden layer, Output layer๋ฅผ ์ง€๋‚˜๊ณ , loss๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

์ด Loss๋กœ๋ถ€ํ„ฐ ๋’ท ๋ฐฉํ–ฅ์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” Gradient Descent ๋ฐฉ์‹์„ ํ™œ์šฉํ•ด์„œ Backpropagation์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Gradient Descent

 

 

 

์ถœ์ฒ˜ : https://www.javatpoint.com/gradient-descent-in-machine-learning

 

์œ„์™€ ๊ฐ™์ด random ๊ฐ’์œผ๋กœ ์„ค์ •๋œ initial weight์—์„œ, ๊ณ„์†ํ•ด์„œ update๋ฅผ ํ†ตํ•ด์„œ ์ตœ์ ์˜ weight๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ฒฐ๊ตญ weight๋“ค์€ scalar ๊ฐ’์„ ๊ฐ€์ง€๋Š” weight๋“ค์ž…๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ scalar์˜ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ,

 

์ด weight ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ฌ ๊ฒƒ์ด๋ƒ. ๊ฐ์†Œ์‹œํ‚ฌ ๊ฒƒ์ด๋ƒ.

 

์ด ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์œ„ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ ์ด ๋ฐฉํ–ฅ์€ ๊ธฐ์šธ๊ธฐ๋กœ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

 

๊ธฐ์šธ๊ธฐ๊ฐ€ ํ˜„์žฌ +์ด๋ฉด -๋กœ update,

 

๊ธฐ์šธ๊ธฐ๊ฐ€ ํ˜„์žฌ -์ด๋ฉด +๋กœ update.

 

 

 

์ถœ์ฒ˜ : https://www.mltut.com/stochastic-gradient-descent-a-super-easy-complete-guide/

 

์œ„์™€ ๊ฐ™์ด ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ํ•จ์ˆซ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” +์™€ -๋ฅผ ์ž˜ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

 

์ž๋™ํ™”๋œ algorithm์ด๋‚˜ loss function์ด ๋” ๋ณต์žกํ•ด์ง„๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋ˆˆ์œผ๋กœ ๋ณด๊ณ  ํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์ถœ์ฒ˜ : https://velog.io/@aacara/4๊ฐ•-Introduction-to-Neural-Networks-xzik9y0l

 

๊ทธ๋ž˜์„œ, ์šฐ๋ฆฌ๋Š” ์œ„์™€ ๊ฐ™์ด loss function์„ ๋‚ด๊ฐ€ ๋ณ€ํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” weight๋กœ ๋ฏธ๋ถ„ํ•œ ๊ฐ’์ด updateํ•˜๋Š” ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  -๋ฅผ ๋ถ™์—ฌ์„œ ๊ธฐ์šธ๊ธฐ์˜ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์œ„ ์ˆ˜์‹์œผ๋กœ ๋ฏธ๋ฃจ์–ด ๋ณผ ๋•Œ,

 

๊ธฐ์šธ๊ธฐ ๊ฐ’์ด -์ด๋ฉด, weight ๊ฐ’์ด ์ปค์ง€๊ฒŒ ๋˜๊ณ , ๊ธฐ์šธ๊ธฐ ๊ฐ’์ด +์ด๋ฉด weight ๊ฐ’์ด ์ปค์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ๊ธฐ์šธ๊ธฐ๋ฅผ ํ†ตํ•ด ์–ผ๋งˆ๋‚˜ updateํ•˜๋ƒ์— ๋Œ€ํ•œ ์‹ค๋งˆ๋ฆฌ๊ฐ€ ํ’€๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด, ์ด์ œ weight๋ฅผ updateํ•˜๋Š” ๋ฐฉํ–ฅ์„ ์„ค์ •ํ•˜์˜€๊ณ ,

 

์ด์ œ ์–ผ๋งˆ๋‚˜ updateํ•  ๊ฑด์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์—ํƒ€๋ผ๋Š” hyperparameter๋ฅผ ์œ„์™€ ๊ฐ™์ด ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด ์—ํƒ€๋ฅผ learning rate๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

์ฆ‰, ํ•™์Šต๋ฅ ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ์˜ gradient๋ฅผ ์–ผ๋งˆ๋‚˜ ํ•™์Šต์— ๋ฐ˜์˜์‹œํ‚ฌ ๊ฒƒ์ธ๊ฐ€? ์ž…๋‹ˆ๋‹ค.

 

 

hyperparameter๋Š” model์˜ outside์— ์กด์žฌํ•˜๋ฉฐ, ์‚ฌ๋žŒ์ด ์ง์ ‘ ์ •ํ•ด์ค๋‹ˆ๋‹ค.

 

์ง€๊ธˆ์€ ์ด๊ฒƒ์„ ์ƒ์ˆ˜๋กœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜, ์ด learning rate๋„ adaptive learning rate๋ผ๊ณ  ํ•˜์—ฌ, ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์„ ์ง€๊ธˆ์€, ์ƒ์ˆ˜๋กœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

learning rate๊ฐ€ 100์ด๋ผ๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์ •ํ•œ gradient์˜ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ 100๋งŒํผ ๊ณฑํ•ด์„œ updateํ•˜๋Š” ๊ฒƒ์ด๊ณ ,

 

learning rate๊ฐ€ 0.01์ด๋ผ๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ์ •ํ•œ gradient์˜ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ 0.01๋งŒํผ ๊ณฑํ•ด์„œ updateํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๊ฒƒ์€ ๋ณดํญ์„ ํฌ๊ฒŒ ๊ฐˆ์ง€ ์„ฑํผ์„ฑํผ ๊ฐˆ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํฌ๊ธฐ๊ฐ€ ๋˜๋Š” ์ƒ์ˆ˜๋กœ ๋ณด์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (์•„์ง๊นŒ์ง„ ์ƒ์ˆ˜๋กœ ๋ณด๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค)

 

 

Backpropagation in MLP

 

์ž, ์ด์ œ Backpropagation์ด MLP์—์„œ ์–ด๋–ป๊ฒŒ ํ™œ์šฉ๋˜๋Š”์ง€ ์ž์„ธํžˆ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

Loss Function์œผ๋กœ์„œ์˜ MSE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ performance์— ๋Œ€ํ•œ measurement์ž…๋‹ˆ๋‹ค.

 

์ด MSE๋ฅผ ๊ทธ๋Œ€๋กœ Objective function ์ตœ์ ํ™”์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ model์˜ performance ์ ์ธ ๋ชฉ์ ๊ณผ model์„ training ์‹œํ‚ค๋Š” ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๋ชฉ์ ์„ ์ผ์น˜์‹œ์ผœ ์œ ๋ฆฌํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ‘๋‹ˆ๋‹ค.

 

performance์— ๋Œ€ํ•œ measurement ๋งˆ๋‹ค ์žฅ๋‹จ์ ์ด ์žˆ์ง€๋งŒ, MSE์˜ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•จ์€ ํ›„์†์กฐ์น˜๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ , ์ตœ์ ํ™” ์‹œ ๋ฐ”๋กœ ์ง์ ‘์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

์ถœ์ฒ˜ :  https://velog.io/@jakeseo_me/๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ-์‹œ์ž‘ํ•˜๋Š”-๋”ฅ๋Ÿฌ๋‹-3-1-์‹ ๊ฒฝ๋ง-ํ•™์Šต

 

 

  • k - output node index
  • t - target, y
  • y - mdel output, y^

 

์•„๋ž˜์™€ ๊ฐ™์ด Backpropagation ๊ณผ์ •์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

output์—์„œ hidden๊ณผ ๋จผ์ชฝ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

์œ„์™€ ๊ฐ™์€ ์ˆ˜์‹๋“ค์„ ์ž˜ ์‚ดํŽด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

 

 

output์—์„œ loss๊ฐ€ ์žˆ์–ด ์—ญ์œผ๋กœ ํŒŒ๊ณ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  weight์˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

์œ„ ์ˆ˜์‹์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์„ฑ์งˆ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

 

  • activation function์˜ ๋ฏธ๋ถ„๊ฐ’์ด ํด ์ˆ˜๋ก update๊ฐ€ ๋งŽ์ด ๋œ๋‹ค.
  • hidden node์˜ ์‹ค์ œ signal, ๊ฐ’์ธ y ๊ฐ’์ด ํด ์ˆ˜๋ก update๊ฐ€ ๋งŽ์ด ๋œ๋‹ค.
  • target๊ณผ ์‹ค์ œ ๊ฐ’ ์‚ฌ์ด์˜ ์ฐจ์ด๊ฐ€ ํด ์ˆ˜๋ก update๊ฐ€ ๋งŽ์ด ๋œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋ธํƒ€k๋Š” output node์˜ sensitivity๋ฅผ ์˜๋ฏธํ•˜๊ณ , yj๋Š” hidden node์˜ ๊ธฐ์—ฌ๋„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  yj์ธ signal์€ ๊ธฐ์—ฌ๋„๊ฐ€ ํด ์ˆ˜๋ก update๋„ ๋งŽ์ด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฆ‰, ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ํฐ ๋†ˆ์ด ์ฑ…์ž„์„ ๋” ๋งŽ์ด ์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์ง€์š”.

 

์ง€๊ธˆ๊นŒ์ง€ hidden layer - > output layer๋ฅผ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

 

์ด์ œ input layer -> hidden layer๋กœ ๊ฐ€๋Š” weight update๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

hidden layer -> output layer์™€ ๋‹ค๋ฅด๊ฒŒ,

 

input layer -> hidden layer์—์„œ์˜ weight update๋Š” input๋ถ€ํ„ฐ output์— ๋ป—๋Š” ๊ฐœ์ˆ˜๊นŒ์ง€ ๋ชจ๋‘ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ,

 

์ด ๋ชจ๋“  ๊ฒƒ์„ ๊ณ ๋ คํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ, ์ค‘์ฒฉ๋˜์–ด ์žˆ๋Š” Neural Net์˜ weight update๊ฐ€ ๊นŒ๋‹ค๋กœ์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์œ„ ์‹์„ ๊ณ„์‚ฐํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

 

 

 

 

 

๊ณ„์‚ฐ์˜ ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

 

์ž, ์ด๋ ‡๊ฒŒ 3-layer MLP์—์„œ Loss function์„ MSE๋กœ ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, weight update ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

BELATED ARTICLES

more