๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ณต๋ถ€๊ธฐ๋ก/Python

MSE Loss์™€ ์‹œ๊ทธ๋ชจ์ด๋“œ์—์„œ์˜ ์—ญ์ „ํŒŒ ์ดํ•ดํ•˜๊ธฐ

by kaizen_bh 2025. 9. 12.

 

 

 

์ตœ๊ทผ์— ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ์†์‹ค ํ•จ์ˆ˜์˜ ๋ฏธ๋ถ„, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ดํ›„ ์‹œ๊ทธ๋ชจ์ด๋“œ ๋ฏธ๋ถ„ → ๊ฐ€์ค‘์น˜ ์—…๋ฐ์ดํŠธ ๊ณผ์ •์ด์—ˆ๋‹ค์ฒ˜์Œ์—๋Š” error = y - pred ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์™œ ๋งž๋Š”์ง€, ์™œ X.T @ error ๊ฐ™์€ ์—ฐ์‚ฐ์ด ๋‚˜์˜ค๋Š”์ง€ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๊ฐ”๋‹ค

๊ทธ๋ž˜์„œ ์ˆœ์ „ํŒŒ์™€ ์—ญ์ „ํŒŒ ๊ณผ์ •์„ ํ•˜๋‚˜์”ฉ ํ’€์–ด๊ฐ€๋ฉด์„œ ์ •๋ฆฌํ–ˆ๋‹ค

 

 

 

1. ์ˆœ์ „ํŒŒ (Forward Pass)

 

์ˆœ์ „ํŒŒ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์— ๋„ฃ์–ด์„œ ์˜ˆ์ธก๊ฐ’๊ณผ ์†์‹ค (loss)์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

 

 

1. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ์ •๋‹ต
$ X = [[1, 2], [3, 4], [5, 6]] $
$ y = [1, 0, 1] $

 

 

 

2. ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ ์ดˆ๊ธฐ๊ฐ’
$ beta = [0, 0] $

$ b = 0 $

 

 

 

3. ๋กœ์ง“ ๊ณ„์‚ฐ
$$ z=Xβ+b $$

 

 

 

4. ์‹œ๊ทธ๋ชจ์ด๋“œ ํ™œ์„ฑํ™”
$$ \hat{y} = \sigma(z) $$

์˜ˆ์‹œ ๊ฐ’:  $ [0.8, 0.3, 0.4] $

 

 

 

5. ์†์‹ค (MSE)
$$ L = \frac{1}{n}\sum (y - \hat{y})^2 $$

 

 

# ---------- ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ----------
def sigmoid(z):
    return 1.0 / (1.0 + np.exp(-z))

# ---------- ์†์‹ค ํ•จ์ˆ˜ ----------
def mse_loss(y_true, y_pred):
    return np.mean(0.5 * (y_true - y_pred)**2)

def forward(X, beta, b):
    """
    Forward pass:
      z = X @ beta + b
      y_pred = sigmoid(z)
      loss = MSE(y, y_pred)
    """
    z = X @ beta + b
    y_pred = sigmoid(z)
    return z, y_pred

 

 

 

์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ดํ•ดํ•˜๋Š”๋ฐ ๋ฌด๋ฆฌ๊ฐ€ ์—†์—ˆ๋‹ค

์ž…๋ ฅ ๋ฐ์ดํ„ฐ X๊ฐ€ ๊ฐ€์ค‘์น˜ w์™€ ํŽธํ–ฅ b, $ y = wx + b $ ์—ฐ์‚ฐ์„ ๊ฑฐ์ณ ๋‚˜์˜จ ๊ฐ’์ด ์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ํ†ต๊ณผํ•˜๋ฉด์„œ 0๊ณผ 1์‚ฌ์ด์˜ ํ™•๋ฅ ๊ฐ’, ์˜ˆ์ธก๊ฐ’์ด ๋‚˜์˜จ๋‹ค

๊ทธ๋ฆฌ๊ณ  ์ด ์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ๊ฐ’ ์‚ฌ์ด์˜ MSE ์†์‹ค ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด loss๊ฐ’์ด ๋‚˜์˜ค๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ

์ฝ”๋“œ๋กœ ์‚ดํŽด๋ณด์•„๋„ ์ง๊ด€์ ์ด๊ณ  ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

 

 

 

 

2. ์—ญ์ „ํŒŒ (Backward Pass)

 

์ด์ œ ์†์‹ค๊ฐ’์„ ๊ฐ€์ค‘์น˜์™€ ํŽธํ–ฅ์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ํ•ด์„œ ๊ธฐ์šธ๊ธฐ(gradient) ๋ฅผ ๊ตฌํ•œ๋‹ค

์ด๋•Œ ์ฒด์ธ๋ฃฐ(์—ฐ์‡„๋ฒ•์น™) ์„ ์ด์šฉํ•œ๋‹ค

 

1. ์†์‹ค → ์˜ˆ์ธก๊ฐ’

$$ \frac{\partial L}{\partial \hat{y}} = ( \hat{y} - y) $$


์˜ˆ์‹œ: [0.2, -0.3, 0.6]

 

 

2. ์˜ˆ์ธก๊ฐ’ → ๋กœ์ง“ (์‹œ๊ทธ๋ชจ์ด๋“œ ๋ฏธ๋ถ„)
$$ \frac{\partial \hat{y}}{\partial z} = \hat{y}(1 - \hat{y}) $$
์˜ˆ์‹œ: [0.16, 0.21, 0.24]

 

 

3. ์†์‹ค → ๋กœ์ง“
$$ \frac{\partial L}{\partial z} = ( \hat{y} - y) \cdot \hat{y}(1 - \hat{y}) $$
์˜ˆ์‹œ: [0.032, -0.063, 0.144]

 

 

4. ๋กœ์ง“ → ๊ฐ€์ค‘์น˜

๋กœ์ง“: $ z = X\beta + b $

๋ฏธ๋ถ„: $ \frac{\partial z}{\partial \beta} = X $

๋”ฐ๋ผ์„œ: $ \beta\_{grad} = X^T error $

๊ณ„์‚ฐ ๊ฒฐ๊ณผ: [-0.563, -0.676]

 

 

5. ๋กœ์ง“ → ํŽธํ–ฅ
$$ b\_{grad} = -\text{mean}(error) = -0.0377 $$

 

 

# ---------- ์—ญ์ „ํŒŒ (Backward) ----------
def backward(X, y_true, y_pred):
    """
    Backward pass (MSE + sigmoid):
      dL/dy = (y_pred - y_true)
      dL/dz = dL/dy * y_pred * (1 - y_pred)
      dL/dbeta = X.T @ dL/dz
      dL/db = mean(dL/dz)
    """
    dL_dy = y_pred - y_true                 # (N,1)
    dL_dz = dL_dy * y_pred * (1 - y_pred)   # (N,1)
    beta_grad = X.T @ dL_dz                 # (f,1)
    b_grad = np.mean(dL_dz)                 # scalar
    return beta_grad, b_grad

 

 

์œ„์˜ ๋‚ด์šฉ๊ณผ ์ฝ”๋“œ๊ฐ€ ์ดํ•ด๊ฐ€๋Š”๊ฐ€? ๋‚œ ๋ชจ๋ฅด๊ฒ ๋‹ค...

์™œ ์—ญ์ „ํŒŒ๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ X, ํƒ€๊ฒŸ๊ฐ’ y_true ๋ž‘ ์˜ˆ์ธก๊ฐ’ y_pred ์ด ๋“ค์–ด๊ฐ€๋Š”์ง€.. 

์™œ ์ฝ”๋“œ๋Š” y_pred = y_true๊ฐ€ ๋‚˜์˜ค๋Š”์ง€... ์•„๋ž˜์—์„  ์™œ ๋˜ dL/dy * y_pred * (1 - y_pred) ์ด๋ ‡๊ฒŒ ๊ณฑํ•ด์ฃผ๊ณ  ์žˆ๋Š”์ง€...

beta_grad๊ฐ€ ๊ธฐ์šธ๊ธฐ์ธ๊ฑฐ ๊ฐ™์€๋ฐ ์™œ X์— ํŠธ๋žœ์Šคํฌ์ฆˆ๋ฅผ ํ•ด์ฃผ๋Š”๋ฐ? ์œผ์•„์•„... ๐Ÿ˜‡

 

์ € ์ฝ”๋“œ์™€ ์ˆœ์„œ, ๊ทธ๋ฆฌ๊ณ  ์œ„์˜ ์ˆ˜์‹๋“ค์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ์ฒด์ธ๋ฃฐ๋กœ ์–ด๋–ค ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€๋ฅผ ์ดํ•ด ํ•ด์•ผํ•œ๋‹ค

์ž์„ธํ•œ ์„ค๋ช…์€ ํ•˜์ง€ ์•Š๊ณ , ์–ด๋–ค ํ˜•ํƒœ์ธ์ง€๋งŒ ์‚ดํŽด๋ณด๊ฒ ๋‹ค

 

 

 

 

๋จผ์ €, ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•ด์•ผํ•˜๋Š” ๊ธฐ์šธ๊ธฐ๋Š” beta์— ๋Œ€ํ•œ ๊ธฐ์šธ๊ธฐ์ด๋‹ค

ํ•˜์ง€๋งŒ ์ˆœ์ „ํŒŒ์—์„œ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋“ฏ์ด, ์—ญ์ „ํŒŒ์—์„œ beta๊นŒ์ง€ ๋ฐ”๋กœ ๊ฐ€๊ธฐ์—๋Š” ์ค‘๊ฐ„์— ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋“ค์ด ์กด์žฌํ•œ๋‹ค

 

์ˆœ์ „ํŒŒ๋ฅผ ์ผ๋ จ์˜ ๊ณผ์ •์œผ๋กœ ๋ณด๊ธฐ์ข‹๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

์ˆœ์ „ํŒŒ (forward pass)

์ž…๋ ฅ $X$ ๋ฅผ ๋ฐ›์•„์„œ ์„ ํ˜• ๊ฒฐํ•ฉ $z=Xβ+b$

$z$ → ์‹œ๊ทธ๋ชจ์ด๋“œ ํ†ต๊ณผ → ์˜ˆ์ธก๊ฐ’ $\hat{y} = \sigma(z)$

์†์‹ค $L = \text{loss}(y, \hat{y})$ : $L = \frac{1}{2}(y - \hat{y})^2$

 

์„ ํ˜• ํ•จ์ˆ˜ ํ•˜๋‚˜ ๊ฑฐ์น˜๊ณ  ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋„ ํ•˜๋‚˜ ๊ฑฐ์น˜๊ณ  ๊ทธ๋ฆฌ๊ณ  ์†์‹ค ํ•จ์ˆ˜๋„ ๊ฑฐ์น˜๋„ค?

โœ… ๊ทธ๋Œ€๋กœ ๊ฑฐ๊พธ๋กœ ํ•˜๋‚˜์”ฉ ๊ฑฐ์น˜๋ฉด ๋œ๋‹ค. ์†์‹คํ•จ์ˆ˜ - ํ™œ์„ฑํ™” ํ•จ์ˆ˜ - ์„ ํ˜• ํ•จ์ˆ˜ ์ˆœ์œผ๋กœ.

 

 

์—ญ์ „ํŒŒ (backward pass)

์†์‹ค $L$ ์„ ํŒŒ๋ผ๋ฏธํ„ฐ $(β,b)$ ์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ → gradient ๊ตฌํ•˜๊ธฐ

