ํšŒ๊ท€(Regression)

ํšŒ๊ท€ : ๊ฐ€๊ฒฉ์ด๋‚˜ ํ™•๋ฅ ์ฒ˜๋Ÿผ ์—ฐ์†๋œ ์‹ค์ˆซ๊ฐ’์„ ์ •ํ™•ํžˆ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ 

ex) ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ์ฃผ๊ฐ€, ์ƒ์‚ฐ๋Ÿ‰, ์ง€์ˆ˜ ์˜ˆ์ธก
numpy, tensorflow, sklearn ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ

 


1. Linear Regression (์„ ํ˜• ํšŒ๊ท€)
์„ ํ˜•์ ์ธ ๊ฒฝํ–ฅ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” 2์ฐจ์›์˜ ์ง์„ ์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ

"๋งŽ์€ ์ (ํ•™์Šต๋ฐ์ดํ„ฐ)๋“ค์„ ์ฃผ๊ณ , ์ด ์ ๋“ค์„ ๋ชจ๋‘ ๊ด€ํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ธ ์ง์„ ์„ ์ฐพ์•„๋ผ!"

 

์ข…์† ๋ณ€์ˆ˜(dependent variable) y์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋…๋ฆฝ ๋ณ€์ˆ˜(independent variavle) x์‚ฌ์ด์˜ ๊ด€๊ณ„ ๋ชจ๋ธ๋ง

y = wx + b

๋…๋ฆฝ๋ณ€์ˆ˜ x๊ฐ€ 1๊ฐœ๋ผ๋ฉด ๋‹จ์ˆœ ์„ ํ˜• ํšŒ๊ท€

from sklearn.linear_model import LinearRegression
tf.Varaible(tf.random_normal

 

 

2. Multiple Linear Regression (๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€)

๋‹ค์ˆ˜์˜ x๋กœ๋ถ€ํ„ฐ y๋ฅผ ์˜ˆ์ธก

์„ ํ˜•ํšŒ๊ท€์™€ ๋™์ผํ•œ๋ฐ, 2์ฐจ์›์—์„œ N์ฐจ์›์œผ๋กœ ๋Š˜์–ด๋‚จ

ex) ๋…๋ฆฝ ๋ณ€์ˆ˜ x์˜ ๊ฐœ์ˆ˜๊ฐ€ 3๊ฐœ์ผ ๋•Œ์˜ ์ˆ˜์‹์€ H(x) = w1x1 + w2x2 + w3x3 + b

* w : ๊ฐ€์ค‘์น˜(weight) =  ๊ธฐ์šธ๊ธฐ, b : ํŽธํ–ฅ(bias) = ์ ˆํŽธ

 


3. Polynomial Regression (๋‹คํ•ญ ํšŒ๊ท€)
์„ ํ˜•ํšŒ๊ท€์˜ ์ง์„ ์„ 2์ฐจ ํ•จ์ˆ˜ ์ด์ƒ์œผ๋กœ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ

from sklearn.preprocessing import PolynomialFeatures

 

 

 

 

 

๋ถ„๋ฅ˜(Classification)

๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋А ๋ฒ”์ฃผ(Category)์— ์†ํ•˜๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•



์ดํ•ญ ๋ถ„๋ฅ˜(Binary Classification)
2๊ฐœ์˜ Label์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ, 0 ๋˜๋Š” 1๋กœ ๋ถ„๋ฅ˜๋ฅผ ํ•˜๋Š” ๊ฒƒ

ex) ๋ฉ”์ผ์„ ๋ณด๊ณ ๋‚˜์„œ ์ •์ƒ ๋ฉ”์ผ, ์ŠคํŒธ ๋ฉ”์ผ์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ
ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋Š” ์ฃผ๋กœ Sigmoid ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ (Sigmoid ํ•จ์ˆ˜๊ฐ€ 0 ๋˜๋Š” 1๋กœ ์ถœ๋ ฅ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ)
* Sigmoid ๋Œ€์‹  Softmax๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ

๋‹คํ•ญ ๋ถ„๋ฅ˜(Multi Classification)
3๊ฐœ ์ด์ƒ์˜ Label์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ถ„๋ฅ˜ ์ž‘์—…

* ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€๋ฅผ ์ผ์ข…์˜ ์ธ๊ณต ์‹ ๊ฒฝ๋ง ๊ตฌ์กฐ๋กœ ํ•ด์„ํ•ด๋„ ๋ฌด๋ฐฉ
๋”ฅ๋Ÿฌ๋‹ ๋„คํŠธ์›Œํฌ์—์„œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋Š” ์ฃผ๋กœ Softmax๋ฅผ ์‚ฌ์šฉ

 

 

 

 

 

 

