๐ฉ ๋ฅ๋ฌ๋๊ณผ ์ธ๊ณต ์ ๊ฒฝ๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ณ ํ ์ํ๋ก๋ฅผ ์ฌ์ฉํด ๊ฐ๋จํ ์ธ๊ณต ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๋ง๋ค์ด ๋ด ์๋ค.
[์ธ๊ณต์ง๋ฅ/ํผ๊ณต๋จธ์ ] 07-1. ์ธ๊ณต ์ ๊ฒฝ๋ง (2)
๐ฉ ๋ฅ๋ฌ๋๊ณผ ์ธ๊ณต ์ ๊ฒฝ๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ณ ํ ์ํ๋ก๋ฅผ ์ฌ์ฉํด ๊ฐ๋จํ ์ธ๊ณต ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๋ง๋ค์ด ๋ด ์๋ค. [์ธ๊ณต์ง๋ฅ/ํผ๊ณต๋จธ์ ] 07-1. ์ธ๊ณต ์ ๊ฒฝ๋ง (1) ๐ฉ ๋ฅ๋ฌ๋๊ณผ ์ธ๊ณต ์ ๊ฒฝ๋ง ์๊ณ ๋ฆฌ์ฆ์
avoc-o-d.tistory.com
์ธ๊ณต ์ ๊ฒฝ๋ง์ผ๋ก ํจ์ ์์ดํ ๋ถ๋ฅํ๊ธฐ
์ผ๋ผ์ค ๋ชจ๋ธ์ ํ๋ จํ๊ธฐ ์ ์ compile()๋ก ํ๋ ์ค์ ๋จ๊ณ๊ฐ ์์ต๋๋ค.
model.compile(loss="sparse_categorical_crossentropy", metrics="accuracy")
๊ผญ!!! ์ง์ ํด์ผ ํ ๊ฒ์ โจ์์ค ํจ์์ ์ข ๋ฅโจ์ ๋๋ค.
๐ loss = "sparse_categorical_crossentropy"
๐ค categorical_crossentropy
- (์ฐธ๊ณ )์ด์ง ๋ถ๋ฅ : ์ด์ง ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ํจ์ ์ฌ์ฉ loss="binary_crossentropy"
- ๋ค์ค ๋ถ๋ฅ : ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ํจ์ ์ฌ์ฉ loss="categorical_crossentropy"
๐ค sparse
- ์ด์ง ํฌ๋ก์ค ์ํธ๋กํผ ์์ค์ ์ํด -log(์์ธก ํ๋ฅ ) x ํ๊น๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
- ์ด์ง ๋ถ๋ฅ์์๋ ์ถ๋ ฅ์ธต์ ๋ด๋ฐ์ด ํ๋์ ๋๋ค.
- ์ด์ง ๋ถ๋ฅ์ ์ถ๋ ฅ ๋ด๋ฐ์ ์ค์ง ์์ฑ ํด๋์ค ํ๋ฅ (a)๋ง ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ ์์ฑ ํด๋์ค ํ๋ฅ ์ 1-a๋ก ๊ตฌํ ์ ์์ฃ .
๋ํ, ์ด์ง ๋ถ๋ฅ์ ํ๊น๊ฐ์ ์์ฑ ์ํ 1, ์์ฑ ์ํ 0์ผ๋ก ๋์ด ์์ฃ . ํ๊น๊ฐ 0์ ๊ณฑํ๋ฉด 0์ด ๋๊ธฐ ๋๋ฌธ์ ์์ฑ ์ํ์ (1-ํ๊น๊ฐ)์ผ๋ก ๊ณ์ฐํฉ๋๋ค.
โถ๏ธ ์ฆ, ํ๋์ ๋ด๋ฐ๋ง์ผ๋ก ์์ฑ, ์์ฑ ํด๋์ค์ ๋ํ ํฌ๋ก์ค ์ํธ๋กํผ ์์ค์ ๋ชจ๋ ๊ณ์ฐํ ์ ์์ต๋๋ค. (์๋ ๊ทธ๋ฆผ ์ฐธ๊ณ )
- ๋ค์ค ๋ถ๋ฅ์์ ์ถ๋ ฅ์ธต์ 10๊ฐ์ ๋ด๋ฐ์ด ์๊ณ , 10๊ฐ์ ํด๋์ค์ ๋ํ ํ๋ฅ ์ ์ถ๋ ฅํฉ๋๋ค.
ex. ์ฒซ ๋ฒ์งธ ๋ด๋ฐ์ ํฐ์ ์ธ ์ผ ํ๋ฅ ์ถ๋ ฅ - ์ด์ง ๋ถ๋ฅ์ ๋ฌ๋ฆฌ, ๊ฐ ํด๋์ค์ ๋ํ ํ๋ฅ ์ด ๋ชจ๋ ์ถ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ํ๊น์ ํด๋นํ๋ ํ๋ฅ ๋ง ๋จ๊ฒจ ๋๊ธฐ ์ํด ๋๋จธ์ง ํ๋ฅ ์๋ ๋ชจ๋ 0์ ๊ณฑํฉ๋๋ค.
ex. ์ํ์ด ํฐ์ ์ธ ์ผ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ ๋ด๋ฐ์ ํ์ฑํ ํจ์ ์ถ๋ ฅ์ธ a1์ ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ํจ์๋ฅผ ์ ์ฉํ๊ณ ๋๋จธ์ง ํ์ฑํ ํจ์ ์ถ๋ ฅ a2~a10๊น์ง๋ ๋ชจ๋ 0์ผ๋ก ๋ง๋ญ๋๋ค. โถ๏ธ [1, 0, ..., 0]
โถ๏ธ ์ถ๋ ฅ์ธต์ ํ์ฑํ ๊ฐ์ ๋ฐฐ์ด๊ณผ ์ ๋ฐฐ์ด์ ๊ณฑํฉ๋๋ค. [a1, a2, ..., a10] x [1, 0, ..., 0]
โถ๏ธ ๊ฒฐ๊ตญ, a1๋ง ๋จ๊ฒ ๊ตฐ์. (์๋ ๊ทธ๋ฆผ ์ฐธ๊ณ )
- ์ฆ, ์ ๊ฒฝ๋ง์ ํด๋น ์ํ์์ ์์ค์ ๋ฎ์ถ๋ ค๋ฉด ํด๋น ๋ด๋ฐ์ ํ์ฑํ ์ถ๋ ฅ a ๊ฐ์ ์ต๋ํ 1์ ๊ฐ๊น๊ฒ ๋ง๋ค์ด์ผ ํฉ๋๋ค!!!
- โถ๏ธ ์-ํซ ์ธ์ฝ๋ฉ : ํ๊น๊ฐ์ ํด๋น ํด๋์ค๋ง 1์ด๊ณ , ๋๋จธ์ง๋ 0์ธ ๋ฐฐ์ด๋ก ๋ง๋๋ ๊ฒ
- ๋ฐ๋ผ์, ๋ค์ค ๋ถ๋ฅ์์ ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ํ์ฌ ์ ์์ธ ํ๊น๊ฐ(0~9)์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๊ณ , ์-ํซ ์ธ์ฝ๋ฉ์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค.
- ๊ทธ์น๋ง ๊ฒฐ๋ก ์ ์ผ๋ก, ํ
์ํ๋ก์์๋ sparse_categorical_crossentropy์ ํตํด ์ ์ ํ๊น๊ฐ์ ์-ํซ ์ธ์ฝ๋ฉ์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๊ธฐ ๋๋ฌธ์ ์ง์ ์-ํซ ์ธ์ฝ๋ฉ์ผ๋ก ๋ฐ๊ฟ์ฃผ์ง ์๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฌผ๋ก , ์-ํซ ์ธ์ฝ๋ฉ์ผ๋ก ํ๊น๊ฐ์ ์ค๋นํ๋ค๋ฉด categorical_crossentropy๋ก ์ง์ ํฉ๋๋ค.
๐ metrics = "accuracy"
- ์ผ๋ผ์ค๋ ๋ชจ๋ธ์ด ํ๋ จํ ๋ ๊ธฐ๋ณธ์ผ๋ก ์ํฌํฌ๋ง๋ค ์์ค ๊ฐ์ ์ถ๋ ฅํด ์ค๋๋ค.
์์ค์ด ์ค์ด๋๋ ๊ฒ์ ๋ณด๊ณ ํ๋ จ์ด ์๋์๋ค๋ ๊ฒ์ ์ ์ ์์ง๋ง ์ ํ๋๋ฅผ ํจ๊ป ์ถ๋ ฅํ๋ฉด ๋ ์ข์ผ๋๊น! ์ ํ๋ ์งํ๋ฅผ ์๋ฏธํ๋ accuracy๋ฅผ ์ง์ ํฉ๋๋ค.
๊ทธ๋ผ! ํ๋ จํด๋ณด๊ฒ ์ต๋๋ค. ๐ ์ํฌํฌ ํ์๋ 5๋ฒ์ผ๋ก ์ง์ ํ์ต๋๋ค.
model.fit(train_scaled, train_target, epochs=5)
์ํฌํฌ๋ง๋ค ๊ฑธ๋ฆฐ ์๊ฐ๊ณผ ์์ค(loss), ์ ํ๋(accuracy)๋ฅผ ์ถ๋ ฅํด ์ฃผ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
5๋ฒ ๋ฐ๋ณต์ ์ ํ๋๊ฐ 86%๋ฅผ ๋์์ต๋๋ค! ๊ทธ๋ผ ๊ฒ์ฆ ์ธํธ๋ก ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
model.evaluate(val_scaled, val_target)
85%์ ์ ํ๋๋ฅผ ๋์ต๋๋ค.
์ฐธ๊ณ ๋ก,, ๊ฒ์ฆ ์ธํธ์ ์ ์๋ ํ๋ จ ์ธํธ ์ ์๋ณด๋ค ์กฐ๊ธ ๋ฎ์ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. fit()์ฒ๋ผ์! (์๋ฌด๋๋ ํ๋ จ ์ธํธ๋ก ํ๋ จํ๋ค๋ณด๋ ํ๋ จ ์ธํธ์ ๋ํด ์ ์๊ฐ ๋์ ๊ฒ ๋น์ฐํ์ฃ .)
์ด๋ ๊ฒ ์ธ๊ณต ์ ๊ฒฝ๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ํจ์ ์์ดํ ์ ๋ถ๋ฅํ๋ ๋ชจ๋ธ์ ์ ํ๋ จํ์ต๋๋ค!
๊ฐ์ฌํฉ๋๋ค.. ๐ฆ๐ฆ๐ฆ )))
'๐ป My Work > ๐ง AI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฅ๋ฌ๋] TensorFlow๋ฅผ ์ฌ์ฉํ ๋ฅ๋ฌ๋ CNN ๋๋ผ ์๋ฆฌ ๋ถ๋ฅ (0) | 2023.11.24 |
---|---|
[MiniHack] ํ๊ฒฝ ์ธํ (0) | 2023.01.04 |
[์ธ๊ณต์ง๋ฅ/ํผ๊ณต๋จธ์ ] 07-1. ์ธ๊ณต ์ ๊ฒฝ๋ง (2) (0) | 2023.01.01 |
[์ธ๊ณต์ง๋ฅ/ํผ๊ณต๋จธ์ ] 07-1. ์ธ๊ณต ์ ๊ฒฝ๋ง (1) (0) | 2022.12.17 |
[์ธ๊ณต์ง๋ฅ/ํผ๊ณต๋จธ์ ] 04-2. ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ (2) (0) | 2022.12.09 |