์ฒด์ธ๋ฃฐ์„ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด์“ฐ๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

$$  \frac{\partial L}{\partial \beta} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial z} \cdot \frac{\partial z}{\partial \beta} $$

 

 

์˜ค.. ํ•˜๋‚˜์”ฉ ๋ณผ๊นŒ??

 

 

$$  \frac{\partial L}{\partial \beta} $$

  • ์˜ค์ฐจ, ์†์‹คํ•จ์ˆ˜ L์— ๋Œ€ํ•œ ๊ฐ€์ค‘์น˜ beta ํŽธ๋ฏธ๋ถ„๊ฐ’
  • ์ง€๊ธˆ ๋‚˜์˜จ ์˜ค์ฐจ์— ๋Œ€ํ•ด์„œ ๊ฐ€์ค‘์น˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ฒ ์–ด์š” ํ•˜๋Š” ๊ฒƒ

 

 

 

$$  \frac{\partial L}{\partial \hat{y}} $$

  • ํ•˜์ง€๋งŒ beta์— ๋Œ€ํ•ด์„œ ๋ฐ”๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜๋Š” ์—†๋‹ค
  • ๊ทธ๋ž˜์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” y-hat ๊ฐ’์— ๋Œ€ํ•ด ๋ฏธ๋ถ„๊ฐ’์„ ๊ตฌํ•œ๋‹ค
  • ์ˆœ์ „ํŒŒ์—์„œ ์ž…๋ ฅ์ด ์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ํ†ต๊ณผํ•œ ํ™•๋ฅ , ์˜ˆ์ธก๊ฐ’์ด๊ณ  ์ถœ๋ ฅ์€ loss๊ฐ’
  • ์ด๊ฑธ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์œผ๋ฉด ๋œ๋‹ค. ์‹์€ ์†์‹คํ•จ์ˆ˜! ์œ„์— MSE ์‹์„ ๋ฏธ๋ถ„ํ•œ๋‹ค!!!

๊ทธ๋Ÿผ ์š” MSE ์‹์ด ๋ฏธ๋ถ„๋˜์–ด์„œ

$$ L = \frac{1}{2}\sum (y - \hat{y})^2 $$

 

์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜์˜ค๊ฒŒ๋œ๋‹ค ( ๋ฏธ๋ถ„ ๊ณผ์ •์€ ์ƒ๋žต.. )

 

$$ \frac{\partial L}{\partial \hat{y}} = ( \hat{y} - y) $$

๊ทธ๋Ÿผ ์ด์ œ ๊ฐ์ด ์žกํžŒ๋‹ค!! ์ฒด์ธ๋ฃฐ์— ์žˆ๋Š”๊ฑฐ ํ•˜๋‚˜์”ฉ ์–ด๋–ค ์‹์ธ์ง€ ํ™•์ธํ•˜๊ณ  ๋ฏธ๋ถ„ํ•ด์ค˜์„œ ์‹น ๊ณฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค!!! 

y-hat - y..? ์–ด... ์ด๊ฑฐ ์–ด๋””์„œ ๋ดค๋Š”๋ฐ..? 

dL_dy = y_pred - y_true

 

 

 

 

$$   \frac{\partial \hat{y}}{\partial z}  $$

  • ์ˆœ์ „ํŒŒ์—์„œ ์ด ๋ถ€๋ถ„์ด ๋ญ์˜€์„๊นŒ?
  • ์„ ํ˜• ํ•จ์ˆ˜ z๋ฅผ ๊ฑฐ์ณ ๋‚˜์˜จ ๊ฐ’์ด ์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ํ†ต๊ณผํ•˜์—ฌ y-hat์ด ๋‚˜์˜จ ๋ถ€๋ถ„์ด๋‹ค
  • ๊ทธ๋Ÿผ ์—ฌ๊ธฐ๋Š” ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค

 