๊ฐ€์„ค(Hypothesis) ์„ธ์šฐ๊ธฐ

์„ ํ˜• ํšŒ๊ท€๋Š” ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ y์™€ x์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์žฅ ์ž˜ ๋‚˜ํƒ€๋‚ด๋Š” ์ง์„ ์„ ๊ทธ๋ฆฌ๋Š” ์ผ
์–ด๋–ค ์ง์„ ์ธ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ w์™€ b์˜ ๊ฐ’์ด๋ฏ€๋กœ ์„ ํ˜• ํšŒ๊ท€์—์„œ ํ•ด์•ผํ•  ์ผ์€ ๊ฒฐ๊ตญ ์ ์ ˆํ•œ w์™€ b๋ฅผ ์ฐพ์•„๋‚ด๋Š” ์ผ


๋น„์šฉ ํ•จ์ˆ˜(Cost function)

= ๋ชฉ์ ํ•จ์ˆ˜(Objective function), ์†์‹คํ•จ์ˆ˜(Loss function) * ์™„๋ฒฝํ•˜๊ฒŒ ๊ฐ™์€ ์˜๋ฏธ๋Š” ์•„๋‹ˆ๋‚˜ ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•จ

๋จธ์‹  ๋Ÿฌ๋‹์€ w์™€ b๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ์‹ค์ œ๊ฐ’๊ณผ ๊ฐ€์„ค๋กœ๋ถ€ํ„ฐ ์–ป์€ ์˜ˆ์ธก๊ฐ’์˜ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์‹์„ ์„ธ์šฐ๊ณ , ์ด ์‹์˜ ๊ฐ’์„ ์ตœ์†Œํ™”ํ•˜๋Š” ์ตœ์ ์˜ w์™€ b๋ฅผ ์ฐพ์•„๋ƒ„

- ๋ชฉ์  ํ•จ์ˆ˜
ํ•จ์ˆ˜์˜ ๊ฐ’์„ ์ตœ์†Œํ™”ํ•˜๊ฑฐ๋‚˜, ์ตœ๋Œ€ํ™”ํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ๋ชฉ์ ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜

- ๋น„์šฉ ํ•จ์ˆ˜(Cost function)  = ์†์‹ค ํ•จ์ˆ˜
ํ•จ์ˆ˜์˜ ๊ฐ’์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ชฉ์ ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜

 

 

ํฌ๋กœ์Šค์—”ํŠธ๋กœํ”ผ (categorical crossentropy)

Squared Loss์™€ ๋”๋ถˆ์–ด ์–‘๋Œ€ ์†์‹ค ํ•จ์ˆ˜ (์‹ ๊ฒฝ๋ง ์ถœ๋ ฅ์„ ํ™•๋ฅ ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š” ์†์‹ค ํ•จ์ˆ˜)

q์— ๋Œ€ํ•˜์—ฌ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ์—์„œ, ๋ชจ๋ธ๋ง์„ ํ†ตํ•˜์—ฌ ๊ตฌํ•œ ๋ถ„ํฌ์ธ p๋ฅผ ํ†ตํ•˜์—ฌ q๋ฅผ ์˜ˆ์ธก
์‹ค์ œ๊ฐ’๊ณผ ์˜ˆ์ธก๊ฐ’์ด ๋งž๋Š” ๊ฒฝ์šฐ์—๋Š” 0์œผ๋กœ ์ˆ˜๋ ด, ๊ฐ’์ด ํ‹€๋ฆด๊ฒฝ์šฐ์—๋Š” ๊ฐ’์ด ์ปค์ง€๋ฏ€๋กœ ์‹ค์ œ ๊ฐ’๊ณผ ์˜ˆ์ธก ๊ฐ’์˜ ์ฐจ์ด๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ์—”ํŠธ๋กœํ”ผ

๋ฒ”์ฃผํ˜• ํฌ๋กœ์Šค ์—”ํŠธ๋กœํ”ผ(categorical cross entropy, CCE) : ๋ชจ๋“  ๋ฒ”์ฃผ์— ๋Œ€ํ•œ ํฌ๋กœ์Šค ์—”ํŠธ๋กœํ”ผ์˜ ํ‰๊ท ์„ ๋‚ด๋Š” ๊ฒƒ

 

