๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿค– Deep Learning/๋”ฅ๋Ÿฌ๋‹ ์ด๋ก 

์—ญ์ „ํŒŒ(Backpropagation) ์ดํ•ดํ•˜๊ธฐ

by HelloRabbit 2023. 5. 24.
728x90

Goal

1. ์—ญ์ „ํŒŒ(Backpropagation)์˜ ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
2. ์—ญ์ „ํŒŒ ๊ณ„์‚ฐ ๋…ผ๋ฆฌ ์•Œ์•„๋ณด๊ธฐ

 

๋”ฅ๋Ÿฌ๋‹์„ ๊ณต๋ถ€ํ•˜๋ฉด ์—ญ์ „ํŒŒ(backpropagation) ๊ฐœ๋…์„ ํ”ผํ•ด๊ฐˆ ์ˆ˜ ์—†๋Š”๋ฐ ์•Œ๊ณ ๋‚˜๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง„ ์•Š๋‹ค! ๊ทธ๋ฆฌ๊ณ  ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š”๋ฐ ์ •๋ง ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ผ๋Š”๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์—ญ์ „ํŒŒ(Backpropagation)๋ž€?

๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด ์ถœ๋ ฅํ•œ ์˜ˆ์ƒ ๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’์—๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ๊ณ ์–‘์ด ์‚ฌ์ง„์„ input์œผ๋กœ ๋„ฃ์—ˆ์„ ๋•Œ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด ๊ณ ์–‘์ด๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์˜ˆ์ธก(0 ์ด๋ผ๊ณ  ์˜ˆ์ธก)ํ•œ๋‹ค๋ฉด ์‹ค์ œ ๊ฐ’์ธ ๊ณ ์–‘์ด๊ฐ€ ๋งž๋‹ค(1 ์ด๋ผ๋Š” ๊ฐ’)๊ณผ๋Š” 1 - 0 = 1 ์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์‹ค์ œ ๊ฐ’๊ณผ ์˜ˆ์ƒ ๊ฐ’์˜ ์ฐจ์ด๋ฅผ ์ค„์—ฌ๋‚˜๊ฐ€๊ธฐ ์œ„ํ•ด ์—ญ์ „ํŒŒ(backpropagation)๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

 

Loss function๊ณผ Cost function

๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ดˆ๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด cost function๊ณผ loss function์ด ๋‚˜์˜ค๋Š”๋ฐ ์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด loss function์€ ์œ„์—์„œ ๋งํ–ˆ๋˜ ์‹ค์ œ ๊ฐ’๊ณผ ์˜ˆ์ƒ ๊ฐ’์˜ ์ฐจ์ด๋ฅผ ์–˜๊ธฐํ•˜๊ณ , cost function์€ ๋ชจ๋“  input ๋ฐ์ดํ„ฐ์˜ loss function์˜ ๊ฐ’์˜ ํ‰๊ท ์„ ์–˜๊ธฐํ•œ๋‹ค.

 

๊ฒฐ๊ตญ, ๋” ์˜ˆ์ธก์„ ์ž˜ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” cost function์˜ ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ ๋งŒ๋“œ๋Š”๊ฒŒ ๋ชฉํ‘œ๋‹ค.

 

Cost function์˜ ์‹์€ ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค:

Cost function

์ด์ œ ๋ฌธ์ œ๋Š” ์–ด๋–ป๊ฒŒ cost function์˜ ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ ๋งŒ๋“œ๋Š”๊ฐ€์ด๋‹ค!

 

๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ w์™€ b

Cost function์˜ ์‹์„ ๋ณด๋ฉด w์™€ b๊ฐ€ ์—†๋‹ค. ํ•˜์ง€๋งŒ ์œ„์˜ ์‹์„ ๊ตฌ์„ฑํ•˜๋Š” ์• ๋“ค์˜ ์‹์„ ๋ณด๋ฉด w์™€ b๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์—ญ์ „ํŒŒ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์‹

