Machine Learning Workflow
์์ ๊ธ์์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ํ์ตํ๋ ๊ณผ์ ์ ๋ํด ์ ์ด๋จ๋๋ฐ, ์ด ์ธ๊ณต์ ๊ฒฝ๋ง์ ํ์ตํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์.
๋ฏธ๋ฆฌ ์ ํด์ง, ๋ต์ด ์๋ ํธ๋ ์ด๋ ๋ฐ์ดํฐ๋ก ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํด ๋ชจ๋ธ์ ์ป๋ training(ํ์ต)๊ณผ์ ์ ๊ฑฐ์ณ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ต์ด ๋๋์ง ์์์ ์ ๋ ฅ๋ฐ์ดํฐ๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ test ๊ณผ์ ์ ๊ฑฐ์น๋ค.
Data Split
์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๊ฐ ์ข์์ง ๋์์ง ํ๋จ ํ ๋ค์ ํ์ตํ ์ง ๊ฒฐ์ ํ๋๋ฐ, ์ด ๊ณผ์ ์ ์ํด ๋ฐ์ดํฐ๋ ์ธ ๊ฐ์ง๋ก ๋ถ๋ฅ๋๋ค.
1. Train data: ๋งค๊ฐ๋ณ์(weight, bias)ํ์ต์ ์ฌ์ฉ๋๋ data
2. Test data: ๋ชจ๋ธ ์ฑ๋ฅ์ ์ธก์ ํ๊ธฐ ์ํ data
3. Validation data: ๊ฒ์ฆ์ฉ data, training error์ validation error๋ฅผ ์ด์ฉํด ์ด๋ ์์ ์ ํ์ต์ ๋ฉ์ถ์ง ๊ฒฐ์ ํ๋ค.
Loss funtion
Training (๋งค๊ฐ๋ณ์ ํ์ต ๊ณผ์ )์๋ loss function์ ์ด์ฉํ๋ค.
Loss function(= cost function)
์์ ์์์์ w: weight, x: input, b: bias, y: ์ค์ ์ ๋ต๊ฐ ์ด๋ค.
์ด loss๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฐ์ค์น์ ๋ํ loss์ ๊ธฐ์ธ๊ธฐ์ธ Gradient๋ฅผ ์ฌ์ฉํ๋ค. ์ฌ๊ธฐ์ gradient๋ loss์ ๊ธฐ์ธ๊ธฐ์ด๋ฏ๋ก ๋ฏธ๋ถ๊ฐ๊ณผ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
(((์ด ๋ loss function์ ๊ฐ์ ๊ฐ๋ฅํ ํ ๋ฎ์ถ๋ ๋งค๊ฐ๋ณ์ weight, bias๋ฅผ ์ฐพ๋ ๊ฒ์ด training์ ๋ชฉ์ ์ด๋ค.)))
Gradient Descent
Loss์ ๋ฏธ๋ถ๊ฐ์ธ Gradient๋ฅผ ์ ์ด์ฉํด ์ค์ฐจ ํจ์์ ์ต์๊ฐ์ ์ฐพ๋ ๊ฒ์ด gradient descent, ๊ฒฝ์ฌํ๊ฐ๋ฒ์ด๋ค.
์ด๋ ๊ฒ ํจ์์ ๊ฐ์ ์ ์ ์ค์ฌ์ ์ต์ ์ ๋งค๊ฐ๋ณ์ ์ฐพ๋ ๊ฒ์ด ํ์ต์ ๋ชฉํ์ธ๋ฐ, ์ด๋ป๊ฒ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ป๋๋?
๋ฐ๋ก ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ(Backpropagation)์ด๋ค.
์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฐ๊ณผ๊ฐ์ ์ค์ฐจ๋ฅผ ์ญ์ผ๋ก input์ ๋ณด๋ด๋ฉฐ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ๊ณผ์ ์ผ๋ก, ๊ฐ์ค์น๊ฐ ์ ๋ฐ์ดํธ ๋๋ฉด์ ์ค์ฐจ๊ฐ ์ค์ด๋ ๋ค. ์ด ๋ ์ ์ฐจ์ ์ผ๋ก ์ค์ฐจ๋ฅผ ์ค์ด๋ ๊ณผ์ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ(gradient descent)๊ฐ ์ฌ์ฉ๋๋ค.
๊ฐ์ค์น ์ ๋ฐ์ดํธ ์์ ์์ ๊ฐ์๋ฐ, ์ค์ฐจ๋ฅผ ๊ฐ์ค์น๋ก ๋ฏธ๋ถํ ๊ฐ์ ๋นผ์ค๋ค. ์ฌ๊ธฐ์ ํ์ต๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ ์ ์ผ๋งํผ์ ๋ณดํญ์ผ๋ก ๋ด๋ ค๊ฐ๋์ง๋ฅผ ๊ฒฐ์ ํ๋ค. ๊ฐ์ค์น์ ๋ํ ์ค์ฐจ๋ฅผ ํธ๋ฏธ๋ถํ ๊ฐ์ ๊ฐ์ค์น์์ ๋นผ์ ์ ๋ฐ์ดํธ๋ฅผ ์งํํ๋ค.
์ถํ ํ์ต์์ ์ด๊ธฐ ๊ฐ์ค์น์ ํธํฅ, ํ์ต๋ฅ ์ ์ ํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๊ณ , ์ด ๊ฐ๋ค์ ๋ณํ์ํค๋ฉฐ ๋ชจ๋ธ ํ๋์ ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค.