๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/AI, ๋”ฅ๋Ÿฌ๋‹

๋ธํƒ€ ๋ฃฐ(Delta Rule) ์™„๋ฒฝ ์ •๋ฆฌ - ํผ์…‰ํŠธ๋ก ๊ณผ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์˜ ๊ธฐ์ดˆ

by ๐Ÿ”ฅ๊นก ๋‹ค ๊ณ ! 2025. 4. 3.

๐Ÿ“š ๋ชฉ์ฐจ

1. ๋ธํƒ€ ๋ฃฐ์ด๋ž€? - 1-1. ์ •์˜์™€ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ - 1-2. ํผ์…‰ํŠธ๋ก  ํ•™์Šต์—์„œ์˜ ๋ธํƒ€ ๋ฃฐ 2. ๋ธํƒ€ ๋ฃฐ์˜ ์ˆ˜์‹๊ณผ ์›๋ฆฌ - 2-1. ์ˆ˜์‹์œผ๋กœ ์‚ดํŽด๋ณด๊ธฐ - 2-2. ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•๊ณผ์˜ ์—ฐ๊ฒฐ 3. ๋ธํƒ€ ๋ฃฐ์˜ ์ž‘๋™ ๋ฐฉ์‹ - 3-1. ๋‹จ๊ณ„๋ณ„ ํ•™์Šต ํ๋ฆ„ - 3-2. ํ•™์Šต๋ฅ ์˜ ์—ญํ•  4. ์‹ค์ „ ์˜ˆ์‹œ์™€ ์ฝ”๋“œ ๊ตฌํ˜„ - 4-1. ๊ฐ„๋‹จํ•œ ํŒŒ์ด์ฌ ๊ตฌํ˜„ - 4-2. ํ•™์Šต ๊ฒฐ๊ณผ ๋ถ„์„ 5. ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

1. ๋ธํƒ€ ๋ฃฐ์ด๋ž€?

1-1. ์ •์˜์™€ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

๋ธํƒ€ ๋ฃฐ(Delta Rule)์€ 1960๋…„๋Œ€์— ๊ฐœ๋ฐœ๋œ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ํ˜•ํƒœ์˜ ์‹ ๊ฒฝ๋ง ํ•™์Šต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ถœ๋ ฅ๊ฐ’๊ณผ ์‹ค์ œ๊ฐ’์˜ ์ฐจ์ด(์˜ค์ฐจ)๋ฅผ ๊ณ„์‚ฐํ•œ ํ›„, ์ด ์˜ค์ฐจ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ๊ธˆ์”ฉ ์ˆ˜์ •ํ•˜๋ฉด์„œ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ํ˜„์žฌ๊นŒ์ง€๋„ ๋”ฅ๋Ÿฌ๋‹์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜ค์ฐจ ์—ญ์ „ํŒŒ(backpropagation) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์ค‘์š”ํ•œ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.

1-2. ํผ์…‰ํŠธ๋ก  ํ•™์Šต์—์„œ์˜ ๋ธํƒ€ ๋ฃฐ

์ดˆ๊ธฐ ์ธ๊ณต์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์ธ ํผ์…‰ํŠธ๋ก ์€ ๊ฐ€์ค‘์น˜๋ฅผ ์ž„์˜๋กœ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๊ฐ€์ค‘์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด ๋‚˜๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ธํƒ€ ๋ฃฐ์€ ํผ์…‰ํŠธ๋ก ์ด ์˜ค์ฐจ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ํ•™์Šต์„ ํ†ตํ•ด ์˜ˆ์ธก์ด ์ ์  ๋” ์ •๋‹ต์— ๊ฐ€๊นŒ์›Œ์ง€๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ธํƒ€ ๋ฃฐ์˜ ํ•ต์‹ฌ ์—ญํ• ์ž…๋‹ˆ๋‹ค.

 

 

2. ๋ธํƒ€ ๋ฃฐ์˜ ์ˆ˜์‹๊ณผ ์›๋ฆฌ

2-1. ์ˆ˜์‹์œผ๋กœ ์‚ดํŽด๋ณด๊ธฐ

๋ธํƒ€ ๋ฃฐ์˜ ์ˆ˜์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Δw = η * (t - y) * x
  • Δw: ๊ฐ€์ค‘์น˜์˜ ๋ณ€ํ™”๋Ÿ‰
  • η (eta): ํ•™์Šต๋ฅ 
  • t: ์ •๋‹ต(target value)
  • y: ํ˜„์žฌ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ๊ฐ’
  • x: ์ž…๋ ฅ ๊ฐ’

์ถœ๋ ฅ๊ฐ’์ด ์ •๋‹ต๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ํฌ๋ฉด, ๊ทธ ์ฐจ์ด๋งŒํผ ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์˜ˆ์ธก์„ ์ˆ˜์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

2-2. ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•๊ณผ์˜ ์—ฐ๊ฒฐ