์ด๋ ‡๊ฒŒ ์‹์„ ํŽผ์ณ ๋†“์œผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ w์™€ b๊ฐ€ cost function์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฐ’๋“ค์ธ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์ตœ์ ํ™” ์‹œํ‚ฌ ๋•Œ ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์€ w์™€ b ๊ฐ’๋“ค์„ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ w์™€ b๊ฐ€ ์–ด๋–ค ๊ฐ’์ผ ๋•Œ ๋ชจ๋ธ์ด ์˜ˆ์ธก์„ ๋” ์ž˜ํ•˜๋‚˜(= cost function์˜ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€๊ฐ€)๋ฅผ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด๋‹ค!

 

์ด๊ฒƒ์ด ์—ญ์ „ํŒŒ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ์ด๋‹ค. ์ด์ œ ์—ญ์ „ํŒŒ๋ฅผ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด์ž!

 

์—ญ์ „ํŒŒ ๊ณ„์‚ฐ ๋…ผ๋ฆฌ

์—ญ์ „ํŒŒ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์ด๋Ÿฐ ์‹์„ ๋งŽ์ด ๋ณด๊ฒŒ ๋œ๋‹ค:

dw์™€ db ๊ณ„์‚ฐ์‹

๊ทธ๋ ‡๋‹ค. ๋ฏธ๋ถ„์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ฏธ๋ถ„์€ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์–ด๋–ค ์„ ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ์–˜๊ธฐํ•œ๋‹ค. ์ฆ‰, x๊ฐ€ ๋ฐ”๋€” ๋•Œ y๋Š” ์–ผ๋งˆ๋‚˜ ๋ฐ”๋€Œ๋Š”๊ฐ€. ์œ„์˜ ์‹๋“ค์„ ํ•ด์„ํ•˜์ž๋ฉด w๋ผ๋Š” ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ J(a,y)์˜ ๊ฐ’์€ ์–ผ๋งˆ๋‚˜ ๋ฐ”๋€Œ๋Š”๊ฐ€, ๊ทธ๋ฆฌ๊ณ  b๋ผ๋Š” ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ J(a,y)์˜ ๊ฐ’์€ ์–ผ๋งˆ๋‚˜ ๋ฐ”๋€Œ๋Š”๊ฐ€๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ J(a,y)๋Š” ์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด cost function์ด๊ณ , ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์ธ w์™€ b ๊ฐ’๋“ค์„ ์ˆ˜์ •ํ•  ๋•Œ cost function์ด ์–ผ๋งˆ๋‚˜ ๋ฐ”๋€Œ๋Š”์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ cost function์ด ์ค„์–ด๋“ค๊ฒŒ ๋งŒ๋“œ๋Š” w์™€ b์˜ ๊ฐ’๋“ค์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค!

 

๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(Gradient descent)

Cost function์ด ์ค„์–ด๋“ค๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(gradient descent)์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์„ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ ˆ๋Œ€๊ฐ’์„ ๊ตฌํ•˜๋Š” ์‹์„ ์˜ˆ๋กœ ๋“ค์–ด๋ณด์ž.

์™ผ์ชฝํŽธ์˜ ์„ ์˜ ๊ธฐ์šธ๊ธฐ๋Š” -1, ์˜ค๋ฅธ์ชฝํŽธ์˜ ์„ ์˜ ๊ธฐ์šธ๊ธฐ๋Š” 1์ด๋‹ค. ์™œ๋ƒ๋ฉด ์™ผ์ชฝ ์„ ์€ x๊ฐ€ -1์”ฉ ์ค„์–ด๋“ค์ˆ˜๋ก y๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ณ  (1 / -1 = -1), ์˜ค๋ฅธ์ชฝ ์„ ์€ 1์”ฉ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก y๊ฐ€ 1์”ฉ ์ฆ๊ฐ€(1 / 1 = 1)ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋งŒ์•ฝ ์„  ์ƒ์—์„œ ์•„๋ฌด๋ฐ๋‚˜ ์ ์„ ์ฐ๋Š”๋‹ค๊ณ  ํ•ด๋ณด์ž.