์‹œ๊ทธ๋ชจ์ด๋“œ๋ฅผ ๊ฑฐ์น˜๋ฉด ๋‚˜์˜ค๋Š” ๊ฐ’์ด y-hat์ด๋‹ˆ๊นŒ ์˜ˆ์ธก๊ฐ’.. ์–ด..?

y_pred * (1 - y_pred)

 

 

 

 

$$   \frac{\partial z}{\partial \beta} $$

  • ๋“œ๋””์–ด ์šฐ๋ฆฌ๊ฐ€ ๋ชฉํ‘œ๋กœ ํ–ˆ๋˜ beta๊นŒ์ง€ ์™”๋‹ค. ์ด๋ฒˆ์—๋Š” ์„ ํ˜•ํ•จ์ˆ˜์ด๋‹ค 
  • ์œ„์˜ ์‹์„ ๋‹ค์‹œ ํ™•์ธํ•ด๋ณด๋ฉด $ z=Xβ+b $
  • ์ด์ œ z๋ฅผ β ์— ๋Œ€ํ•ด ๋ฏธ๋ถ„ํ•˜๋ฉด ๋ฌด์—‡์ด ๋‚จ๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

 

$$   \frac{\partial z}{\partial \beta}  = X $$

 

  • ์„ ํ˜•ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ๊ฐ’ X๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์—ญ์ „ํŒŒ์—์„œ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ X๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด๋‹ค
  • ํ•˜์ง€๋งŒ ๊ทธ๋Œ€๋กœ ๊ณฑํ•  ์ˆ˜๋Š” ์—†๋‹ค
  • ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ์ƒ˜ํ”Œ์„ ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ํ•™์Šตํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ์ง€๊ธˆ๊นŒ์ง€ ๊ณ„์‚ฐํ•œ ๊ธฐ์šธ๊ธฐ ๊ฐ’๋“ค์€ ๋ฒกํ„ฐ๋‚˜ ํ–‰๋ ฌ ํ˜•ํƒœ๋กœ ์Œ“์—ฌ ์žˆ๋‹ค.
  • ์ด ์ƒํƒœ์—์„œ ์ฒด์ธ๋ฃฐ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณฑํ•ด์ง„ ๊ธฐ์šธ๊ธฐ์— ๋งˆ์ง€๋ง‰ XX๋ฅผ ๊ณฑํ•˜๋ ค๋ฉด, shape(ํ–‰๋ ฌ ์ฐจ์›)์„ ๋งž์ถฐ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ํŠธ๋žœ์Šคํฌ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•ด ํ–‰๋ ฌ๊ณฑ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค
b_grad = np.mean(dL_dz)

 

 

์ด๋ ‡๊ฒŒ ๊ตฌํ•œ ๊ธฐ์šธ๊ธฐ๊ฐ’์€ ์•„๋ž˜์— ํ•™์Šต๋ฅ ๊ณผ ๊ณฑํ•ด์„œ ๊ธฐ์กด์˜ ๊ฐ€์ค‘์น˜์— ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

 

 

 

++์ถ”๊ฐ€๋กœ ์†์‹คํ•จ์ˆ˜ L์— ๋Œ€ํ•ด y-hat ๋ฏธ๋ถ„ํ–ˆ์„ ๋•Œ y_true - y_pred๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์•„๋ž˜์—์„œ ๋งˆ์ด๋„ˆ์Šค ๋ถ™์—ฌ์ฃผ๋ฉด ๋˜‘๊ฐ™๋‹ค

์ข…์ข… ํ˜ผ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋‹ˆ ๋ถ€ํ˜ธ ์ฃผ์˜ํ•  ๊ฒƒ.

dL_dy = y_true - y_pred                 # (N,1)
dL_dz = dL_dy * y_pred * (1 - y_pred)   # (N,1)
beta_grad = - X.T @ dL_dz                 # (f,1)

 

 

3. ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ (SGD)

 

