๐Ÿšฉ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ดˆ - part10. Batch Gradient Descent .vs Stochastic Gradient Descent

vincaยท2022๋…„ 10์›” 30์ผ
0

๐ŸŒ“ AI/DL - theory

๋ชฉ๋ก ๋ณด๊ธฐ
11/24
post-thumbnail

๐ŸŸข Introduction

์ด์ „ part06์—์„œ gradient descent์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ–ˆ์—ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์„ ํ˜•์ผ๋•Œ(linear regression)๊ณผ ๋น„ ์„ ํ˜• ๊ทธ๋ž˜ํ”„(logistic regression)๋˜ํ•œ ์•Œ์•„๋ณด์•˜๋‹ค.
์„ ํ˜•์˜ ๋ชจํ˜•์€ ์˜ˆ์ธก์„ ์œ„ํ•ด ์‚ฌ์šฉ์ด๋˜๊ณ , logistic์˜ ๊ฒฝ์šฐ ๋ถ„๋ฅ˜์— ์‚ฌ์šฉ์ด ๋˜์—ˆ๋‹ค.
๋‘˜ ๋‹ค ์ตœ์ ์˜ ๋ชจ๋ธ y=wx+by=wx+b, 11+eโˆ’k1\over 1+e^{-k}(k=wx+b)(k = wx+b) ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ gradient descent๋ฅผ ์ˆ˜ํ–‰ํ•˜์˜€๋‹ค.
(๋ชจ๋ธ์˜ ์˜ค์ฐจ๋ฅผ ์ž˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค์ฐจํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ , ํ•ด๋‹น ์˜ค์ฐจํ•จ์ˆ˜๋ฅผ ๋ฏธ๋ถ„ํ•ด์„œ ์–ป์€ ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ๋นผ๋Š” ํ˜•์‹์œผ๋กœ ๊ฒฝ์‚ฌํ•˜๊ฐ•์„ ์ˆ˜ํ–‰ - ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ)

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์—๋„ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•„๋Š”๊ฐ€?

์ด์ œ gradient descent์˜ ๋ฐฉ๋ฒ•์˜ 2๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด์ž.

Batch Gradinet Descent

"๋น„์šฉํ•จ์ˆ˜"๋ฅผ ํŽธ๋ฏธ๋ถ„ํ•˜์—ฌ ๋‚˜์˜จ ๊ฐ’์„ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
(์—ฌ๊ธฐ์„œ์˜ ๋น„์šฉํ•จ์ˆ˜๋Š” Linear regression / rogistic regression์ธ๊ฐ€์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์งˆ ๊ฒƒ์ด๋‹ค)

์ด ๋•Œ ์šฐ๋ฆฌ๋Š” "๋น„์šฉํ•จ์ˆ˜"๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
์ฆ‰, "ํ‰๊ท "์ œ๊ณฑ์˜ค์ฐจ๊ฐ€ ๋ฐ”๋กœ ๋น„์šฉํ•จ์ˆ˜์˜€๋‹ค.
ํ‰๊ท ์ œ๊ณฑ์˜ค์ฐจ๋ผ๋Š” ๊ฑด ๋ชจ๋“  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์˜ค์ฐจ ์ œ๊ณฑ์˜ ํ‰๊ท ์ด๋ผ๋Š” ๋ง์ด๋‹ค.

์™œ์ด๋ ‡๊ฒŒ ๋‹จ์ˆœํ•œ ๋ง์„ ๊ฐ•์กฐํ• ๊นŒ? ์ค‘์š”ํ•ด์„œ ๊ทธ๋ ‡๋‹ค.

๋น„์šฉํ•จ์ˆ˜์™€, ์†์‹คํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ๊ธฐ์–ต๋‚˜๋Š”๊ฐ€?

  • ์†์‹คํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ํ•˜๋‚˜ ๋Œ€ํ•œ ์˜ค์ฐจ๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ด๊ณ 
  • ๋น„์šฉํ•จ์ˆ˜๋Š” ์ด๋Ÿฌํ•œ ์†์‹คํ•จ์ˆ˜๋กœ ๊ตฌํ•ด์ง„ ์˜ค์ฐจ๋“ค์˜ ํ‰๊ท ์ด๋‹ค.