๋ธํƒ€ ๋ฃฐ์€ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์˜ ํ•œ ํ˜•ํƒœ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์†์‹ค ํ•จ์ˆ˜(Loss Function)๋ฅผ ๋ฏธ๋ถ„ํ•˜์—ฌ ๊ธฐ์šธ๊ธฐ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€์ค‘์น˜๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ๋ฐฉ์‹๊ณผ ๋™์ผํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์ด ๋”ฅ๋Ÿฌ๋‹์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์˜ค์ฐจ ์—ญ์ „ํŒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

 

3. ๋ธํƒ€ ๋ฃฐ์˜ ์ž‘๋™ ๋ฐฉ์‹

3-1. ๋‹จ๊ณ„๋ณ„ ํ•™์Šต ํ๋ฆ„

  1. ์ž…๋ ฅ๊ฐ’ x๋ฅผ ์‹ ๊ฒฝ๋ง์— ์ „๋‹ฌ
  2. ์ถœ๋ ฅ๊ฐ’ y ๊ณ„์‚ฐ
  3. ์ •๋‹ต t์™€ ๋น„๊ตํ•˜์—ฌ ์˜ค์ฐจ ๊ณ„์‚ฐ
  4. ์˜ค์ฐจ๋ฅผ ์ด์šฉํ•ด Δw ๊ณ„์‚ฐ
  5. ๊ฐ€์ค‘์น˜ ์—…๋ฐ์ดํŠธ: w = w + Δw

3-2. ํ•™์Šต๋ฅ ์˜ ์—ญํ• 

ํ•™์Šต๋ฅ  η๋Š” ๋ธํƒ€ ๋ฃฐ์˜ ์ค‘์š”ํ•œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด ๋„ˆ๋ฌด ํฌ๋ฉด ์ˆ˜๋ ด์ด ๋ถˆ์•ˆ์ •ํ•ด์ง€๊ณ , ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ํ•™์Šต์ด ๋งค์šฐ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ 0.01 ~ 0.1 ์‚ฌ์ด์˜ ๊ฐ’์„ ์‹คํ—˜์ ์œผ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

 

 

4. ์‹ค์ „ ์˜ˆ์‹œ์™€ ์ฝ”๋“œ ๊ตฌํ˜„

4-1. ๊ฐ„๋‹จํ•œ ํŒŒ์ด์ฌ ๊ตฌํ˜„

# ๋ธํƒ€ ๋ฃฐ์„ ์ ์šฉํ•œ ํผ์…‰ํŠธ๋ก  ์˜ˆ์ œ (์ด์ง„ ๋ถ„๋ฅ˜)
import numpy as np

# ์ž…๋ ฅ ๋ฐ์ดํ„ฐ (AND ์—ฐ์‚ฐ)
X = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([0, 0, 0, 1])
w = np.random.rand(2)
b = 0.0
lr = 0.1

for epoch in range(100):
    for i in range(len(X)):
        z = np.dot(X[i], w) + b
        pred = 1 if z >= 0.5 else 0
        error = y[i] - pred
        w += lr * error * X[i]
        b += lr * error

4-2. ํ•™์Šต ๊ฒฐ๊ณผ ๋ถ„์„

ํ•™์Šต์ด ๋ฐ˜๋ณต๋˜๋ฉด ์ ์  ์˜ค์ฐจ๊ฐ€ ์ค„์–ด๋“ค๊ณ , ์ตœ์ข…์ ์œผ๋กœ๋Š” 0 ๋˜๋Š” 1์— ์ •ํ™•ํžˆ ๊ฐ€๊นŒ์šด ์˜ˆ์ธก์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํผ์…‰ํŠธ๋ก ์—์„œ๋„ ๋ธํƒ€ ๋ฃฐ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋” ๋ณต์žกํ•œ ๊ตฌ์กฐ์—์„œ๋„ ๊ทธ ์›๋ฆฌ๋Š” ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

 

 

5. ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

๋ธํƒ€ ๋ฃฐ์€ ๋‹จ์ˆœํ•˜์ง€๋งŒ ๊ฐ•๋ ฅํ•œ ํ•™์Šต ์›๋ฆฌ์ž…๋‹ˆ๋‹ค. ํผ์…‰ํŠธ๋ก ์—์„œ ์‹œ์ž‘๋œ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€, ์ดํ›„ ๋ฐœ์ „๋œ ์‹ ๊ฒฝ๋ง ํ•™์Šต์˜ ๊ธฐ์ดˆ๊ฐ€ ๋˜์—ˆ์œผ๋ฉฐ, ์˜ค์ฐจ ์—ญ์ „ํŒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๋”ฅ๋Ÿฌ๋‹์„ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ธํƒ€ ๋ฃฐ์˜ ๊ฐœ๋…๊ณผ ์ˆ˜์‹์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋” ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•™์Šตํ•˜๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ ๋‹ค์ง€๊ณ  ์‹ถ์€ ๋ถ„์ด๋ผ๋ฉด, ์ง€๊ธˆ ์ด ๋ธํƒ€ ๋ฃฐ๋ถ€ํ„ฐ ๊ผญ ์žก๊ณ  ๊ฐ€์„ธ์š”!