ํ•™์Šต๋ฅ  $η=0.1 $ ์ผ ๋•Œ,

  • ๊ฐ€์ค‘์น˜ ์—…๋ฐ์ดํŠธ:
    $ \beta \leftarrow \beta - \eta * \beta\_{grad} $
  • ํŽธํ–ฅ ์—…๋ฐ์ดํŠธ:
    $ b \leftarrow b - \eta * b\_{grad} $

์—…๋ฐ์ดํŠธ ๊ฒฐ๊ณผ:

β = [0.0563, 0.0676]
b = 0.00377

 

 

 

4. ๋งˆ๋ฌด๋ฆฌ

  • ์ˆœ์ „ํŒŒ: ์ž…๋ ฅ ๋ฐ์ดํ„ฐ → ๊ฐ€์ค‘์น˜/ํŽธํ–ฅ → ๋กœ์ง“ → ์‹œ๊ทธ๋ชจ์ด๋“œ → ์˜ˆ์ธก๊ฐ’ → ์†์‹ค
  • ์—ญ์ „ํŒŒ: ์†์‹ค → ์˜ˆ์ธก๊ฐ’ → ์‹œ๊ทธ๋ชจ์ด๋“œ → ๋กœ์ง“ → (X, ๊ฐ€์ค‘์น˜, ํŽธํ–ฅ)
  • ๊ฒฐ๊ตญ beta_grad =  X.T @ error๋Š” ์ฒด์ธ๋ฃฐ์„ ๋๊นŒ์ง€ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋‹ค.
  • ์—ฌ๊ธฐ์„œ X๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ์ด์œ ๋Š”, ๋กœ์ง“ $ z=Xβ+b $ ์—์„œ ๊ฐ€์ค‘์น˜์— ๋Œ€ํ•œ ๋ฏธ๋ถ„๊ฐ’์ด ๋ฐ”๋กœ X์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

 

 

 


 

 

 

 

 

 

์ด๋ฒˆ์— ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ฝ”๋“œ ๋ณด๋Š”๋ฐ ๋ญ์ง€...? ์‹ถ์–ด์„œ ์–ด์ œ์˜ค๋Š˜ ๊ฑฐ์˜ ์ดํ‹€ ๋™์•ˆ ์ด ๋ถ€๋ถ„๋งŒ ๊ณ„์† ์ดํ•ดํ•˜๋ ค๊ณ  ์ฐพ์•„๋ณธ ๊ฒƒ ๊ฐ™๋‹ค

“์™œ X.T @ error์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค” ์‹ถ์—ˆ๋˜ ๊ฒŒ, ์‚ฌ์‹ค์€ ์ˆœ์ „ํŒŒ ์‹์„ ์—ญ์œผ๋กœ ์ถ”์ ํ•ด๊ฐ€๋ฉด์„œ ์ฒด์ธ๋ฃฐ์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ์˜€๋‹ค

์ด ๊ณผ์ •์„ ์ดํ•ดํ•˜๋‹ˆ๊นŒ ์ˆ˜ํ•™์ ์ธ ๋ถ€๋ถ„์ด ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜์—ˆ๋Š”์ง€ ์ž˜ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค

์†”์งํžˆ ์‹œ๊ฐ„์„ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ์“ฐ๊ฒŒ ๋˜์„œ ๋‹ค๋ฅธ ๊ณต๋ถ€๋“ค๋„ ๋ฐ€๋ฆฌ๊ธด ํ–ˆ์ง€๋งŒ... ์˜ˆ์ „์— ๋Œ€์ถฉ ๋ณด๊ณ  ๋„˜์–ด๊ฐ”๋˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ๋•Œ๊นŒ์ง€ ํŒŒ๋ณด๊ณ  ์ดํ•ดํ–ˆ๋‹ค๋Š” ์ ์—์„œ ์ถฉ๋ถ„์˜ ์œ ์˜๋ฏธํ•œ ์‹œ๊ฐ„๋“ค์ด์—ˆ๋‹ค!