์ง€๊ธˆ๊นŒ์ง€๋Š” ์ญ‰ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์€ "๋น„์šฉํ•จ์ˆ˜"๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์˜ค์ฐจ๋ฅผ ๊ตฌํ•œ ๋‹ค์Œ ์ด๋ฅผ ์—…๋ฐ์ดํŠธ(ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐฑ์‹ )์— ๋ฐ˜์˜์„ ํ–ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋น„์šฉํ•จ์ˆ˜๋กœ gradient descent๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด
Batch gradient descent๋ผ๊ณ  ํ•œ๋‹ค.

๋”ฅ๋Ÿฌ๋‹์—์„œ ๋ชจ๋“  ํ•™์Šต๋ฐ์ดํ„ฐ๋ฅผ ์ „๋ถ€ ๋ณด๋Š” ๊ฒƒ์„ ํ•œ ์„ธ๋Œ€๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ฆ‰, Batch gradient descent๋Š” ํ•œ ์„ธ๋Œ€๋งˆ๋‹ค ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐฑ์‹ ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์ด๋‹ค.

Batch gradient descent ๊ณผ์ •

  • ๋น„์šฉํ•จ์ˆ˜

    J=12nโˆ‘i=1N(y^(i)โˆ’y(i))2=12nโˆ‘i=1N((wx(i)+b)โˆ’y(i))2\mathcal{J} = \frac{1}{2n} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)})^{2} = \frac{1}{2n} \sum_{i=1}^N ((w x^{(i)}+b) - y^{(i)})^{2}

  • w,bw,b์— ๋Œ€ํ•œ ํŽธ๋ฏธ๋ถ„(partial derivative)

    โˆ‚Jโˆ‚w=1nโˆ‘i=1N(y^(i)โˆ’y(i))x(i)\frac{\partial \mathcal{J}}{\partial w} = \frac{1}{n} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)}) x^{(i)}
    โˆ‚Jโˆ‚b=1nโˆ‘i=1N(y^(i)โˆ’y(i))\frac{\partial \mathcal{J}}{\partial b} = \frac{1}{n} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)})

  • Gradient descent method (ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ)

    w:=wโˆ’ฮฑโˆ‚L(i)โˆ‚w=wโˆ’ฮฑ1nโˆ‘i=1N(y^(i)โˆ’y(i))x(i)w := w - \alpha \frac{\partial \mathcal{L}^{(i)}}{\partial w} = w - \alpha \frac{1}{n} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)}) x^{(i)}
    b:=bโˆ’ฮฑโˆ‚L(i)โˆ‚b=bโˆ’ฮฑ1nโˆ‘i=1N(y^(i)โˆ’y(i))b := b - \alpha \frac{\partial \mathcal{L}^{(i)}}{\partial b} = b - \alpha \frac{1}{n} \sum_{i=1}^N (\hat{y}^{(i)} - y^{(i)})

Stochastic Gradient Descent (SGD)

๊ทธ๋Ÿผ Stochastic Gradient Descent (SGD)๋Š” ๋ฌด์—‡์ผ๊นŒ?

๋ˆˆ์น˜์ฑ˜๋Š”๊ฐ€? ๋น„์šฉํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ์†์‹คํ•จ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐ ์ƒ˜ํ”Œ(ํ•™์Šต๋ฐ์ดํ„ฐ)๋งˆ๋‹ค ๊ตฌํ•ด์ง„ (์˜ค์ฐจ2์˜ค์ฐจ^2)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฆ‰์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๊ฒŒ ๋œ๋‹ค.