* ์—”ํŠธ๋กœํ”ผ
๋ถˆํ™•์‹ค์„ฑ์˜ ์ฒ™๋„ (์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ฌ์ง€ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ)
์—”ํŠธ๋กœํ”ผ๊ฐ€ ๋†’๋‹ค = ์ •๋ณด๊ฐ€ ๋งŽ๊ณ , ํ™•๋ฅ ์ด ๋‚ฎ๋‹ค


ํ‰๊ท  ์ œ๊ณฑ ์˜ค์ฐจ(MSE)

์ž”์ฐจ๋“ค์˜ ์ œ๊ณฑ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ *์ž”์ฐจ(Residual) = y-y_pred : ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์™€ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์ฐจ

๋‹จ์ˆœํžˆ ์‹ค์ œ๊ฐ’๊ณผ ์˜ˆ์ธก๊ฐ’์— ๋Œ€ํ•œ ์˜ค์ฐจ๋ฅผ ํ‘œํ˜„ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜ˆ์ธก๊ฐ’์˜ ์˜ค์ฐจ๋ฅผ ์ค„์ด๋Š” ์ผ์— ์ตœ์ ํ™” ๋œ ์‹์ด์–ด์•ผ ํ•จ
์˜ค์ฐจ์˜ ์ ˆ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•  ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ชจ๋“  ์˜ค์ฐจ๋ฅผ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ

 

 

๋ฌธ์ œ ์œ ํ˜•์— ๋”ฐ๋ผ ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์†์‹คํ•จ์ˆ˜

์†์‹คํ•จ์ˆ˜ ์šฉ๋„
์ด์ง„ ํฌ๋กœ์Šค ์—”ํŠธ๋กœํ”ผ ์ด์ง„ ๋ถ„๋ฅ˜
๋ฒ”์ฃผํ˜• ํฌ๋กœ์Šค ์—”ํŠธ๋กœํ”ผ ๋‹ค์ค‘ ๋ถ„๋ฅ˜
ํ‰๊ท  ์ œ๊ณฑ ์˜ค์ฐจ ํšŒ๊ท€

 

 

์˜ตํ‹ฐ๋งˆ์ด์ €(Optimizer)

๋น„์šฉ ํ•จ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์ธ w์™€ b์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์˜ตํ‹ฐ๋งˆ์ด์ €(Optimizer) = ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜
ํ›ˆ๋ จ(training) ๋˜๋Š” ํ•™์Šต(learning) : ๋จธ์‹ ๋Ÿฌ๋‹์—์„œ ์˜ตํ‹ฐ๋งˆ์ด์ €๋ฅผ ํ†ตํ•ด ์ ์ ˆํ•œ w์™€ b๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ณผ์ •

์˜ตํ‹ฐ๋งˆ์ด์ € ํŠน์ง•
ํ™•๋ฅ ์  ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•
(Stochastic Gradient Descent)
๋ช‡๋ช‡ ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ์„ ๋ฌด์ž‘์œ„ ์ถ”์ถœํ•˜์—ฌ ์ผ๋ถ€๋งŒ ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์„ ์ ์šฉ, ํ•™์Šต ์†๋„ ๊ฐœ์„ 
RMSProp ๊ธฐ์šธ๊ธฐ์— ๋”ฐ๋ผ ํ•™์Šต๋ฅ  ์กฐ์ •
MoMentum ๊ด€์„ฑ ๊ฐœ๋… ์ถ”๊ฐ€
Adam RMSProp + MoMentum

 

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

w๊ฐ€ ์ž„์˜์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š” ๋„ค ๊ฐ€์ง€์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ, ๊ทธ๋ž˜ํ”„ ์ƒ์œผ๋กœ ์ ‘์„ ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ํ‘œํ˜„

ํ•จ์ˆ˜ ๊ฐ’์ด ๋‚ฎ์•„์ง€๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋…๋ฆฝ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€ํ˜•์‹œ์ผœ๊ฐ€๋Š” ๋ฐฉ๋ฒ• (์ตœ์†Œ ํ•จ์ˆ˜ ๊ฐ’์„ ๊ฐ–๋„๋ก ํ•˜๋Š” ๋…๋ฆฝ ๋ณ€์ˆ˜ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋ชฉ์ )

 

 

 

 

 

 

์ฐธ๊ณ  https://angeloyeo.github.io/2020/08/16/gradient_descent.html

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=baek2sm&logNo=222010223220

+ Recent posts