optimizer, loss, metrics
Optimizer๋ ํ์ต ์งํ์ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ค์น๋ฅผ ์ด๋ ์ ๋๋ก ์ด๋ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. Loss Function์ ๊ธฐ๋ฐ์ผ๋ก ๋คํธ์ํฌ๊ฐ ์ด๋ป๊ฒ ์ ๋ฐ์ดํธ๋ ๊ฑด์ง ์ค์ ํ๊ณ , ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ํ ์ํจ๋ค. ์ตํฐ๋ง์ด์ ์๋ Adam, RMSprop, SGD ๋ฑ์ด ์๋ค.
Loss Function์ ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ๊ฐ์ ์ฐจ์ด๋ฅผ ํํํ ์์์ผ๋ก, ํ์ต์ ์ฌ์ฉ๋๋ ์ค์ฐจ๊ฐ์ธ ํผ๋๋ฐฑ ์ ํธ๋ฅผ ์ ์ํ๋ ํจ์์ด๋ฉฐ, ํ๋ จ์ ํ๋ ๋์์ ์ต์ํ๊ฐ ๋ ๊ฐ์ ๋ปํ๋ค. ์ฃผ์ด์ง ๋ฌธ์ ์ ๋ํ ์ฑ๊ณต์งํ๋ผ๊ณ ๋งํ๋ค. ๋ก์ค์๋ binary_crossentropy, categorical_crossentropy ๋ฑ์ด ์๋ค.
Metrics๋ ์ค์ ํ๋ฉด์์ ์ถ๋ ฅ๋๋ ๊ฐ์ ํํํ๋ ๊ฒ์ด๋ค.
์ตํฐ๋ง์ด์ ์ ์์คํจ์์ ๊ด๊ณ
์ ๊ฒฝ๋ง์ ํตํด ์์ธก๋ ๊ฐ๊ณผ ์ค์ ๋ ์ด๋ธ ๊ฐ์ ์ฐจ์ด๋ฅผ loss function์ ์ฌ์ฉํด์ loss๋ฅผ ๊ณ์ฐํ ์ ์์ผ๋ฉฐ, ๊ณ์ฐ๋ loss๋ฅผ ์ตํฐ๋ง์ด์ ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ค์น ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
Optimizer๋ ํ์ต ์งํ์ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ค์น๋ฅผ ์ด๋ ์ ๋๋ก ์ผ๋งํผ ์กฐ์ ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. Loss Function์ ๊ธฐ๋ฐ์ผ๋ก ๋คํธ์ํฌ๊ฐ ์ด๋ป๊ฒ ์ ๋ฐ์ดํธ๋ ๊ฑด์ง ์ค์ ํ๊ณ , ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ํ ์ํจ๋ค. ์ตํฐ๋ง์ด์ ์๋ Adam, RMSprop, SGD ๋ฑ์ด ์๋ค.
Loss Function์ ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ๊ฐ์ ์ฐจ์ด๋ฅผ ํํํ ์์์ผ๋ก, ํ์ต์ ์ฌ์ฉ๋๋ ์ค์ฐจ๊ฐ์ธ ํผ๋๋ฐฑ ์ ํธ๋ฅผ ์ ์ํ๋ ํจ์์ด๋ฉฐ, ํ๋ จ์ ํ๋ ๋์์ ์ต์ํ๊ฐ ๋ ๊ฐ์ ๋ปํ๋ค. ์ฃผ์ด์ง ๋ฌธ์ ์ ๋ํ ์ฑ๊ณต์งํ๋ผ๊ณ ๋งํ๋ค. ๋ก์ค์๋ binary_crossentropy, categorical_crossentropy ๋ฑ์ด ์๋ค.
์ค์ฐจ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ
์ค์ฐจ๋ฅผ ์ค์ด๋ ค๋ฉด ์ ๋ฌํ๋ ์ ํธ์ ์ธ๊ธฐ๋ฅผ ์กฐ์ ํด์ผํ๊ณ , ๊ทธ๋ฌ๋ ค๋จผ ๊ฐ ๋ ธ๋๋ฅผ ์๋ ๊ฐ์ค์น์ ๊ฐ์ ํ๋ํ๋ ๋ณ๊ฒฝํด์ผํ๋ค. ์ฆ, ๊ฐ์ค์น์ ๊ฐ์ ์์ ํ๋ ๊ฒ์ด๋ค. ๊ฒฝ์ฌ ํ๊ฐ๋ฒ๊ณผ ์ค์ฐจ ์ญ์ ํ๋ฒ์ด ์๋ค.
๊ฒฝ์ฌํ๊ฐ๋ฒ์ด๋ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ค์น์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๊ธฐ์ธ๊ธฐ๋ฅผ ๋ณด๊ณ ๊ธฐ์ธ๊ธฐ๊ฐ ์ค์ด๋๋ ์ชฝ์ผ๋ก ๊ฐ์ค์น ๊ฐ์ ์ด๋ํ๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ํต์ฌ์ ๋ฏธ๋ถ์ด๋ฉฐ, ๊ฐ์ค์น๋ฅผ ์ด๋ ์ ๋๋ก ์ด๋ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ์ตํฐ๋ง์ด์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ด๋ค.
์ค์ฐจ ์ญ์ ํ๋ฒ(Back Propagation)์ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ๊ฐ๋ ์ ์ฌ์ฉํด์ ์ฌ๋ฌ ๊ฐ์ค์น๋ฅผ ์ฐจ๋ก๋ก ๋ณ๊ฒฝํด ๋๊ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋ค์์๋ถํฐ ์์ผ๋ก ๊ฐ์ ์์ ํด ๋๊ฐ๋ ๊ฒ์ด๋ค. ์ฆ, ๋ง์ง๋ง๋ถํฐ ์ฒ์๊น์ง ๋๋์๊ฐ๋ฉด์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ด์ฉํด ๊ฐ๊ฐ์ ๊ฐ์ค์น์ ๊ฐ์ ์์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ค์ฐจ์ญ์ ํ๋ฒ _์ง์ญ ์ต์๊ฐ
์ ์ ํ step(ํ์ต๋ฅ )๊ฐ์ ๊ณจ๋ผ์ผ ํ๋ค. ์ด ๊ฐ์ด ๋๋ฌด ์์ผ๋ฉด ๊ณก์ ์ ๋ฐ๋ผ ๋ด๋ ค๊ฐ๋๋ฐ ๋ง์ ๋ฐ๋ณต์ด ํ์ํ๊ณ local minimum์ ๊ฐํ ์ ์๋ค. ๋ฐ๋๋ก step์ด ๋๋ฌด ํฌ๋ฉด ์์คํจ์ ๊ณก์ ์์ ์์ ํ ๋ค๋ฅธ ์์์ ์์น๋ก ์ด๋ํ ์ ์๋ค. ์ ์ ํ ํฌ๊ธฐ์ ๋ฏธ๋ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ข๋ค.
์ ๋ฐ์ดํธํ ๋ค์ ๊ฐ์ค์น๋ฅผ ๊ณ์ฐํ ๋, ํ์ฌ ๊ทธ๋๋์ธํธ ๊ฐ๋ง ๋ณด๋๊ฒ ์๋ ์ด์ ๊ฐ์ค์น๋ฅผ ์ฌ๋ฌ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ณ ๋ คํ๋ ์ตํฐ๋ง์ด์ ๊ฐ ์๋ค. ์ฌ๋ฌ ์ตํฐ๋ง์ด์ ๋ ๊ธฐ์ธ๊ธฐ๊ฐ ํฌ๋ฉด ๋ ๋ง์ด ์ด๋ํ๋ ๋ชจ๋ฉํ ๊ฐ๋ ์ด ์ค์ํ๊ณ , SGD์ ์๋ 2๊ฐ์ ๋ฌธ์ ์ ์ธ ์๋ ด ์๋์ ์ง์ญ ์ต์๊ฐ์ ํด๊ฒฐํ ์ ์๋ค.
k-fold cross validation (k-๊ฒน ๊ต์ฐจ๊ฒ์ฆ)
K-fold ๊ต์ฐจ ๊ฒ์ฆ ๋ฐฉ์์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ k๊ฐ์ fold๋ก ๋๋๊ณ , ๊ฐ ๋ฐ์ดํฐ๋ค์ ํ๋ จ์ฉ๋ฐ์ดํฐ์ ๊ฒ์ฆ์ฉ๋ฐ์ดํฐ๋ก ๋๋์ด์ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ผ๋ก, K๊ฐ์ ๋ชจ๋ธ์ ๊ฐ๊ฐ ๋ง๋ค์ด์ K-1๊ฐ์ ๋ถํ ๋ฐ์ดํฐ๋ก ํ๋ จํ๊ณ , ๋จ์ ๋ถํ ์์ ํ๊ฐ,๊ฒ์ฆํ์ฌ ๋ชจ๋ธ์ ํ๊ท ์ ๊ตฌํ๊ฑฐ๋ ์ต์ ์ ๋ชจ๋ธ์ ์ฐพ์ ์ ์๋ค.
๊ฐ์ค์น์ ํธํฅ
๊ฐ์ค์น๋ ์ ๊ฒฝ๋ง์์ ์ ํธ์ ์ธ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋๋ฐ ์ฌ์ฉํ๋ค. ์์ชฝ ๋ด๋ฐ์์ ์ ๋ฌ๋ ์ ํธ์ ๊ฐ์ ๊ฐ์ค์น ๊ฐ์ ๊ณฑํ๊ณ ํธํฅ์ ๋ํด์ ๋ค์์ผ๋ก ์ ๋ฌํ๋ค. ๊ฐ์ค์น๋ ๋๋ค์ผ๋ก ์๋ก ๋ค๋ฅธ ๊ฐ๋ค์ด ์ ์ฅ๋์ด ์๊ณ , ํธํฅ์ ๊ฐ ์ธต์ ํ๋์ ๊ฐ์ผ๋ก ์กด์ฌํจ. ํธํฅ์ ๊ฐ์ค์น๋ฅผ ๊ฑฐ์ณ ๋ณํ๋ ์ ํธ์ ์ธ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋์.
ํ์ฑํ ํจ์
ํ์ฑํ ํจ์๋ ํน์ ํ ์ ๊ธฐ์ ์ ํธ๊ฐ ์ด๋ค ๊ฐ ์ด์ ์ ๋ฌ๋๋ฉด ๋ค์ ๋ด๋ฐ์๊ฒ ์ ํธ๋ฅผ ๋ณด๋ด๊ณ , ์ดํ์ด๋ฉด ์ ๋ฌํ์ง ์๋ ์ ๊ฒฝ๋ง์ ์ญ์น ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์ ํธ๋ฅผ ์กฐ์ ํ๊ณ , ์ด๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด ํ์ฑํ ํจ์์ด๋ค. ์ฌ๋ฌ ๋ด๋ฐ์์ ๋ค์ด์จ ์ ํธ์ ์ธ๊ธฐ๋ฅผ ํน์ ํ ๊ฐ์ผ๋ก ์กฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ํ์ฑํ ํจ์์๋ ์๊ทธ๋ชจ์ด๋, ๋ ๋ฃจ ํจ์ ๋ฑ์ด ์๋ค.
์๊ทธ๋ชจ์ด๋ ํจ์, ๋ ๋ฃจ ํจ์, ์ํํธ๋งฅ์ค ํจ์
์๊ทธ๋ชจ์ด๋ ํจ์๋ ๋ก์ง์คํฑ ํจ์๋ฅผ ๋ณํํ ํจ์๋ก, ์ฒ์์ ์์ํ ์ฆ๊ฐํ๋ค๊ฐ ์ฆ๊ฐํ๋ ์์ด ๋ง์์ง๊ณ , ๊ทธ๋ฌ๋ค ๋ง์ง๋ง์๋ ์ฆ๊ฐํ๋ ์์ด ๋ค์ ์ค์ด๋๋ S์ ๋ชจ์๊ณผ ๋น์ทํ ๋ชจ์์ ํจ์์ด๋ค. ๋ณดํต ๋ก์ง์คํฑ ํ๊ท๋ถ์์ด๋ Binary classification์ ๋ง์ง๋ง ๋ ์ด์ด์ ํ ์ฑํํจ์๋ก ์ฌ์ฉ๋๋ค. ๋ด๋ฐ์์ ๋ค์ด์จ ์ ํธ ์ธ๊ธฐ๊ฐ 0๋ณด๋ค ํด์๋ก 1์ ๊ฐ๊น์ด ์ซ์๋ก ๋ฐ๊ฟ์ฃผ๊ณ 0๋ณด๋ค ์์์๋ก 0์ ๊ฐ๊น์ด ์ ํธ๋ก ๋ฐ๊พธ์ด์ค๋ค. ๋จ์ ์ผ๋ก๋ ์ถ๋ ฅ๊ฐ์ด 0์ ๊ฐ๊น์์ง๋ฉด ์ ๊ฒฝ๋ง์ด ์ ํ์ตํ์ง ๋ชปํ๊ณ , ์ ๋ ฅ๊ฐ์ด ์๋ฌด๋ฆฌ ์ปค๋ 1๋ณด๋ค ํฐ ์๋ก๋ ๋ด๋ณด๋ด์ง ์๋๋ค. ๋ฐ๋ผ์ ์ค๊ฐ ๋ ์ด์ด์ ๋ ๋ฃจํจ์๋ฅผ ๊ฐ์ด ์ฐ๋ฉด ํจ๊ณผ์ ์ด๋ค.
๋ ๋ฃจํจ์๋ ์ ๋ ฅ๊ฐ์ด 0๋ณด๋ค ์์ผ๋ฉด 0์ผ๋ก ์ถ๋ ฅํ๊ณ , 0์ด์์ด๋ฉด ์ ๋ ฅ๋ฐ๋ ๊ฐ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ ํจ์์ด๋ค.
์๊ทธ๋ชจ์ด๋ ํจ์๋ ์ญ์ ํ๊ฐ ์งํ๋ ์๋ก ์ค์ฐจ๊ฐ ๊ธ๊ฒฉํ ๊ฐ์ํจ์ผ๋ก, relu ํจ์๋ฅผ ์ฌ์ฉํ์ฌ
์๊ทธ๋ชจ์ด๋ ํ์ฑํํจ์๋ฅผ ์ฌ์ฉํด์ ์๊ฒผ๋ Gradient Descent Problem์ ํด๊ฒฐํ๋ค.
์ํํธ๋งฅ์ค ํจ์๋ ๋ถ๋ฅ๋ฅผ ํ๋ ์ ๊ฒฝ๋ง์ ๋ง์ง๋ง ๋ ์ด์ด์ธ ์ถ๋ ฅ์ธต์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ๊ทํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ ๋ชจ๋ ์ถ๋ ฅ์ธต์ ๊ฐ์ ๋ํ์ ๋ 1์ด ๋๋๋ก(one-hot-encoding) ๊ฐ์ ๋ฐ๊พธ์ด ์ค ์ ์๋ค. ํ๋์ ๋ ์ด๋ธ์ ํด๋นํ๋ ๊ฐ์ ํฌ๊ฒ์ฃผ๊ณ ๋๋จธ์ง ๋ ์ด๋ธ์ ์๊ฒ์ค์ผ๋ก์จ ์ ์ฒด์ ์ผ๋ก ์ค์ฐจ์ ๊ฐ์ด ์ค์ด๋๋ ํจ๊ณผ๋ ์๋ค. ์์คํจ์(loss function)์ธ Cross-entropy์ ์ฃผ๋ก ๊ฐ์ด ์ฌ์ฉํ๋ค.
์๊ทธ๋ชจ์ด๋ ํจ์ ์ฌ์ฉ ์ด์
๋น์ ํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ธต์ ๊น๊ฒ ๋ง๋๋ ์ฅ์ ์ ์ด๋ฆด ์ ์๋ค. ๋จ์ ์ ํํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฌด๋ฆฌ ๊น๊ฒ ์ธต์ ์์๋ ๋ง์ง๋ง์ ๋ณด๋ฉด ํ๋์ ์ ํ ํจ์๋ก ํํ์ด ๊ฐ๋ฅํด์ ์๋ฏธ๊ฐ ์์ด์ง๋ค. ์๊ทธ๋ชจ์ด๋๋ฅผ ์ฐ๋ฉด ๋น์ ํ ํจ์์ด๋ฉด์ ๋ถ๋ฆฌ๋ ๋ถ๋ถ์ด ์์ด์ ์ธต์ ์๋ ์ฅ์ ์ ์ด๋ฆด ์ ์๊ณ , ๋ฏธ๋ถํ๊ธฐ ์ฌ์์ง๋ฉฐ, 0~1์ฌ์ด์ ๊ฐ์ผ๋ก ์ ๊ทํ๋๊ธฐ์ ์ฌ์ฉ๋๋ค.
์ ๊ฒฝ๋ง์์ ์ค๋ฒํผํ ์ ์ค์ด๋ ๋ฐฉ๋ฒ
1.ํ๋ จ ๋ฐ์ดํฐ(training data)๋ฅผ ๋ ๋๋ฆฐ๋ค.
2.๋ชจ๋ธ์ ๋ณต์ก๋๋ฅผ ์ค์ธ๋ค.
3.๊ฐ์ค์น ๊ท์ ๋ฅผ ์ ์ฉํ๋ค. ๋ณต์กํ ๋ชจ๋ธ์ ๊ฐ๋จํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ด ๊ฐ์ค์น ๊ท์ ์ด๋ค.
L1์ ๊ฐ์ค์น๋ค์ ์ ๋๊ฐ ํฉ๊ณ๋ฅผ ๋น์ฉ ํจ์์ ์ถ๊ฐํ๋ ๊ฒ์ด๊ณ , L2๋ ๊ฐ์ค์น๋ค์ ์ ๊ณฑํฉ์ ๋น์ฉ ํจ์์ ์ถ๊ฐํ๋ ๊ฒ์ด๋ค. L1์ ํน์ ๊ฐ์ค์น๋ฅผ 0์ผ๋ก ๋ฐ๊ฟ์ ์์ด์ sparseํ ํํ๊ฐ ๋ ์ ์๊ณ , L2๋ ๊ท ์ผํ ๊ฐ๋ค์ด ๋ถ๊ท ์ผํ ๊ฐ๋ค๋ณด๋ค ๊ฐ์ค์น ์์ ์ ๋ ์๊ฒ์ค์ผ๋ก์จ, ํน์ ๊ฐ์ด ํฐ๊ฒ ์์ผ๋ฉด ์๋ฅผ์ ์๋ ํจ๊ณผ๊ฐ ์๋ค. ๋ณดํต L2์ ๊ฒฐ๊ณผ๊ฐ ๋ ์๋์ค๊ณ ์ข๋ค.
4.๋๋กญ์์์ ์ถ๊ฐํ๋ค. ํ์ต๊ณผ์ ์์ ์ ๊ฒฝ๋ง์ ์ผ๋ถ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋น์จ์ 0.5๋ก ํ๋ค๋ฉด ํ์ต ๊ณผ์ ๋ง๋ค ๋๋ค์ผ๋ก 50%์ ๋ด๋ฐ์ ์ฌ์ฉํ์ง ์๋ ๋ค๋ ๋ป์ด๋ค. ์ ๊ฒฝ๋ง์ด ํน์ ๋ด๋ฐ์ ๋๋ฌด ์์กดํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ , ์๋ก ๋ค๋ฅธ ์ ๊ฒฝ๋ง๋ค์ ์์๋ธํ์ฌ ์ฌ์ฉํ๋ ํจ๊ณผ๋ฅผ ๋ธ๋ค.
Classification(๋ถ๋ฅ)๊ณผ regression(ํ๊ท) ๋ฌธ์
Classification์ ๋ฐ์ดํฐ๊ฐ ์ด๋ ํด๋์ค์ ์ํ๋์ง ๋ถ๋ฅํ๋ ๊ฒ์ผ๋ก, ๋ฏธ๋ฆฌ ์ ์๋๊ฑฐ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ํด๋์ค๋ ์ด๋ธ ์ค์ ํ๋๋ฅผ ์์ธกํ๋ ๊ฒ์ด๋ค.
Regression์ ๊ฐ๋ณ์ ์ธ ๋ ์ด๋ธ์ด ์๋ ์ฐ์์ ์ธ ๊ฐ์ ์์ธกํ๋ ๊ฒ์ผ๋ก, ์๊ณ์ด ๊ฐ์ ์ฐ์์ฑ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ์ด๋ค.
Classification ๋ฌธ์ ๋ ๋ณดํต ์ถ๋ ฅ์ธต์ softmaxํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ค์ ํ๋ฅ ์ด ๋์ ๊ฐ์ ์ ํํ๊ฑฐ๋, one-hot-encoding์ผ๋ก ๋ฐ์ดํฐ์ ๋ ์ด๋ธ์ ๋ถ๋ฅํ๊ธฐ ์ฝ๊ฒ ๋ฐ๊พธ๋ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๊ณ , loss function์ cross entropy๋ฅผ ์ฌ์ฉํ๋ค.
์ง์์ด๋ํ๊ท
์ต๊ทผ ๊ฐ์๋ ๋์ ๊ฐ์ค์น๋ฅผ ์ฃผ๊ณ , ์ด์ ๊ฐ์๋ ๋ฎ์ ๊ฐ์ค์น๋ฅผ ์ฃผ๊ณ ํ๊ท ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ํ์ฌ ์ต๊ทผ ๊ฐ์ ๋์ฑ ์ค์์ ํ๋ ๊ฒ์ด๋ค. ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋๋ฝ๊ฒ ๋ง๋๋ ๊ธฐ๋ฒ ์ค ํ๋๋ก, ์ด์ ์ ๊ณ์ฐ๋ ์ด๋ ํ๊ท ์ factor์ ๊ณฑํ๊ณ ํ์ฌ ํฌ์ธํธ์ (1 – factor)์ ๊ณฑํด ํฉ์ฐํ๋ ๊ฒ์ด๋ค.
def smooth_curve(points, factor=0.9):
smoothed_points = []
for point in points:
if smoothed_points:
previous = smoothed_points[-1]
smoothed_points.append(previous * factor + point * (1 - factor))
else:
smoothed_points.append(point)
return smoothed_points
์ํซ์ธ์ฝ๋ฉ
ํ๋์ ๊ฐ๋ง 1๋ก ๋ํ๋ด๊ณ ๋๋จธ์ง ๊ฐ๋ค์ ์ ๋ถ 0์ผ๋ก ํ์ํ๋ ์์ฐ์ด ์ฒ๋ฆฌ์ด๋ฉฐ, ๋ฐฑํฐ๊ฐ์ผ๋ก ํํ์ ํ๋ค.
๋ถ๋ฅ ๋ฌธ์ ์์ ์ผ๋ผ์ค ์ ํธ๋๊ตฌ์ to_categorical ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์นํ ๋ฐ์ดํฐ๋ฅผ ๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ก ๋ง๋ค์ด์ฃผ๋ ์ํซ์ธ์ฝ๋ฉ์ ํ ์ ์๋ค.
๋ฒ์ฃผํ ๋ฐ์ดํฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ผ ๋ฒ์ฃผํ ์ธ์ฝ๋ฉ์ด๋ผ ๋ถ๋ฆฌ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ฒกํฐ๋ก ๋ณํํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
์ ๊ทํ
์ ๊ทํ๋ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ 0์ผ๋ก, ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ๋ 1๋ก ๋ฐ๊พธ๊ณ , ๊ทธ ์ฌ์ด์ ๋ฐ์ดํฐ ๊ฐ๋ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ 0๊ณผ 1์ฌ์ด์ ๊ฐ์ผ๋ก ๋ณํํด์ฃผ๋ ๊ฒ.
์์คํจ์ ์ข ๋ฅ
๋ฐ์ด๋๋ฆฌํฌ๋ก์ค์ํธ๋กํผ(binary_crossentropy)๋ ์ ๊ฒฝ๋ง์ด ์ ์์ธก์ ํ๋ฉด ์ค์ฐจ๊ฐ์ 0์์ฃผ๊ณ , ์์ธกํ์ง ๋ชปํ๋ค๋ฉด ์ค์ฐจ๊ฐ์ ์๋นํ ํฌ๊ฒ ์ฃผ๋ ์๋ฆฌ์ด๋ค. ์ด์ง ๋ถ๋ฅํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ฉฐ ๋ณดํต ์๊ทธ๋ชจ์ด๋ ํ์ฑํํจ์๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
์นดํ ๊ณ ๋ฆฌ์ปฌํฌ๋ก์ค์ํธ๋กํผ(categorical_crossentropy)๋ ์ฌ๋ฌ ๊ฐ ์ค ํ๋๋ฅผ ์์ธกํ๋ ๋ชจ๋ธ์์ ์ ๋ต์ ์์ธกํ๋ฉด ์ค์ฐจ๊ฐ์ 0์ผ๋ก, ์ ๋ต์ ๊ฐ๊น๊ฒ ์์ธกํ๋ฉด ์ค์ฐจ๊ฐ์ ์กฐ๊ธ ์ฃผ๊ณ , ์ ๋ต๊ณผ ๋ฉ๊ฒ ์์ธกํ๋ฉด ์ค์ฐจ๊ฐ์ ๋ง์ด์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ ์ด๋ธ ํด๋์ค๊ฐ 2๊ฐ ์ด์์ธ ๋ฉํฐํด๋์ค ๋ถ๋ฅ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ์ํซ์ธ์ฝ๋ฉ์ด ๋ ์ํ์ผ ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
sparse_categorical_crossentropy๋ ๋ฒ์ฃผํ ๊ต์ฐจ ์ํธ๋กํผ์ ๋์ผํ๊ฒ ๋ฉํฐ ํด๋์ค ๋ถ๋ฅ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. Categorical_crossentropy์ ๋ค๋ฅด๊ฒ ์ํซ์ธ์ฝ๋ฉ์ด ์๋์๋ ์ ์ ์ธ์ฝ๋ฉ์ธ ์ํ์์ ์ํ ๊ฐ๋ฅํ๋ค.
MSE(ํ๊ท ์ ๊ณฑ์ค์ฐจ)๋ ์์ธก๊ฐ์ด ์ค์ ๊ฐ์์ ์ผ๋ง๋ ๋จ์ด์ ธ์๋์ง ์์๋ณด๋ ๋ฐฉ๋ฒ์ผ๋ก, ์ค์ ๊ฐ๊ณผ ์์ธก๊ฐ์ ์ค์ฐจ๋ฅผ ์ ๊ณฑํ์ฌ ๋ถํธ๋ฅผ ์์ ๊ณ ์ผ๋ง๋ ๋จ์ด์ ธ ์๋์ง ๋ช ํํ๊ฒ ๋ํ๋ด๋ ๊ฒ์ด๋ค. ๋ณดํต ํ๊ท๋ฌธ์ ์์ ์ฌ์ฉ๋๋ค.
MAE(ํ๊ท ์ ๋์ค์ฐจ)๋ ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ ์ฌ์ด ๊ฑฐ๋ฆฌ์ ์ ๋๊ฐ์ด๋ค.
์ ๊ฒฝ๋ง ์ข ๋ฅ
์ผ๋ฐ์ ์ธ ์ธ๊ณต์ ๊ฒฝ๋ง(ANN)
ํฉ์ฑ๊ณฑ์ ๊ฒฝ๋ง(CNN) Convolutional Neural Network : ์๊ฐ ์ธํฌ์ ์๋ ์๋ฆฌ๋ฅผ ๋ณธ๋.
์ํ์ ๊ฒฝ๋ง(RNN) Recursive Neural Network : ์ฌ๊ท์ ๊ฒฝ๋ง. ๊ฐ์ค์น์ ๋ณํ๊ฐ ํ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ๊ฒ์ด ์๋ ๋ค์ ์๊ธฐ ์์ ์๊ฒ ๋์์ค๋ ๋ฐ๋ณต์ ์ผ๋ก ๊ฐ์ค์น๊ฐ ์์ ๋๋ ๋ชจ์ต์ด๋ค. ๋ณดํต ์ฐ์ ๋ฐ์ดํฐ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ๊ฑฐ๋ ๋ถ๋ฅํ ๋ ์ฌ์ฉ๋๋ค. ์ธ๊ณต์ ๊ฒฝ๋ง๋ณด๋ค ๋ฐ์ด๋ ์ ์ ์ ํ ๊ด๊ณ์ ๋ํ ํจํด์ ํ์ตํ ๋ค๋ ๊ฒ์ด๋ค. ์๊ฐ์ ํ๋ฆ, ์ฐ์๋ ๊ด๊ณ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๊ณต์ง๋ฅ์ ๋ง๋ค ๋ ์ฌ์ฉ๋๋ ์ ๊ฒฝ๋ง์ด๋ค.
fit ๋ฉ์๋
epochs : ํ๋ จ์ ์ํฌํฌ(epoch)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ํ ์ํฌํฌ๋ ์ ์ฒด ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ ์ํํ๋ ๊ฒ์ ๋๋ค(์์ ๋ฐฐ์น๋ก ๋๋์ด ์ํ๋ฉ๋๋ค).
batch_size : numpy ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ฉด ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ฐฐ์น๋ก ๋๋๊ณ ํ๋ จ ๊ณผ์ ์์ ์ด ๋ฐฐ์น๋ฅผ ์ํํฉ๋๋ค. ์ด ์ ์ ๊ฐ์ ๋ฐฐ์น์ ํฌ๊ธฐ๋ฅผ ์ง์ ํฉ๋๋ค. ์ ์ฒด ์ํ ๊ฐ์๊ฐ ๋ฐฐ์น ํฌ๊ธฐ๋ก ๋๋์ด ๋จ์ด์ง์ง ์์ผ๋ฉด ๋ง์ง๋ง ๋ฐฐ์น์ ํฌ๊ธฐ๋ ๋ ์์ ์ ์์ต๋๋ค.
validation_data(x_val, y_val) = ๊ฒ์ฆ ๋ฐ์ดํฐ(validation data)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ ์ํฌํฌ๋ง๋ค ๊ฒ์ฆ ๋ฐ์ดํฐ์ ์ ํ๋๋ ํจ๊ป ์ถ๋ ฅ๋๋๋ฐ, ์ด ์ ํ๋๋ ํ๋ จ์ด ์ ๋๊ณ ์๋์ง๋ฅผ ๋ณด์ฌ์ค ๋ฟ์ด๋ฉฐ ์ค์ ๋ก ๋ชจ๋ธ์ด ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ์ง๋ ์์ต๋๋ค. ๊ฒ์ฆ ๋ฐ์ดํฐ์ loss๊ฐ ๋ฎ์์ง๋ค๊ฐ ๋์์ง๊ธฐ ์์ํ๋ฉด ์ด๋ ๊ณผ์ ํฉ(overfitting)์ ์ ํธ์ ๋๋ค.
validation_split : validation_data ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋์ผํ์ง๋ง, ๋ณ๋๋ก ์กด์ฌํ๋ ๊ฒ์ฆ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ๊ฒ์ด ์๋๋ผ X_train๊ณผ y_train์์ ์ผ์ ๋น์จ์ ๋ถ๋ฆฌํ์ฌ ์ด๋ฅผ ๊ฒ์ฆ ๋ฐ์ดํฐ๋ก ์ฌ์ฉํฉ๋๋ค. ์ญ์๋ ํ๋ จ ์์ฒด์๋ ๋ฐ์๋์ง ์๊ณ ํ๋ จ ๊ณผ์ ์ ์ง์ผ๋ณด๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ ์์ : validation_split=0.2
verbose : ํ๋ จ์ ์งํ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค. 0์ผ ๊ฒฝ์ฐ ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์๊ณ , 1์ผ ๊ฒฝ์ฐ ํ๋ จ์ ์งํ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ์งํ ๋ง๋๋ฅผ ๋ณด์ฌ์ค๋๋ค. 2์ผ ๊ฒฝ์ฐ ๋ฏธ๋ ๋ฐฐ์น๋ง๋ค ์์ค ์ ๋ณด๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
Z-Distribution ์ ๊ท๋ถํฌ
ํ๊ท ์ด 0์ด๊ณ , ํ์คํธ์ฐจ๊ฐ 1์ธ ๋ถํฌ๋ฅผ Z-Distribution๋ผ๊ณ ํ๋ค. ์ฌ๋ฌ ํน์ฑ๋ค์ด ์์ ๋ ์๋ก ๊ฐ๊ด์ ์ผ๋ก ๋น๊ตํ๊ธฐ์ํด ํ์คํ๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค.
์ ์ธ๊ณต์ง๋ฅ์ด ๋จ๋ ๊ฒ์ธ๊ฐ?
๋น ๋ฐ์ดํฐ. ‘์ฝ๋งค์ฌ์์ง ์๊ณ ๊ตฌ์กฐํ๋์ด ์์ง ์์ผ๋ฉฐ(๋น์ ํ), (๊ธฐ๊ฐ · ํ ๋ผ · ํํ · ์์ฌ · ์ ํ · ์ํ) ์ ํํ์ง๋ ์์ง๋ง ์์ธกํ ์ ์์ผ๋ฉฐ, ์ธ๊ณผ๊ด๊ณ๋ฅผ ์ค๋ช ํ ์๋ ์์ง๋ง ์๊ด๊ด๊ณ๋ ๋ณด์ฌ์ค ์ ์๋ค’ ๋น ๋ฐ์ดํฐ๋ฅผ ํตํด ํต์ฐฐ๋ ฅ์ ์ป๊ธฐ ์ํ ๋ถ์ ๋๊ตฌ๊ฐ ์๊ตฌ๋จ
์ ๊ฒฝ๋ง์ ํน์ง
1. ํจํด์ธ์์ ํ์ํ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ์ฒ๋ฆฌ
2. ํจํด์ธ์๊ณผ ๊ฐ์ ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ์ด ๊ณค๋ํ ๋ฌธ์ ๋ฅผ ํ์ต ๋ฐฉ๋ฒ์ ์ํ์ฌ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐ
3. ํจํด์ธ์์ ์์ฃผ ๋ฐ์ํ๋ ์ก์์ด๋ ์ ๋งคํ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌ
4. ํ์ต๊ณผ ๊ธฐ์ต์ ํตํ์ฌ ํจํด์ ์ธ์ํ๋ ๋์ ์ธ ์์คํ
5. ๊ฐ๋จํ ํ์ต์ ์ํด ๊ฐ๋ฐ์ด ๊ฐ๋ฅํด์ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ๋จ์ถ
6. ํ์ต์ํค๋๋ฐ ๋ง์ ์๊ฐ์ด ํ์ํ์ง๋ง ์คํ ์์๋ ๋น ๋ฅธ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค
Backpropagation(BP) ์ ๊ฒฝ๋ง
์ง๋ํ์ต(supervised learning) ํจํด์ ๋ํ์ ์ธ ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ผ๋ก, ์ค์ฐจ ์ญ์ ํ(error back propagation)๊ธฐ๋ฒ์ processing unit์ ์ ์ฉํ ๊ฒ์ด๋ค. ๊ฐ processing unit ๊ฐ์ ๊ฐ์ค์น๋ฅผ ์์ ํจ์ผ๋ก์จ ๋ค์ ํ์ต ์ ๋ชฉํ ๊ฐ์ ๋์ฑ ์ ๊ทผ๋ ์ถ๋ ฅ ๊ฐ์๊ฐ๊ฒ ํ๋ค. ์์ธก๊ฐ์ด ๋ชฉํ๊ฐ๊ณผ ์ ์ฌํ๊ฒ ๋ ๋๊น์ง ํ์ต์ ๋ฐ๋ณตํ๋ค.
1๋จ๊ณ : ์ ๋ฐฉํฅ ๋จ๊ณ๋ก, ์ ๋ ฅ์ธต์์ ์ ๋ ฅ์๋ฐ์ ์ถ๋ ฅ์ธต์ผ๋ก ์ถ๋ ฅํ๋ ๊ณผ์ ์ด๋ฉฐ ์์ธก๊ฐ์ด ์ถ๋ ฅ๋๋ค.
2๋จ๊ณ : ์ค์ฐจ๋ฅผ ๊ตฌํ๋ ๋จ๊ณ๋ก, ์์ธก๊ฐ๊ณผ ๋ชฉํ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ๋ค.
3๋จ๊ณ : ์ค์ฐจ๋ฅผ ์ด์ฉํ์ฌ ์ค์ฐจ์ ํธ๋ฅผ ๊ณ์ฐํ๊ณ , ์๋์ธต๊ณผ ์ ๋ ฅ์ธต์ ์ญ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ฉด์ ๋ด๋ฐ ๊ฐ์ ๊ฐ์ค์น๋ฅผ ์กฐ์จํ๋ค.
ํ ์
ํ ์(tensor)๋ 0~ n ์ฐจ์(์ถ, axis)๊น์ง์ ๋ฐ์ดํฐ ํด๋์ค์ด๋ค.
0์ฐจ ํ ์ : ์ค์นผ๋ผ(0์ฐจ์)
1์ฐจ ํ ์: ๋ฒกํฐ(1์ฐจ์)
2์ฐจ ํ ์: ํ๋ ฌ(2์ฐจ์)
3์ฐจ์ ์ด์: n์ฐจ ํ ์
bottleneck
๋ณ๋ชฉํ์์ผ๋ก, ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์๋๊ฐ์ ๋ํ ๋ฌธ์ ๋ก, ํ๋ฒ์ ์ฒ๋ฆฌํด์ผํ๋ ๋ฐ์ดํฐ์ ์๋ณด๋ค ์์ข์ ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์์ ๋ ์ผ์ด๋๋ ๋ฌธ์ ์ด๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฌ๋งํ๋ฉด ์๋์ธต์ ๋ ธ๋ ์๋ฅผ ๋ค์ ๋ ์ด์ด์ ๋ ธ๋ ์๋ณด๋ค ํฌ๊ฒ ์ฃผ๋๊ฒ ์ข๋ค.