๋ชจ๋“  ์ƒ˜ํ”Œ์˜ loss์— ๋Œ€ํ•ด์„œ ์ „๋ถ€ ๊ฐ๊ฐ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐฑ์‹ ์ด ์ด๋ฃจ์–ด ์ง„๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ž…๋ ฅ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ 100๊ฐœ๋ผ๋ฉด 1์„ธ๋Œ€(100๊ฐœ)๋™์•ˆ 100๋ฒˆ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐฑ์‹ ์ด ์ด๋ฃจ์–ด ์ง€๋Š” ๊ฒƒ์ด๋‹ค. (batch์˜ ๊ฒฝ์šฐ 1๋ฒˆ์ด์—ˆ์Œ)

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฑธ๊นŒ?

๋ฐ”๋กœ๋ฐ”๋กœ ๊ฐฑ์‹ ํ•˜๋‹ค๋ณด๋‹ˆ loss๊ฐ€ ๋น ๋ฅด๊ฒŒ ๊ฐ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ „์ฒด ๋ฐ์ดํ„ฐ์˜ ์˜ค์ฐจ๋ฅผ ๋ฐ˜์˜ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๊ฐ์†Œ๊ฐ€ ์ตœ์ ์˜ ๋ฐฉํ–ฅ์œผ๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š” ๊ฒƒ์ธ์ง€๋Š” ์•Œ ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ, ํ•ญ์ƒ ๋น ๋ฅธ ์ˆ˜๋ ด์„ ํ•œ๋‹ค๋ผ๊ณ ๋Š” ์ •์˜ํ•  ์ˆ˜ ์—†๋‹ค.

SGD ๊ณผ์ •

  • ์†์‹คํ•จ์ˆ˜

    L(i)=(y^(i)โˆ’y(i))2=((wx(i)+b)โˆ’y(i))2\mathcal{L}^{(i)} = (\hat{y}^{(i)} - y^{(i)})^{2} = ((w x^{(i)}+b) - y^{(i)})^{2}

  • w,bw,b์— ๋Œ€ํ•œ ํŽธ๋ฏธ๋ถ„(partial derivative)

    โˆ‚L(i)โˆ‚w=2x(i)(y^(i)โˆ’y(i))\frac {\partial \mathcal{L}^{(i)}}{\partial w} = 2x^{(i)}(\hat{y}^{(i)} - y^{(i)})
    โˆ‚L(i)โˆ‚b=y^(i)โˆ’y(i)\frac{\partial \mathcal{L}^{(i)}}{\partial b} = \hat{y}^{(i)} - y^{(i)}

  • Gradient descent method (ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ)

    w:=wโˆ’ฮฑโˆ‚L(i)โˆ‚w=wโˆ’2ฮฑx(i)(y^(i)โˆ’y(i))w := w - \alpha \frac{\partial \mathcal{L}^{(i)}}{\partial w} = w - 2\alpha x^{(i)}(\hat{y}^{(i)} - y^{(i)})
    b:=bโˆ’ฮฑโˆ‚L(i)โˆ‚b=bโˆ’2ฮฑ(y^(i)โˆ’y(i))b := b - \alpha \frac{\partial \mathcal{L}^{(i)}}{\partial b} = b - 2\alpha (\hat{y}^{(i)} - y^{(i)})

์ฐธ๊ณ 

์™œ SGD์—์„œ๋Š” Weight๋ฐ Loss์˜ ๋ณ€ํ™”๊ฐ€ ๋‘๊ป˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ๋ณด์ผ๊นŒ?

์ƒ˜ํ”Œ๋งˆ๋‹ค ์‹œํ–‰๋˜๋ฏ€๋กœ ์ตœ์ ์˜ ๋ฐฉํ–ฅ์„ ์ฐพ๊ธฐ์œ„ํ•ด์„œ ๊ฐ’์ด ์ง„๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ ๋‘๊ป˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ทธ๋ž˜ํ”„๊ฐ€ ๋ณด์ธ๋‹ค.

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€