Path: blob/master/site/ko/tutorials/customization/custom_training_walkthrough.ipynb
25118 views
Copyright 2018 The TensorFlow Authors.
์ฌ์ฉ์ ์ ์ ํ์ต: ์์ธํ ๋๋ฌ๋ณด๊ธฐ
์ด ํํ ๋ฆฌ์ผ์ ํญ๊ท์ ์ข ๋ณ๋ก ๋ถ๋ฅํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ ์ ํ๋ จ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด ๋ ธํธ๋ถ์์๋ TensorFlow๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ์ํํฉ๋๋ค.
๋ฐ์ดํฐ์ธํธ ๊ฐ์ ธ์ค๊ธฐ
๊ฐ๋จํ ์ ํ ๋ชจ๋ธ ๊ตฌ์ถํ๊ธฐ
๋ชจ๋ธ ํ๋ จํ๊ธฐ
๋ชจ๋ธ์ ํจ๊ณผ ํ๊ฐํ๊ธฐ
ํ๋ จ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์์ธกํ๊ธฐ
TensorFlow ํ๋ก๊ทธ๋๋ฐ
์ด ํํ ๋ฆฌ์ผ์ ๋ค์ TensorFlow ํ๋ก๊ทธ๋๋ฐ ์์ ์ ๋ณด์ฌ ์ค๋๋ค.
TensorFlow ๋ฐ์ดํฐ์ธํธ API๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
Keras API๋ก ๋ชจ๋ธ ๋ฐ ๋ ์ด์ด ๊ตฌ์ถํ๊ธฐ
ํญ๊ท ๋ถ๋ฅ ๋ฌธ์
์กฐ๋ฅํ์๊ฐ ํญ๊ท์ ์๋์ผ๋ก ๋ถ๋ฅํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ๋จธ์ ๋ฌ๋์ ํต๊ณ์ ์ผ๋ก ํญ๊ท์ ๋ถ๋ฅํ ์ ์๋ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๊ตํ ๋จธ์ ๋ฌ๋ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด ์ฌ์ง์ ํตํด ํญ๊ท์ ๋ถ๋ฅํ ์ ์์ ๊ฒ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์ ๋น๋ํ๋ ๋ชจ๋ธ์ ์กฐ๊ธ ๋ ๊ฐ๋จํฉ๋๋ค. ํํ ๋ฆฌ์ผ์์๋ ์ฒด์ค, ํญ๊ท๋ ๊ฐ ๊ธธ์ด, ๋ถ๋ฆฌ, ํนํ ํญ๊ท ๋ถ๋ฆฌ์ ๊ธธ์ด์ ๋๋น ์ธก์ ์ ๊ธฐ์ค์ผ๋ก ํญ๊ท์ ๋ถ๋ฅํฉ๋๋ค.
18์ข ์ ํญ๊ท์ด ์์ง๋ง ์ด ํํ ๋ฆฌ์ผ์์๋ ๋ค์ ์ธ ์ข ์ ํญ๊ท๋ง ๋ถ๋ฅํ๋ ค๊ณ ํฉ๋๋ค.
ํฑ๋ ํญ๊ท
์ ํฌ ํญ๊ท
์๋ธ๋ฆฌ ํญ๊ท
![]() |
๊ทธ๋ฆผ 1. ํฑ๋ ํญ๊ท, ์ ํฌ ํญ๊ท, ์๋ธ๋ฆฌ ํญ๊ท(@allison_horst ์ ์ํ, CC BY-SA 2.0). |
๋คํํ ์ฐ๊ตฌํ์์ ์ด๋ฏธ ์ฒด์ค, ์ค๋ฆฌ๋ฐ ๊ธธ์ด, ๋ถ๋ฆฌ ์น์ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ 334๋ง๋ฆฌ์ ํญ๊ท ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ง๋ค๊ณ ๊ณต์ ํ์ต๋๋ค. ์ด ๋ฐ์ดํฐ์ธํธ๋ ํญ๊ท TensorFlow ๋ฐ์ดํฐ์ธํธ๋ก๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์ ํ๊ธฐ
ํญ๊ท ๋ฐ์ดํฐ์ธํธ์ฉ tfds-nightly
ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. tfds-nightly
ํจํค์ง๋ TFDS(TensorFlow ๋ฐ์ดํฐ์ธํธ)์ Nightly ์ถ์ ๋ฒ์ ์
๋๋ค. TFDS์ ๋ํ ์์ธํ ๋ด์ฉ์ TensorFlow ๋ฐ์ดํฐ์ธํธ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ทธ๋ฐ ๋ค์ Colab ๋ฉ๋ด์์ ๋ฐํ์ > ๋ฐํ์ ๋ค์ ์์์ ์ ํํ์ฌ Colab ๋ฐํ์์ ๋ค์ ์์ํฉ๋๋ค.
๋ฐํ์์ ์ฐ์ ์ ์ผ๋ก ๋ค์ ์์ํ์ง ์์ ๊ฒฝ์ฐ ์ด ํํ ๋ฆฌ์ผ์ ๋๋จธ์ง ๋ถ๋ถ์ ์งํํ์ง ๋ง์ธ์.
TensorFlow ๋ฐ ๊ธฐํ ํ์ Python ๋ชจ๋์ ๊ฐ์ ธ์ต๋๋ค.
๋ฐ์ดํฐ์ธํธ ๊ฐ์ ธ์ค๊ธฐ
๊ธฐ๋ณธ ํญ๊ท/์ฒ๋ฆฌ๋จ TensorFlow ๋ฐ์ดํฐ์ธํธ๋ ์ด๋ฏธ ์ ๋ฆฌ๋๊ณ ์ ๊ทํ๋์์ผ๋ฉฐ ๋ชจ๋ธ์ ๋น๋ํ ์ค๋น๊ฐ ์๋ฃ๋์์ต๋๋ค. ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ํ๊ธฐ ์ ์ ๋จ์ํ๋ ๋ฒ์ ์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐํ์ฌ ์๋์ ํญ๊ท ์กฐ์ฌ ๋ฐ์ดํฐ์ ์ต์ํด์ง์ธ์.
๋ฐ์ดํฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ
TensorFlow ๋ฐ์ดํฐ์ธํธ tdfs.load
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํญ๊ท ๋ฐ์ดํฐ์ธํธ์ ๊ฐ์ํ๋ ๋ฒ์ (penguins/simple
)์ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ด ๋ฐ์ดํฐ์ธํธ์๋ 344๊ฐ์ ๋ฐ์ดํฐ ๋ ์ฝ๋๊ฐ ์์ต๋๋ค. ์ฒ์ 5๊ฐ์ ๋ ์ฝ๋๋ฅผ DataFrame
๊ฐ์ฒด๋ก ์ถ์ถํ์ฌ ์ด ๋ฐ์ดํฐ์ธํธ์ ์๋ ๊ฐ์ ์ํ์ ๊ฒ์ฌํฉ๋๋ค.
๋ฒํธ๊ฐ ๋งค๊ฒจ์ง ์ค์ ๋ฐ์ดํฐ ๋ ์ฝ๋๋ก, ํ ์ค๋น ํ ๊ฐ์ *์*๊ฐ ์์ต๋๋ค.
์ฒ์ ์ฌ์ฏ ๊ฐ์ ํ๋๋ ์์ ์ *ํน์ฑ*์ ํ์ํ๋ ํน์ฑ์ ๋๋ค. ์ฌ๊ธฐ์๋ ํญ๊ท ์ธก์ ์น๋ฅผ ๋ํ๋ด๋ ์ซ์๊ฐ ํ์๋ฉ๋๋ค.
๋ง์ง๋ง ์ด์ *๋ ์ด๋ธ*์ด๋ฉฐ ์ด๋ ์์ธกํ๋ ค๋ ๊ฐ์ ๋ํ๋ ๋๋ค. ์ด ๋ฐ์ดํฐ์ธํธ์์ ์ ์๊ฐ 0, 1, 2๋ ํญ๊ท ์ข ์ด๋ฆ์ ์์ํฉ๋๋ค.
๋ฐ์ดํฐ์ธํธ์์ ํญ๊ท ์ข ์ ๋ ์ด๋ธ์ ๊ตฌ์ถ ์ค์ธ ๋ชจ๋ธ์์ ๋ ์ฝ๊ฒ ์์ ํ ์ ์๋๋ก ์ซ์๋ก ํ์๋ฉ๋๋ค. ์ด ์ซ์๋ ๋ค์ ํญ๊ท ์ข ์ ์์ํฉ๋๋ค.
0
: ์๋ธ๋ฆฌ ํญ๊ท1
: ํฑ๋ ํญ๊ท2
: ์ ํฌ ํญ๊ท
ํญ๊ท ์ข ์ ์ด๋ฆ์ ์ด ์์๋ก ํฌํจํ๋ ๋ชฉ๋ก์ ๋ง๋ญ๋๋ค. ์ด ๋ชฉ๋ก์ ์ฌ์ฉํ์ฌ ๋ถ๋ฅ ๋ชจ๋ธ์ ์ถ๋ ฅ์ ํด์ํฉ๋๋ค.
ํน์ฑ๊ณผ ๋ ์ด๋ธ์ ๊ดํ ๋ ์์ธํ ๋ด์ฉ์ ๋จธ์ ๋ฌ๋ ๋จ๊ธฐ ์ง์ค ๊ณผ์ ์ ML ์ฉ์ด ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ์ธํธ ๋ค์ด๋ก๋ํ๊ธฐ
์ด์ tf.data.Dataset
๊ฐ์ฒด ๋ชฉ๋ก์ ๋ฐํํ๋ tfds.load
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒ๋ฆฌ๋ ํญ๊ท ๋ฐ์ดํฐ์ธํธ(penguins/processed
)๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. penguins/processed
๋ฐ์ดํฐ์ธํธ์ ๊ฒฝ์ฐ ์์ฒด ํ
์คํธ ์ธํธ๊ฐ ํจ๊ป ์ ๊ณต๋์ง ์์ผ๋ฏ๋ก 80:20์ ๋ถํ ๋น์จ์ ํ๋ จ ์ธํธ์ ํ
์คํธ ์ธํธ๋ก ์ ์ฒด ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ถํ ํฉ๋๋ค. ๋์ค์ ํ
์คํธ ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ธํฉ๋๋ค.
์ด ๋ฒ์ ์ ๋ฐ์ดํฐ์ธํธ๋ 4๊ฐ์ ์ ๊ทํ๋ ํน์ฑ๊ณผ ์ข ๋ ์ด๋ธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ํ์ฌ ์ฒ๋ฆฌ๋์์์ ์ ์ ์์ต๋๋ค. ์ด ํ์์์ ๋ฐ์ดํฐ๋ ์ถ๊ฐ ์ฒ๋ฆฌ ์์ด ๋ชจ๋ธ์ ํ๋ จํ๋ ๋ฐ ๋น ๋ฅด๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐฐ์น์์ ์ผ๋ถ ํน์ฑ์ ํ๋กฏํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ์๊ฐํํ ์ ์์ต๋๋ค.
๊ฐ๋จํ ์ ํ ๋ชจ๋ธ ๊ตฌ์ถํ๊ธฐ
์ ๋ชจ๋ธ์ ์ฌ์ฉํด์ผํ๋๊ฐ?
*๋ชจ๋ธ*์ ํน์ฑ๊ณผ ๋ ์ด๋ธ ๊ฐ์ ๊ด๊ณ์ ๋๋ค. ํญ๊ท ๋ถ๋ฅ ๋ฌธ์ ์ ๊ฒฝ์ฐ, ๋ชจ๋ธ์ ์ฒด์ง๋๊ณผ ํญ๊ท๋ ๊ฐ ๋ฐ ํญ๊ท ๋ถ๋ฆฌ ์ธก์ ์น์ ์์ธก๋ ํญ๊ท ์ข ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํฉ๋๋ค. ์ผ๋ถ ๊ฐ๋จํ ๋ชจ๋ธ์ ๋ช ์ค์ ๋์๋ก ์ค๋ช ํ ์ ์์ง๋ง, ๋ณต์กํ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์๋ ์์ฝํ๊ธฐ ์ด๋ ค์ด ๋งค๊ฐ๋ณ์๊ฐ ๋ง์ต๋๋ค.
๋จธ์ ๋ฌ๋์ ์ฌ์ฉํ์ง ์๊ณ 4๊ฐ์ง ํน์ฑ๊ณผ ํญ๊ท ์ข ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ธํ ์ ์์๊น์? ์ฆ, ๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ (์: ์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฑด๋ฌธ)์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ง๋ค ์ ์์๊น์? ํน์ ์ข ์ ๋ํ ์ฒด์ง๋๊ณผ ํญ๊ท ๋ถ๋ฆฌ ์ธก์ ์น ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ธํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ์ค๋ซ๋์ ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ถ์ํ ๊ฒฝ์ฐ ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ ๋ณต์กํ ๋ฐ์ดํฐ์ธํธ์์๋ ์ด๋ ต๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค. ์ข์ ๋จธ์ ๋ฌ๋ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๋ฉด ์ ์ ํ ๋ชจ๋ธ์ ์ ์ํด ์ค๋๋ค. ์ ์ ํ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ํ์์ ์ถฉ๋ถํ ๋ํ ์์ ๋ฅผ ์ ๊ณตํ๋ฉด ํ๋ก๊ทธ๋จ์ด ๊ด๊ณ๋ฅผ ํ์ ํด ์ค๋๋ค.
๋ชจ๋ธ ์ ์
ํ๋ จํ ๋ชจ๋ธ์ ์ข ๋ฅ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ๋ง์ ํ์์ ๋ชจ๋ธ์ด ์์ผ๋ฉฐ ์ข์ ๋ชจ๋ธ์ ์ ํํ๋ ค๋ฉด ๊ฒฝํ์ด ํ์ํฉ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํ์ฌ ํญ๊ท ๋ถ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ ๊ฒฝ๋ง์ ํน์ฑ๊ณผ ๋ ์ด๋ธ ๊ฐ์ ๋ณต์กํ ๊ด๊ณ๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉฐ, ํ๋ ์ด์์ ์จ๊ฒจ์ง ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋ ๊ณ ๋๋ก ๊ตฌ์กฐํ๋ ๊ทธ๋ํ์ ๋๋ค. ๊ฐ ์จ๊ฒจ์ง ๋ ์ด์ด๋ ํ๋ ์ด์์ ์ ๊ฒฝ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ ๊ฒฝ๋ง์๋ ์ฌ๋ฌ ๋ฒ์ฃผ๊ฐ ์์ผ๋ฉฐ, ์ด ํ๋ก๊ทธ๋จ์ ์กฐ๋ฐํ๊ฑฐ๋ ์์ ํ ์ฐ๊ฒฐ๋ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ํ ๋ ์ด์ด์ ์ ๊ฒฝ์ ์ด์ ๋ ์ด์ด์ ๋ชจ๋ ์ ๊ฒฝ์์ ์ ๋ ฅ ์ฐ๊ฒฐ์ ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ทธ๋ฆผ 2๋ ์ ๋ ฅ ๋ ์ด์ด, 2๊ฐ์ ์จ๊ฒจ์ง ๋ ์ด์ด ๋ฐ ์ถ๋ ฅ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋ ์กฐ๋ฐํ ์ ๊ฒฝ๋ง์ ๋ณด์ฌ์ค๋๋ค.
![]() |
๊ทธ๋ฆผ 2. ํน์ฑ, ์จ๊ฒจ์ง ๋ ์ด์ด, ์์ธก์ผ๋ก ๊ตฌ์ฑ๋ ์ ๊ฒฝ๋ง |
๊ทธ๋ฆผ 2์ ๋ชจ๋ธ์ ํ๋ จํ๊ณ ๋ ์ด๋ธ์ด ์ง์ ๋์ง ์์ ์์ ๋ฅผ ์ ๊ณตํ๋ฉด, ์ด ํญ๊ท์ด ์ฃผ์ด์ง ํญ๊ท ์ข
์ผ ๊ฐ๋ฅ์ฑ์ ๋ํ 3๊ฐ์ง ์์ธก๊ฐ์ด ์์ฑ๋ฉ๋๋ค. ์ด ์์ธก์ ์ถ๋ก ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ์์ ์์ ์ถ๋ ฅ ์์ธก๊ฐ์ ํฉ๊ณ๋ 1.0์
๋๋ค. ๊ทธ๋ฆผ 2์์ ์ด ์์ธก์ ์๋ธ๋ฆฌ ํญ๊ท์ ๊ฒฝ์ฐ 0.02
, ํฑ๋ ํญ๊ท์ ๊ฒฝ์ฐ 0.95
, ์ ํฌ ํญ๊ท์ ๊ฒฝ์ฐ 0.03
์
๋๋ค. ์ฆ, ๋ชจ๋ธ์ 95% ํ๋ฅ ๋ก ๋ ์ด๋ธ์ด ์ง์ ๋์ง ์์ ์์ ํญ๊ท์ด ํฑ๋ ํญ๊ท์ด๋ผ๊ณ ์์ธกํฉ๋๋ค.
์ผ๋ผ์ค๋ฅผ ์ฌ์ฉํ ๋ชจ๋ธ ์์ฑ
TensorFlow์ tf.keras
API๋ ๋ชจ๋ธ๊ณผ ๋ ์ด์ด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. Keras๊ฐ ๋ชจ๋ ๊ตฌ์ฑ ์์ ์ฐ๊ฒฐ์ ๋ํ ๋ณต์ก์ฑ์ ์ฒ๋ฆฌํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ธ์ ๊ตฌ์ถํ๊ณ ์คํํ๋ ๋ฐ ์ฉ์ดํฉ๋๋ค.
tf.keras.Sequential
๋ชจ๋ธ์ ๋ ์ด์ด์ ์ ํ ์คํ์
๋๋ค. ์ด ์์ฑ์๋ ๋ ์ด์ด ์ธ์คํด์ค ๋ชฉ๋ก์ ์ทจํ๋๋ฐ, ์๋์ ๊ฒฝ์ฐ, ๊ฐ 10๊ฐ์ ๋
ธ๋๋ฅผ ๊ฐ๋ ๋ ๊ฐ์ tf.keras.layers.Dense
๋ ์ด์ด ๋ฐ 3๊ฐ์ ๋
ธ๋๋ฅผ ๊ฐ๋ ์ถ๋ ฅ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋์ด ๋ ์ด๋ธ ์์ธก์ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ ์ด์ด์ input_shape
๋งค๊ฐ๋ณ์๋ ๋ฐ์ดํฐ์ธํธ์ ํน์ฑ ์์ ํด๋นํ๋ฉฐ ํ์์ ์
๋๋ค.
*ํ์ฑํ ํจ์*๋ ๊ฐ ๋ ์ด์ด์ ๋
ธ๋์์ ์ถ๋ ฅ ํ์์ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ฌํ ๋น์ ํ์ฑ์ด ์ค์ํ๋ฐ, ํ์ฑํ ํจ์๊ฐ ์๋ ๋ชจ๋ธ์ ๋จ์ผ ๋ ์ด์ด์ ๋ง์ฐฌ๊ฐ์ง์ด๊ธฐ ๋๋ฌธ์
๋๋ค. tf.keras.activations
๊ฐ ๋ง์ด ์์ง๋ง, ์จ๊ฒจ์ง ๋ ์ด์ด์์๋ ์ฃผ๋ก ReLU ํจ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์จ๊ฒจ์ง ๋ ์ด์ด์ ์ ๊ฒฝ์ ์ด์์ ์ธ ์๋ ๋ฌธ์ ์ ๋ฐ์ดํฐ์ธํธ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋จธ์ ๋ฌ๋์ ์ฌ๋ฌ ์ธก๋ฉด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ฒฝ๋ง์ ์ต์์ ํํ๋ฅผ ๊ณ ๋ฅด๊ธฐ ์ํด์๋ ์ง์๊ณผ ์คํ์ด ๋ชจ๋ ํ์ํฉ๋๋ค. ๊ฒฝํ์ ์จ๊ฒจ์ง ๋ ์ด์ด์ ์ ๊ฒฝ์ ์๋ฅผ ๋๋ฆฌ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ๋ ฅํ ๋ชจ๋ธ์ด ์์ฑ๋๋ฉฐ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ๋ จํ๋ ค๋ฉด ๋ ๋ง์ ๋ฐ์ดํฐ๊ฐ ํ์ํฉ๋๋ค.
๋ชจ๋ธ ์ฌ์ฉํ๊ธฐ
์ด ๋ชจ๋ธ์ด ํน์ฑ์ ๋ฐฐ์น์ ๋ํด ์ํํ๋ ์์ ์ ๊ฐ๋จํ ์ดํด๋ด ์๋ค.
ํด๋์ค์์ tf.math.argmax
๋ฅผ ์ฌ์ฉํ๋ฉด ์์ธก๋ ํด๋์ค ์ธ๋ฑ์ค๊ฐ ์ ๊ณต๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ธ์ ์์ง ํ๋ จ๋์ง ์์์ผ๋ฏ๋ก ์ข์ ์์ธก์ ํ์ง ์์ต๋๋ค.
๋ชจ๋ธ ํ๋ จํ๊ธฐ
*ํ๋ จํ๊ธฐ*๋ ๋ชจ๋ธ์ด ์ ์ฐจ ์ต์ ํ๋ ๋ ๋๋ ๋ชจ๋ธ์ด ๋ฐ์ดํฐ์ธํธ๋ฅผ ํ์ตํ๋ ๋จธ์ ๋ฌ๋ ๋จ๊ณ์ ๋๋ค. ์ด ๋จ๊ณ์ ๋ชฉํ๋ ํ๋ จ ๋ฐ์ดํฐ์ธํธ์ ๊ตฌ์กฐ์ ๋ํด ์ถฉ๋ถํ ํ์ตํ์ฌ ๋ณด์ด์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ธกํ๋ ๊ฒ์ ๋๋ค. ํ๋ จ ๋ฐ์ดํฐ์ธํธ์ ๋ํด ๋๋ฌด ๋ง์ด ๋ฐฐ์ฐ๋ฉด ์์ธก์ด ๊ด์ธกํ ๋ฐ์ดํฐ์ ๋ํด์๋ง ์๋ํ๊ณ ์ผ๋ฐํํ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๊ณผ๋์ ํฉ์ด๋ผ๊ณ ํ๋ฉฐ, ์ด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋์ ๋ต์ ์๊ธฐํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
ํญ๊ท ๋ถ๋ฅ ๋ฌธ์ ๋ ๊ฐ๋ ๋จธ์ ๋ฌ๋์ ์์ ๋๋ค. ๋ชจ๋ธ์ ๋ ์ด๋ธ์ด ํฌํจ๋ ์์ ๋ก ํ๋ จ๋ฉ๋๋ค. ๋น๊ฐ๋ ๋จธ์ ๋ฌ๋์์๋ ์์ ์ ๋ ์ด๋ธ์ด ํฌํจ๋์ง ์์ต๋๋ค. ๋์ ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ผ๋ก ํน์ฑ ์ฌ์ด์์ ํจํด์ ์ฐพ์ต๋๋ค.
์์ค ํจ์์ ๊ฒฝ์ฌ ํจ์ ์ ์ํ๊ธฐ
ํ๋ จ ๋ฐ ํ๊ฐ ๋จ๊ณ ๋ชจ๋์์ ๋ชจ๋ธ ์์ค์ ๊ณ์ฐํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ธ์ ์์ธก์ด ์ํ๋ ๋ ์ด๋ธ์์ ์ผ๋ง๋ ๋จ์ด์ ธ ์๋์ง, ์ฆ ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ์ผ๋ง๋ ์ ์ข์์ง๋ฅผ ์ธก์ ํ๋ ๊ฒ์ผ๋ก, ๊ทธ ๊ฐ์ ์ต์ํํ๊ฑฐ๋ ์ต์ ํํด์ผ ํฉ๋๋ค.
๋ชจ๋ธ์ ์์ค์ tf.keras.losses.categorical_crossentropy
ํจ์๋ฅผ ์ฌ์ฉํด ๊ณ์ฐํฉ๋๋ค. ์ด ํจ์๋ ๋ชจ๋ธ์ ํด๋์ค ํ๋ฅ ์์ธก๊ณผ ์ํ๋ ๋ ์ด๋ธ์ ์
๋ ฅ์ผ๋ก ๋ฐ์ ์์ ํ๊ท ์์ค์ ๋ฐํํฉ๋๋ค.
๋ชจ๋ธ์ ์ต์ ํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ *๊ทธ๋๋์ธํธ*๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด tf.GradientTape
์ปจํ
์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ตํฐ๋ง์ด์ ์์ฑ
์ตํฐ๋ง์ด์ ๋ ๊ณ์ฐ๋ ๊ฒฝ์ฌ๋ฅผ ๋ชจ๋ธ์ ๋งค๊ฐ๋ณ์์ ์ ์ฉํ์ฌ loss
ํจ์๋ฅผ ์ต์ํํฉ๋๋ค. ์์ค ํจ์๋ฅผ ๊ณก๋ฉด์ ๋น์ ํ๋ค๋ฉด(๊ทธ๋ฆผ 3 ์ฐธ์กฐ) ๊ณก๋ฉด์์ ๊ฐ์ฅ ๋ฎ์ ์ง์ ์ ์ฐพ๋ ๊ฒ๊ณผ ๊ฐ๋ค๊ณ ํ ์ ์์ต๋๋ค. ๊ฒฝ์ฌ๋ ๊ฐ์ฅ ๊ฐํ๋ฅธ ์์น ๋ฐฉํฅ์ ๊ฐ๋ฆฌํค๋ฏ๋ก ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ์ฌ ๋ด๋ ค๊ฐ์ผ ํฉ๋๋ค. ๊ฐ ๋ฐฐ์น์ ์์ค๊ณผ ๊ฒฝ์ฌ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๊ณ์ฐํ์ฌ ํ๋ จ์ ํตํด ๋ชจ๋ธ์ ์กฐ์ ํฉ๋๋ค. ๋ชจ๋ธ์ ์ ์ฐจ ์์ค์ ์ต์ํํ๊ธฐ ์ํด ๊ฐ์ค์น์ ๋ฐ์ด์ด์ค์ ์ต์์ ์กฐํฉ์ ์ฐพ์ต๋๋ค. ์์ค์ด ๋ฎ์์๋ก ๋ชจ๋ธ์ ์์ธก๊ฐ์ ๋ ์ข์์ง๋๋ค.
![]() |
๊ทธ๋ฆผ 3. 3D ๊ณต๊ฐ์์ ์๊ฐ์ ๊ฑธ์ณ ์๊ฐํํ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ. (์ถ์ฒ: Stanford class CS231n, MIT License, ์ด๋ฏธ์ง ์ ๊ณต: Alec Radford) |
TensorFlow์๋ ํ๋ จ์ ์ฌ์ฉํ ์ ์๋ ๋ง์ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ(SGD) ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ tf.keras.optimizers.SGD
๋ฅผ ์ฌ์ฉํฉ๋๋ค. learning_rate
๋งค๊ฐ๋ณ์๋ ๊ฒฝ์ฌ ์๋๋ก ๋ฐ๋ณตํ ๋๋ง๋ค ์ํํ ๋จ๊ณ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค. ์ด ๋น์จ์ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ์กฐ์ ํ๋ ํ์ดํผ ๋งค๊ฐ๋ณ์์
๋๋ค.
ํ์ต๋ฅ ์ด 0.01
์ธ ์ต์ ํ ๋๊ตฌ๋ฅผ ์ธ์คํด์คํํฉ๋๋ค. ์ค์นผ๋ผ ๊ฐ์ ๊ฐ ํ๋ จ ๋ฐ๋ณต์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ณฑํ ๊ฐ์
๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ผ ์ต์ ํ ๋จ๊ณ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
ํ๋ จ ๋ฃจํ
์ฌ๊ธฐ๊น์ง ๋ชจ๋ ๋ง์ณค๋ค๋ฉด ๋ชจ๋ธ์ ํ๋ จํ ์ค๋น๊ฐ ๋์์ต๋๋ค! ํ๋ จ ๋ฃจํ๋ ๋ ๋์ ์์ธก์ ํ ์ ์๋๋ก ๋ฐ์ดํฐ์ธํธ ์์ ๋ฅผ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. ๋ค์ ์ฝ๋ ๋ธ๋ก์ ์ด๋ฌํ ํ๋ จ ๋จ๊ณ๋ฅผ ์ค์ ํฉ๋๋ค.
๊ฐ epoch ๋ฐ๋ณต. Epoch๋ ๋ฐ์ดํฐ์ธํธ๋ฅผ ํต๊ณผ์ํค๋ ํ์์ ๋๋ค.
ํ๋์ Epoch ๋ด์์ ํน์ฑ(
x
)๊ณผ ๋ ์ด๋ธ(y
)์ด ํฌํจ๋ ํ๋ จDataset
์ ๊ฐ ์๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.์์ ํน์ฑ์ ์ฌ์ฉํ์ฌ ์์ธก์ ์ํํ๊ณ ๋ ์ด๋ธ๊ณผ ๋น๊ตํฉ๋๋ค. ์์ธก์ ๋ถ์ ํ์ฑ์ ์ธก์ ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์์ค ๋ฐ ๊ทธ๋๋์ธํธ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
optimizer
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.์๊ฐํ๋ฅผ ์ํด ๋ช๊ฐ์ง ๊ฐ๋ค์ ์ ์ฅํฉ๋๋ค.
๊ฐ epoch์ ๋ํด ๋ฐ๋ณตํฉ๋๋ค.
num_epochs
๋ณ์๋ ๋ฐ์ดํฐ์ธํธ ๋ชจ์์ ๋ฐ๋ณตํ๋ ํ์์
๋๋ค. ์๋ ์ฝ๋์์ num_epochs
๊ฐ 201๋ก ์ค์ ๋์ด ์๊ธฐ์ ์ด ํ๋ จ ๋ฃจํ๋ 201๋ฒ ์คํ๋ฉ๋๋ค. ๋จ์ํ ์๊ฐํด๋ ๋ชจ๋ธ์ ๋ ์ค๋ ํ๋ จํ๋ค๊ณ ํด์ ๋ ๋์ ๋ชจ๋ธ์ด ๋ณด์ฅ๋์ง๋ ์์ต๋๋ค. num_epochs
๋ ์กฐ์ ํ ์ ์๋ ํ์ดํผ ๋งค๊ฐ๋ณ์์
๋๋ค. ์ ์ ํ ํ์์ ์ ํ์๋ ๋ง์ ๊ฒฝํ๊ณผ ์ง๊ด์ด ํ์ํฉ๋๋ค.
๋๋ ๋ด์ฅ๋ Keras Model.fit(ds_train_batch)
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ๋ จํ ์ ์์ต๋๋ค.
์๊ฐ์ ๋ฐ๋ฅธ ์์คํจ์ ์๊ฐํ
๋ชจ๋ธ์ ํ๋ จ ๊ณผ์ ์ ์ถ๋ ฅํ๋ ๊ฒ๋ ์ ์ฉํ์ง๋ง TensorFlow์ ํจ๊ป ์ ๊ณต๋๋ ์๊ฐํ ๋ฐ ๋ฉํธ๋ฆญ ๋๊ตฌ์ธ ํ
์๋ณด๋(TensorBoard)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ จ ๊ณผ์ ์ ์๊ฐํํ ์ ์์ต๋๋ค. ์ด ๊ฐ๋จํ ์์ ์์๋ matplotlib
๋ชจ๋์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ฐจํธ๋ฅผ ๋ง๋ญ๋๋ค.
์ด๋ฌํ ์ฐจํธ๋ฅผ ํด์ํ๋ ค๋ฉด ์ด๋ ์ ๋์ ๊ฒฝํ์ด ํ์ํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์์ค์ ๊ฐ์ํ๊ณ ์ ํ์ฑ์ด ์ฆ๊ฐํ๋ ๊ฒ์ ํ์ธํ๊ณ ์ ํฉ๋๋ค.
๋ชจ๋ธ ์ ํจ์ฑ ํ๊ฐ
์ด์ ๋ชจ๋ธ์ด ํ๋ จ๋์์ผ๋ฏ๋ก ์ฑ๋ฅ์ ๋ํ ํต๊ณ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
ํ๊ฐ๋ ๋ชจ๋ธ์ด ์ผ๋ง๋ ํจ๊ณผ์ ์ผ๋ก ์์ธก์ ์ํํ๋์ง ์์๋ณด๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํญ๊ท ๋ถ๋ฅ์์ ๋ชจ๋ธ์ ํจ๊ณผ๋ฅผ ํ์ธํ๋ ค๋ฉด ์ธก์ ์ ๋ณด๋ฅผ ๋ชจ๋ธ์ ์ ๋ฌํ๊ณ ํด๋น ๋ชจ๋ธ์ด ํญ๊ท ์ข
์ ์์ธกํ๋๋ก ์์ฒญํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชจ๋ธ์ ์์ธก์ ์ค์ ๋ ์ด๋ธ๊ณผ ๋น๊ตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์
๋ ฅ ์์ ์ ์ ๋ฐ์์ ์ฌ๋ฐ๋ฅธ ์ข
์ ์ ํํ ๋ชจ๋ธ์ ์ ํ์ฑ์ 0.5
์
๋๋ค. ๊ทธ๋ฆผ 4๋ ์ฝ๊ฐ ๋ ํจ๊ณผ์ ์ธ ๋ชจ๋ธ์ ๋ณด์ฌ์ค๋๋ค. 5๊ฐ ์์ธก ์ค 4๊ฐ๋ 80% ์ ํ์ฑ์ผ๋ก ์ ํํฉ๋๋ค.
์ํ ํน์ฑ | ๋ ์ด๋ธ | ๋ชจ๋ธ ์์ธก | |||
---|---|---|---|---|---|
5.9 | 3.0 | 4.3 | 1.5 | 1 | 1 |
6.9 | 3.1 | 5.4 | 2.1 | 2 | 2 |
5.1 | 3.3 | 1.7 | 0.5 | 0 | 0 |
6.0 | 3.4 | 4.5 | 1.6 | 1 | 2 |
5.5 | 2.5 | 4.0 | 1.3 | 1 | 1 |
๊ทธ๋ฆผ 4. ์ ํ์ฑ 80%์ ํญ๊ท ๋ถ๋ฅ๊ธฐ |
ํ ์คํธ ์ธํธ ์ค์ ํ๊ธฐ
๋ชจ๋ธ ํ๊ฐ๋ ๋ชจ๋ธ ํ๋ จ๊ณผ ์ ์ฌํฉ๋๋ค. ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ์์ ๊ฐ ํ๋ จ ์ธํธ๊ฐ ์๋ ๋ณ๋์ *ํ ์คํธ ์ธํธ*์์ ๋์จ๋ค๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ธ์ ํจ๊ณผ๋ฅผ ๊ณต์ ํ๊ฒ ํ๊ฐํ๋ ค๋ฉด ๋ชจ๋ธ์ ํ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๊ฐ ๋ชจ๋ธ ํ๋ จ์ ์ฌ์ฉ๋ ์์ ๋ฌ๋ผ์ผ ํฉ๋๋ค.
ํญ๊ท ๋ฐ์ดํฐ์ธํธ์๋ ๋ณ๋์ ํ
์คํธ ๋ฐ์ดํฐ์ธํธ๊ฐ ์์ผ๋ฏ๋ก ์ด์ ๋ฐ์ดํฐ์ธํธ ๋ค์ด๋ก๋ ์น์
์์ ์๋ณธ ๋ฐ์ดํฐ์ธํธ๋ฅผ ํ
์คํธ ๋ฐ ํ๋ จ ๋ฐ์ดํฐ์ธํธ๋ก ๋ถํ ํ์ต๋๋ค. ํ๊ฐ๋ฅผ ์ํด ds_test_batch
๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ ์คํธ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ ๋ชจ๋ธ ํ๊ฐ
ํ๋ จ ๋จ๊ณ์ ๋ฌ๋ฆฌ ๋ชจ๋ธ์ ํ ์คํธ ๋ฐ์ดํฐ์ ๋จ์ผ epoch๋ง ํ๊ฐํฉ๋๋ค. ๋ค์ ์ฝ๋๋ ํ ์คํธ ์ธํธ์ ๊ฐ ์์ ๋ฅผ ๋ฐ๋ณตํ๊ณ ๋ชจ๋ธ์ ์์ธก๊ฐ์ ์ค์ ๋ ์ด๋ธ๊ณผ ๋น๊ตํฉ๋๋ค. ์ด ๋น๊ต๋ ์ ์ฒด ํ ์คํธ์ธํธ์์ ๋ชจ๋ธ์ ์ ํ์ฑ์ ์ธก์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
model.evaluate(ds_test, return_dict=True)
keras ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ๋ฐ์ดํฐ์ธํธ์ ์ ํ์ฑ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ง์ง๋ง ๋ฐฐ์น๋ฅผ ๊ฒ์ฌํ์ฌ ๋ชจ๋ธ ์์ธก์ด ์ผ๋ฐ์ ์ธ ์ํฉ์์ ์ ํํ์ง ๊ด์ฐฐํ ์ ์์ต๋๋ค.
ํ๋ จ๋ ๋ชจ๋ธ๋ก ์์ธกํ๊ธฐ
๋ชจ๋ธ์ ํ๋ จํ๊ณ ์ด ๋ชจ๋ธ์ด ํญ๊ท ์ข ์ ๋ถ๋ฅํ๋ ๋ฐ ํ๋ฅญํจ์ "์ฆ๋ช "ํ์ง๋ง ์๋ฒฝํ์ง๋ ์์ต๋๋ค. ์ด์ ํ๋ จ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ ์ด๋ธ์ด ์๋ ์์ ์ ๋ํ ์์ธก์ ์ํํด ๋ณด๊ฒ ์ต๋๋ค. ์ฆ, ํน์ฑ์ ํฌํจํ์ง๋ง ๋ ์ด๋ธ์ ํฌํจํ์ง ์๋ ์์ ์ ๋๋ค.
์ค์ ๋ก ๋ ์ด๋ธ์ด ์๋ ์์ ๋ ์ฑ, CSV ํ์ผ, ๋ฐ์ดํฐ ํผ๋ ๋ฑ ๋ค์ํ ์์ค๋ก๋ถํฐ ์ ๊ณต๋ ์ ์์ต๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ ๋ ์ด๋ธ์ ์์ธกํ๊ธฐ ์ํด ๋ ์ด๋ธ์ด ์๋ 3๊ฐ์ง ์๋ฅผ ์๋์ผ๋ก ์ ๊ณตํฉ๋๋ค. ๋ ์ด๋ธ ๋ฒํธ๋ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
0
: ์๋ธ๋ฆฌ ํญ๊ท1
: ํฑ๋ ํญ๊ท2
: ์ ํฌ ํญ๊ท