ํ์ต์ด๋ ํ๋ จ๋ฐ์ดํฐ๋ก๋ถํฐ ๊ฐ์ค์น ๋งค๊ฐ๋ณ์์ ์ต์ ๊ฐ์ ์๋์ผ๋ก ํ๋ํ๋ ๊ฒ์ผ๋ก ํ์ต์ ๋ชฉํ๋ ์์คํจ์์ ๊ฒฐ๊ด๊ฐ์ ๊ฐ์ฅ ์๊ฒ ๋ง๋๋ ๊ฐ์ค์น ๋งค๊ฐ๋ณ์๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ฒฝ์ฌํ๊ฐ๋ฒ์ด ์๋ค.
์ ๊ฒฝ๋ง์ ๋งค๊ฐ๋ณ์๋ ์ธต์ ๊น๊ฒํ ๋ฅ๋ฌ๋์ ๊ฒฝ์ฐ ์์ต ๊ฐ๋ฅผ ํจ์ฌ ๋์ ์๋ ์๋ค ์ด ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ผ์ผ์ด ์ ํด์ฃผ๊ธฐ๋ ํ๋ค๋ค. ๋คํํ, ์ ๊ฒฝ๋ง์ ํน์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ํ์ตํ๋ค๋ ๊ฒ, ์ฆ ๊ฐ์ค์น ๋งค๊ฐ๋ณ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ์๋์ผ๋ก ๊ฒฐ์ ํ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฒ์๋ ์ ๊ฒฝ๋ง ํ์ต(๋ฐ์ดํฐ๋ก๋ถํฐ ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ ํ๋ ๋ฐฉ๋ฒ)์ ๋ํด ์ค๋ช ํ๊ณ MNIST์ ์์ ์๊ธ์จ ์ซ์ ํ์ต์ ๊ตฌํํด๋ณด์.
์๊ธ์จ์ ํน์ง์ ์ฌ๋๋ง๋ค ๊ธ์จ์ฒด๊ฐ ๋ฌ๋ผ ์ซ์๋ฅผ ์ ๋๋ก ๋ถ๋ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ฐ๋ฅ๋ถํฐ ์ค๊ณํ๊ธฐ๋ ํ๋ค๋ค. ๊ทธ๋์ ์ด๋ฏธ์ง์์ ํน์ง(ํผ์ฒ)๋ฅผ ์ถ์ถํ๊ณ ๊ทธ ํน์ง์ ํจํด์ ๋จธ์ ๋ฌ๋ ๊ธฐ์ ๋ก ํ์ตํ๋ ๋ฐฉ๋ฒ์ ์ธ ์ ์๋ค. ํน์ง์ ์ ๋ ฅ ๋ฐ์ดํฐ์์ ๋ณด์ง์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ถ์ถํ ์ ์๋ ๋ณํ๊ธฐ๋ค. ์ด๋ฏธ์ง์ ํน์ง์ ๋ณดํต ๋ฒกํฐ๋ก ๊ธฐ์ ํ๊ณ , CV์์๋ SIFT, SURF, HOG ๋ฑ์ ํน์ง์ ๋ง์ด ์ฌ์ฉํ๋ค. ์ด๋ฐ ํน์ง์ ์ฌ์ฉํด ์ด๋ฏธ์ง๋ฅผ ๋ฒกํฐํํ๊ณ ์ด ๋ฒกํฐ๋ฅผ ๊ฐ์ง๊ณ ์ง๋ํ์ต์ ๋ํ ๋ถ๋ฅ ๊ธฐ๋ฒ์ธ SVM, KNN ๋ฑ์ผ๋ก ํ์ต์ด ๊ฐ๋ฅํ๋ค.
๋ฐ์ดํฐ๋ก๋ถํฐ ๊ท์น์ ์ฐพ๋ ์ผ์ ๊ธฐ๊ณ๊ฐ ๋ด๋นํ์ง๋ง, ์ด๋ฏธ์ง๋ฅผ ๋ฒกํฐ๋ก ๋ณํํ ๋ ์ฌ์ฉํ๋ ํน์ง์ ์ฌ์ ํ ์ฌ๋์ด ์ค๊ณํ๋ค.
ํ์์ ์ฌ๋์ด ๊ฐ์ ํ์ง ์์์ ์๋ฏธํ๋ค.
์ ๊ฒฝ๋ง์ ์์ ๋ฐฉ๋ฒ๋ค๊ณผ ๋ค๋ฅด๊ฒ ๊ธฐ๊ณ๊ฐ ํน์ง๊น์ง ์ค์ค๋ก ํ์ตํ๋ค. ์ ๊ฒฝ๋ง์ ์ด์ ์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ ๋งฅ๋ฝ์์ ํ ์ ์๋ค๋ ์ ์ด๋ค. ์ซ์ 1์ ์ธ์ํ๋ ๋ฌธ์ , ๊ฐ๋ฅผ ์ธ์ํ๊ฑฐ๋ ์ฌ๋์ ์ผ๊ตด์ ์ธ์ํ๋ ๋ฌธ์ ๋ ์ ๊ฒฝ๋ง์ ๊ทธ์ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์จ์ ํ ํ์ตํ๊ณ ํจํด์ ๋ฐ๊ฒฌํ๊ณ ์ ํ๋ค. ์ฆ ์ ๊ฒฝ๋ง์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์ฃผ์ด์ง ๋ฐ์ดํฐ ๊ทธ๋๋ก ์ ๋ ฅ์ผ๋ก ์ฐ๋ end-to-end ๋ฐฉ์์ผ๋ก ํ์ตํ ์ ์๋ค.
์์ค ํจ์
์ ๊ฒฝ๋ง ์ฑ๋ฅ์ ๋์จ์ ํ์ํ๋ ์งํ๋ก, ํ์ฌ ์ ๊ฒฝ๋ง์ด ํ๋ จ๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ๋ชป์ฒ๋ฆฌํ๊ณ ์๋์ง ๋ณด์ฌ์ค๋ค.
์ ๊ฒฝ๋ง์์๋ ์์คํจ์๋ก ์ต์ ์ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ํ๋ค. ์ฌ์ฉ์ ์ ์ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก๋ ์ค์ฐจ์ ๊ณฑํฉ๊ณผ ๊ต์ฐจ ์ํธ๋กํผ ์ค์ฐจ๋ฅผ ์ฌ์ฉํ๋ค.
์ค์ฐจ์ ๊ณฑํฉ
yk: ์ ๊ฒฐ๋ง์ ์ถ๋ ฅ(์ ๊ฒฝ๋ง์ด ์ถ์ ํ ๊ฐ)
tk: ์ ๋ต ๋ ์ด๋ธ
k: ๋ฐ์ดํฐ์ ์ฐจ์ ์
์๋ฅผ ๋ค์ด, ์๊ธ์จ ์ธ์ ์์ yk ์ tk๋ ๋ค์๊ณผ ๊ฐ์ ์์ 10๊ฐ์ง๋ฆฌ ๋ฐ์ดํฐ์ด๋ค.
y=[0.1, 0.05,0.6,0.0,0.05,0.1,0.0,,0.0,0.0]
t=[0,0,1,0,0,0,0,0,0,0]
์์๋ค์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์ซ์ 0,1,2,,,,์์ผ๋์ ๊ฐ์ด๋ค. ์ฌ๊ธฐ์ ์ ๊ฒฝ๋ง ์ถ๋ ฅ y๋ ์ํํธ๋งฅ์ ํจ์์ ์ถ๋ ฅ๊ฐ์ด๋ค. t๋ ์ํซ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก, ์ ๋ต์ด 2์์ ๊ฐ๋ฆฌํค๊ณ ์๋ค. ์ ๊ฒฝ๋ง์ ๋ฐ๋ฅด๋ฉด 2์ผ ํ๋ฅ ์ 0.6์ด๋ค.
์ค์ฐจ์ ๊ณฑํฉ์ ๊ฐ ์์์ ์ถ๋ ฅ๊ณผ ์ ๋ต ๋ ์ด๋ธก์ ์ฐจ๋ฅผ ์ ๊ณฑํด ๊ทธ ์ดํฉ์ ๊ตฌํ๋ค. ์ค์ฐจ๊ฐ ์์์๋ก ์ ๋ต์ ๊ฐ๊น๋ค.
def sum_squares_error(y,t):
return 0.5* np.sum((y-t)**2)
sum_squares_error(np.array(y),ap.array(t))
๊ต์ฐจ ์ํธ๋กํผ ์ค์ฐจ
log๋ ๋ฐ์ด e์ธ ์์ฐ๋ก๊ทธ๋ก, ์ค์ง์ ์ผ๋ก ์ ๋ต์ผ ๋ ์ถ์ ์ ์์ฐ๋ก๊ทธ๋ฅผ ๊ณ์ฐํ๋ ์์ด๋ค.
def cross_entropy_error(y,t):
delta= 1e-7
return -np.sum(t * np.log(y+delta))
์์ฃผ์์ ๋ธํ๊ฐ์ ๋ํ ์ด์ ๋ np.log()์ 0์ด ๋ค์ด๊ฐ๋ฉด -inf ๊ฐ์ด ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
ํ๋ จ ๋ฐ์ดํฐ ๋ชจ๋์ ๋ํ ์์คํจ์์ ํฉ์ ๊ณ์ฐํ๋ ค๋ฉด ์๊ฐ์ด ์ข ๊ฑธ๋ฆฌ๊ธฐ์ ์ผ๋ถ๋ง ํ์ตํ๋ ๋ฏธ๋๋ฐฐ์น ํ์ต์ ์งํํ๋ค.
np.random.choice(60000,10)๋ก ๋ฌด์์๋ก ๋ค์ด๊ฐ ์ธ๋ฑ์ค๋ฅผ ๋ฝ์ ์ ์๋ค. 0์ด์ 60000๋ฏธ๋ง ์ค 10๊ฐ ์ซ์
'๋ฅ๋ฌ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๊ฒฝ๋ง์์์ ๊ฒฝ์ฌํ๊ฐ๋ฒ ๊ตฌํ (0) | 2022.12.10 |
---|---|
์ ๊ฒฝ๋ง ์ถ๋ ฅ์ธต ๊ตฌํ (0) | 2022.12.10 |
๋ฅ๋ฌ๋์ ์ํ ๋ํ์ด ๋ค์ฐจ์ ํ๋ ฌ (1) | 2022.12.10 |
ํ์ฑํํจ์ - ์๊ทธ๋ชจ์ด๋ ํจ์, ๊ณ๋จ ํจ์, ReLu ํจ์ (0) | 2022.12.09 |