๊ธฐ์šธ๊ธฐ๊ฐ€ 1์ธ ์„ ์— ์ ์ด ์ฐํ˜”์„ ๋•Œ

๊ธฐ์šธ๊ธฐ๊ฐ€ 1์ธ ์„  ์ƒ์— ์ ์ด ์ฐํ˜”๋‹ค. ์ด ์ ์„ y๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์œ„์น˜์ธ ๋…ธ๋ž€ ์ ์ด ์žˆ๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๊ธฐ์šธ๊ธฐ 1 ๋งŒํผ์”ฉ ๋‚ด๋ ค๊ฐ€๋ฉด ๋œ๋‹ค! ๊ทธ๋ ‡๋‹ค๋ฉด ์ ์ด ์™ผ์ชฝ ์„ ์— ์ฐํ˜”๋‹ค๋ฉด?

๋…ธ๋ž€ ์ ์— ๋„๋‹ฌํ•˜๋ ค๋ฉด ๊ธฐ์šธ๊ธฐ -1 ๋งŒํผ์”ฉ ๋”ฐ๋ผ ๋‚ด๋ ค๊ฐ€๋ฉด ๋œ๋‹ค.

 

์ด ์›๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ด๋Ÿฐ ์‹์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋‹ค:

x๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ์‹

":=" ์ด๋ผ๋Š” ๊ธฐํ˜ธ๋Š” x ๊ฐ’์„ ๊ณ„์†ํ•ด์„œ ์—…๋ฐ์ดํŠธ ์‹œ์ผœ์ค€๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  α๋Š” learning rate๋ผ๋Š” ๊ฐ’์ธ๋ฐ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ํ•˜๊ฐ•ํ• ์ง€ ์กฐ์ ˆํ•ด์ฃผ๋Š” ๊ฐ’์ด๋‹ค. ์ด ์‹์„ ์ด์šฉํ•œ๋‹ค๋ฉด ์œ„์—์„œ ๋ณธ ๊ฒฝ์šฐ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์™ผ์ชฝ์— ์ ์ด ์žˆ์„ ๋• x์— α๋ฅผ ๋”ํ•ด์คŒ์œผ๋กœ์จ ์ ์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•ด y๋ฅผ ์ตœ์†Œ๊ฐ’์œผ๋กœ ์œ ๋„ํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ์— ์ ์ด ์žˆ์„ ๋• x์— α๋ฅผ ๋นผ์คŒ์œผ๋กœ์จ ์ ์„ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•ด y๋ฅผ ์ตœ์†Œ๊ฐ’์œผ๋กœ ์œ ๋„ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์ด ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์˜ ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ์ด๋‹ค!

 

์ด์ œ ์ด์™€ ๊ฐ™์€ ๋…ผ๋ฆฌ๋ฅผ cost function์— ์ ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋Œ€์‹  ์ด๋ฒˆ์—” w์™€ b๋ผ๋Š” ๊ฐ’์„ ์œ„์˜ x์ฒ˜๋Ÿผ ์—…๋ฐ์ดํŠธ ํ•ด์ค„ ๊ฒƒ์ด๊ณ , y ๋Œ€์‹  J(a,y)๋ผ๋Š” cost function์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

w์™€ b ๊ฐ’์„ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ์‹

์ด๊ฒƒ์ด ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์ตœ์ ํ™” ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์‚ฐ๋ฒ•์ด๋‹ค!

 

dw์™€ db ๊ณ„์‚ฐ๋ฒ•

์ด์ œ w์™€ b๋ฅผ ๊ณ„์† ์—…๋ฐ์ดํŠธ ์‹œํ‚ค๋ฉด์„œ J(a,y)์˜ ๊ฐ’์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์œ„์— ๋ณด์•˜๋˜ dw์™€ db๋Š” ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐํ•˜์ง€? ์—ฌ๊ธฐ์„œ ์ข€ ๋ณต์žกํ•ด ๋ณด์ด๋Š” ๋ฏธ๋ถ„ ์‹๋“ค์ด ์Ÿ์•„์ ธ ๋‚˜์˜จ๋‹ค.

 

์‚ฌ์‹ค ์œ„์— ์„ค๋ช…ํ•œ ๊ฒƒ๊นŒ์ง€๋งŒ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์ด ๋ถ€๋ถ„์€ ๋ชฐ๋ผ๋„ ๊ดœ์ฐฎ๋‹ค. ํ•˜์ง€๋งŒ ๊ตณ์ด ์„ค๋ช…ํ•˜์ž๋ฉด dw์™€ db ๊ฐ™์€ ๋ณต์žกํ•œ ๋ฏธ๋ถ„์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„  chain rule์ด๋ž€๊ฑธ ์“ฐ๊ฒŒ ๋œ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์‡ ์‚ฌ์Šฌ (chain) ๊ณ ๋ฆฌ์— ๊ณ ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋“ฏ์ด ๋ฏธ๋ถ„์„ ์ค„์ค„์ด ์—ฐ๊ฒฐํ•˜๋ฉด ๋œ๋‹ค.

dw์™€ db ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ• = chain rule

 

J, L, a, z... ์–ด๋””์„œ ๋งŽ์ด ๋ณด์ง€ ์•Š์•˜๋Š”๊ฐ€? ๊ทธ๋ ‡๋‹ค. ์ ค ์ฒ˜์Œ์— ์„ค๋ช…ํ–ˆ๋˜ ์• ๋“ค์ด๋‹ค!

์—ญ์ „ํŒŒ์— ํ•„์š”ํ•œ ์‹๋“ค

 

์œ„์˜ ์‹๋“ค์„ ๋ชจ๋‘ ๋ฏธ๋ถ„ํ•ด์„œ ํ•ด๋‹น chain rule ์‹์— ๋„ฃ์–ด ๊ณ„์‚ฐํ•˜๋ฉด ๋์ด๋‹ค. ์–ด๋–ป๊ฒŒ ๋ฏธ๋ถ„ํ•˜๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์•„์ฃผ ์ž์„ธํ•˜๊ฒŒ ์ž˜ ์„ค๋ช…ํ•ด์ค€๋‹ค.

 

์•„๋ž˜๋Š” ๋ฏธ๋ถ„๋œ ์‹๋“ค์ด๋‹ค.

์ด๋ ‡๊ฒŒ cost function๋ถ€ํ„ฐ ๋ฏธ๋ถ„์„ ํ†ตํ•ด ๊ฑฐ๊พธ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€ ์ฒ˜์Œ ๊ณ„์‚ฐ์‹์— ๋„ฃ์—ˆ๋˜ w์™€ b๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— "์—ญ"์ „ํŒŒ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. w์™€ b๋กœ cost function์„ ๊ณ„์‚ฐํ•˜๋Š” "์ˆœ"์ „ํŒŒ(forward propagation)์˜ ๋ฐ˜๋Œ€๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค!

 

์—ญ์ „ํŒŒ ์ดํ•ด ์™„๋ฃŒ~!

 

 

์ฐธ๊ณ 

Andrew Ng์˜ ๋”ฅ๋Ÿฌ๋‹ ๊ฐ•์˜ - https://www.coursera.org/learn/neural-networks-deep-learning/lecture/6dDj7/backpropagation-intuition-optional

https://towardsdatascience.com/backpropagation-in-simple-terms-8df312471d32

https://medium.com/@pdquant/all-the-backpropagation-derivatives-d5275f727f60

 

 

 

'๐Ÿค– Deep Learning > ๋”ฅ๋Ÿฌ๋‹ ์ด๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Scikit-Learn vs. TensorFlow  (0) 2023.06.01
๋”ฅ๋Ÿฌ๋‹ ํ‘œ์ค€ ๊ธฐํ˜ธ  (0) 2023.05.11

๋Œ“๊ธ€