๐Ÿ’ป My Work/๐Ÿง  AI

[์ธ๊ณต์ง€๋Šฅ/ํ˜ผ๊ณต๋จธ์‹ ] 07-1. ์ธ๊ณต ์‹ ๊ฒฝ๋ง (2)

Jaeseo Kim 2023. 1. 1. 23:51

๐Ÿšฉ ๋”ฅ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์‹ ๊ฒฝ๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ดํ•ดํ•˜๊ณ  ํ…์„œํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ„๋‹จํ•œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.

 

 

[์ธ๊ณต์ง€๋Šฅ/ํ˜ผ๊ณต๋จธ์‹ ] 07-1. ์ธ๊ณต ์‹ ๊ฒฝ๋ง (1)

๐Ÿšฉ ๋”ฅ๋Ÿฌ๋‹๊ณผ ์ธ๊ณต ์‹ ๊ฒฝ๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ดํ•ดํ•˜๊ณ  ํ…์„œํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ„๋‹จํ•œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค. ํŒจ์…˜ MNIST ๋ฐ์ดํ„ฐ์…‹ ๐Ÿ‘• ๋”ฅ๋Ÿฌ๋‹์—์„œ๋Š” MNIST ๋ฐ์ดํ„ฐ์…‹์ด ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ MNIST : ์†์œผ

avoc-o-d.tistory.com

 

์ธ๊ณต ์‹ ๊ฒฝ๋ง (= ๋”ฅ๋Ÿฌ๋‹)

ํŒจ์…˜ ์•„์ดํ…œ ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์œผ๋กœ ํ‘œํ˜„ํ•ด๋ณด์ž๋ฉด, ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€๋ฅผ ํ‘œํ˜„ํ•œ ๊ทธ๋ฆผ๊ณผ ๋งค์šฐ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

โœจ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ์ธต 1๊ฐœ๊ฐ€ ์žˆ๋Š” ์‹ ๊ฒฝ๋ง์ž…๋‹ˆ๋‹ค.

ํŒจ์…˜ ์•„์ดํ…œ ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์œผ๋กœ ํ‘œํ˜„

  • 10๊ฐœ์˜ ํŒจ์…˜ ์•„์ดํ…œ ํด๋ž˜์Šค : 10๊ฐœ์˜ ๋‰ด๋Ÿฐ
  • z_ํ‹ฐ์…”์ธ , z_๋ฐ”์ง€, ... : z1, z2, ...
  • ํ”ฝ์…€1, ํ”ฝ์…€2, ... : x1, x2, ...
  • z1์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด x1์— ๊ณฑํ•ด์ง€๋Š” ๊ฐ€์ค‘์น˜ w1,1, z2๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด x1์— ๊ณฑํ•ด์ง€๋Š” ๊ฐ€์ค‘์น˜ w1,2, ...
    • ๊ฐ ์œ ๋‹›์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ๊ฐ ๋‹ค๋ฅธ ๊ฐ€์ค‘์น˜๊ฐ€ ๊ณฑํ•ด์ง.
    • b1, b2, ... ์ ˆํŽธ์€ ๊ผญ ๋”ํ•ด์ง€๊ธด ํ•˜์ง€๋งŒ, ๋งค๋ฒˆ ํ‘œ๊ธฐํ•˜๊ธฐ ๊ท€์ฐฎ์œผ๋‹ˆ ์ƒ๋žตํ•˜๊ธฐ๋„ ํ•จ
๐Ÿ“Œ ์ถœ๋ ฅ์ธต : z1~z10 ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์˜ˆ์ธก
๐Ÿ“Œ ์ž…๋ ฅ์ธต : ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด, ๊ณ„์‚ฐ ์ˆ˜ํ–‰ ์•ˆ ํ•จ
๐Ÿ“Œ ๋‰ด๋Ÿฐ : z ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋‹จ์œ„
โ–ถ๏ธ ์œ ๋‹›(unit)์ด๋ผ๊ณ  ๋” ๋งŽ์ด ๋ถˆ๋ฆผ (๋‰ด๋Ÿฐ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์€ ์„ ํ˜• ๊ณ„์‚ฐ๋ฐ–์— ์—†์–ด์„œ)

 

๋งค์ปฌ๋Ÿฌ-ํ”ผ์ธ  ๋‰ด๋Ÿฐ

์ธ๊ณต ์‹ ๊ฒฝ๋ง์€ 1943๋…„ ์›Œ๋Ÿฐ ๋งค์ปฌ๋Ÿฌ์™€ ์œŒํ„ฐ ํ”ผ์ธ ๊ฐ€ ์ œ์•ˆํ•œ ๋‰ด๋Ÿฐ ๋ชจ๋ธ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ธ๊ณต ๋‰ด๋Ÿฐ์€ ์ƒ๋ฌผํ•™์  ๋‰ด๋Ÿฐ์œผ๋กœ๋ถ€ํ„ฐ ์˜๊ฐ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๋ชจ์–‘๋งŒ ๋ณธ๋œฌ ์ˆ˜ํ•™ ๋ชจ๋ธ์— ๋ถˆ๊ณผํ•  ๋ฟ!! ์„œ๋กœ ํ•˜๋Š” ์ผ์€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ!!!

 

์งš์–ด๊ฐ€๊ธฐ~

๐Ÿ“Œ ๋”ฅ๋Ÿฌ๋‹ = ์ธ๊ณต์‹ ๊ฒฝ๋ง
์‹ฌ์ธต ์‹ ๊ฒฝ๋ง(deep neural network, DNN)์„ ๋”ฅ๋Ÿฌ๋‹์ด๋ผ๊ณ  ๋ถ€๋ฆ„
์‹ฌ์ธต ์‹ ๊ฒฝ๋ง์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธต์„ ๊ฐ€์ง„ ์ธ๊ณต ์‹ ๊ฒฝ๋ง

 

 

ํ…์„œํ”Œ๋กœ์™€ ์ผ€๋ผ์Šค

ํ…์„œํ”Œ๋กœ๋Š” ๊ตฌ๊ธ€์ด 2015๋…„ 11์›” ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

 

๐Ÿค” ์™œ ์“ฐ์ง€?

๐Ÿ’ก ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์„ ์‚ฌ์šฉํ•œ ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€ ๋ชจ๋ธ์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์ธ๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์•˜์ฃ ! ๊ทธ๋Ÿผ ์ด๋Œ€๋กœ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์„ ๋งŒ๋“ค์–ด๋„ ์„ฑ๋Šฅ์ด ์ข‹์•„์ง€์ง„ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿค” ๊ทธ๋Ÿผ ์–ด์ฉŒ์ง€?

๐Ÿ’ก ์ธ๊ณต ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ SGDClassifier ์— ์—†๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ธ๊ธฐ๊ฐ€ ๋†’์€ ๋”ฅ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ํ…์„œํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

 

๋”ฅ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋‹ค๋ฅธ ์  ์ค‘ ํ•˜๋‚˜๋Š” ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ์žฅ์น˜์ธ GPU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์„ ํ›ˆ๋ จํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

GPU๋Š” ๋ฒกํ„ฐ์™€ ํ–‰๋ ฌ ์—ฐ์‚ฐ์— ๋งค์šฐ ์ตœ์ ํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ณฑ์…ˆ๊ณผ ๋ง์…ˆ์ด ๋งŽ์ด ์ˆ˜ํ–‰๋˜๋Š” ์ธ๊ณต ์‹ ๊ฒฝ๋ง์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

ํ•œํŽธ, ํ…์„œํ”Œ๋กœ๊ฐ€ ๊ณต๊ฐœ๋˜๊ธฐ ์ „์— ์”จ์•„๋…ธ๋ผ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  GPU ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ๋ชจ๋ธ ๊ตฌํ˜„์ด ๊นŒ๋‹ค๋กœ์› ๋˜ ํƒ“์—, ํ”„๋ž‘์†Œ์™€ ์ˆ„๋ ˆ๊ฐ€ ๋ž˜ํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Wrapper library)๋กœ ์ผ€๋ผ์Šค๋ผ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์ผ€๋ผ์Šค๋Š” ์ง์ ‘ GPU ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  GPU ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์”จ์•„๋…ธ)๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋” ๋‚˜์•„๊ฐ€ ์”จ์•„๋…ธ ๋ง๊ณ ๋„, ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ…์„œํ”Œ๋กœ๋ผ๋Š” ๊ฒƒ์ด์ฃ !!! ์ด๋Ÿฌํ•œ ์ผ€๋ผ์Šค๋ฅผ ๋ฉ€ํ‹ฐ-๋ฐฑ์—”๋“œ ์ผ€๋ผ์Šค๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

โ–ถ๏ธ ์ผ€๋ผ์Šค API๋งŒ ์ตํžˆ๋ฉด ๋‹ค์–‘ํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ๊ณจ๋ผ์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์”€! ๊ทธ๋ž˜์„œ, ์ด๋ฅผ ์œ„ํ•ด ์ผ€๋ผ์Šค๋Š” ์ง๊ด€์ ์ด๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ๊ณ ์ˆ˜์ค€ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿค” ๊ทธ๋Ÿผ ์™œ ํ…์„œํ”Œ๋กœ์™€ ์ผ€๋ผ์Šค๊ฐ€ ๊ฑฐ์˜ ๋™์˜์–ด๊ฐ€ ๋˜์—ˆ์„๊นŒ?

๐Ÿ’ก ํ”„๋ž‘์†Œ์™€๊ฐ€ ๊ตฌ๊ธ€์— ํ•ฉ๋ฅ˜ํ•œ ๋’ค ํ…์„œํ”Œ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ผ€๋ผ์Šค API๊ฐ€ ๋‚ด์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์„œํ”Œ๋กœ 2.0๋ถ€ํ„ฐ๋Š” ์ผ€๋ผ์Šค API๋ฅผ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€ ๊ณ ์ˆ˜์ค€ API๋ฅผ ์ •๋ฆฌํ–ˆ๊ณ , ๊ฒฐ๊ตญ ์ผ€๋ผ์Šค๋Š” ํ…์„œํ”Œ๋กœ์˜ ํ•ต์‹ฌ API๊ฐ€ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ–ˆ๋˜ ๋ฉ€ํ‹ฐ-๋ฐฑ์—”๋“œ ์ผ€๋ผ์Šค๋Š” 2.3.1 ๋ฒ„์ „ ์ดํ›„๋กœ ๊ฐœ๋ฐœ์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.

โ–ถ๏ธ ํ…์„œํ”Œ๋กœ ์“ด๋‹ค -> ์ผ€๋ผ์Šค API ์“ด๋‹ค

 

import tensorflow as tf
from tensorflow import keras

 

 

๐Ÿ“Œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์œผ๋กœ ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

์ผ€๋ผ์Šค API ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŒจ์…˜ ์•„์ดํ…œ์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค!

 

๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€์—์„œ๋Š” ๊ต์ฐจ ๊ฒ€์ฆ์„ ์‚ฌ์šฉํ•ด ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ–ˆ์ง€๋งŒ, ์ธ๊ณต ์‹ ๊ฒฝ๋ง์—์„œ๋Š” ๊ต์ฐจ ๊ฒ€์ฆ์„ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ฒ€์ฆ ์„ธํŠธ๋ฅผ ๋ณ„๋„๋กœ ๋œ์–ด๋‚ด์–ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿค” ์™œ?

๐Ÿ’ก 1. ๋”ฅ๋Ÿฌ๋‹ ๋ถ„์•ผ์˜ ๋ฐ์ดํ„ฐ์…‹์€ ์ถฉ๋ถ„ํžˆ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ฆ ์ ์ˆ˜๊ฐ€ ์•ˆ์ •์ ์ด์–ด์•ผ ํ•จ.
      2.
๊ต์ฐจ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์—๋Š” ํ›ˆ๋ จ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆผ.

from sklearn.model_selection import train_test_split
train_scaled, val_scaled, train_target, val_target = train_test_split(
	train_scaled, train_target, test_size=0.2, random_state=42)

 

ํ›ˆ๋ จ ์„ธํŠธ์—์„œ 20%๋ฅผ ๊ฒ€์ฆ ์„ธํŠธ๋กœ ๋œ์–ด ๋ƒˆ์Šต๋‹ˆ๋‹ค! ํฌ๊ธฐ๋ฅผ ๋ณผ๊นŒ์š”?

ํ›ˆ๋ จ ์„ธํŠธ, ๊ฒ€์ฆ ์„ธํŠธ ํฌ๊ธฐ

60,000๊ฐœ ์ค‘์— 12,000๊ฐœ๊ฐ€ ๊ฒ€์ฆ ์„ธํŠธ๋กœ ๋ถ„๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ, ํ›ˆ๋ จ ์„ธํŠธ๋กœ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ  ๊ฒ€์ฆ ์„ธํŠธ๋กœ ํ›ˆ๋ จํ•œ ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋จผ์ €, ์ธ๊ณต ์‹ ๊ฒฝ๋ง ๊ทธ๋ฆผ์˜ ์˜ค๋ฅธ์ชฝ์— ๋†“์ธ ์ธต์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

์ด ์ธต์€ ์•„๋ž˜์ฒ˜๋Ÿผ 10๊ฐœ์˜ ํŒจ์…˜ ์•„์ดํ…œ์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด 10๊ฐœ์˜ ๋‰ด๋Ÿฐ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

10๊ฐœ์˜ ํŒจ์…˜ ์•„์ดํ…œ์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•œ ์ธ๊ณต ์‹ ๊ฒฝ๋ง

๐Ÿ“๋ฐ€์ง‘์ธต(deep layer)

์ผ€๋ผ์Šค์˜ ๋ ˆ์ด์–ด ํŒจํ‚ค์ง€ ์•ˆ์—๋Š” ๋‹ค์–‘ํ•œ ์ธต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์ธต์€ ๋ฐ€์ง‘์ธต์ž…๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฐ ํ”ฝ์…€๊ณผ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋‰ด๋Ÿฐ์ด ๋ชจ๋‘ ์—ฐ๊ฒฐ๋œ ์„ ์ด ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ,,, ๋งค์šฐ ๋นฝ๋บตํ•˜์ฃ !

ํ”ฝ์…€ ๊ฐœ์ˆ˜ x ๋‰ด๋Ÿฐ ๊ฐœ์ˆ˜ = ์—ฐ๊ฒฐ๋œ ์„  ๊ฐœ์ˆ˜

โ–ถ๏ธ ์šฐ๋ฆฌ ์˜ˆ์ œ๋กœ๋Š”, 784 x 10 = 7,840

์ถœ์ฒ˜ : http://wiki.hash.kr/index.php/%EC%88%9C%EC%A0%84%ED%8C%8C

 

๐Ÿ“์™„์ „ ์—ฐ๊ฒฐ์ธต (fully connected layer)

์ด๋Ÿฐ ์ธต์„ ์–‘์ชฝ์˜ ๋‰ด๋Ÿฐ์ด ๋ชจ๋‘ ์—ฐ๊ฒฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ ์—ฐ๊ฒฐ์ธต์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ผ€๋ผ์Šค์˜ ํด๋ž˜์Šค Dense : ๋ฐ€์ง‘์ธต ๋งŒ๋“ฆ
- ๋งค๊ฐœ๋ณ€์ˆ˜
01. ๋‰ด๋Ÿฐ ๊ฐœ์ˆ˜
02. activation : ๋‰ด๋Ÿฐ์˜ ์ถœ๋ ฅ์— ์ ์šฉํ•  ํ•จ์ˆ˜,
03. input_shape : ์ž…๋ ฅ์˜ ํฌ๊ธฐ
dense = keras.layers.Dense(10, activation="softmax", input_shape=(784,))
  • 10๊ฐœ์˜ ํŒจ์…˜ ์•„์ดํ…œ์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‰ด๋Ÿฐ ๊ฐœ์ˆ˜๋ฅผ 10๊ฐœ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • 10๊ฐœ์˜ ๋‰ด๋Ÿฐ์—์„œ ์ถœ๋ ฅ๋˜๋Š” ๊ฐ’์„ ํ™•๋ฅ ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์†Œํ”„ํŠธ๋งฅ์Šค ํ•จ์ˆ˜(๋‹ค์ค‘ ๋ถ„๋ฅ˜)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    ์ฐธ๊ณ ) ๋งŒ์•ฝ 2๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ด์ง„ ๋ถ„๋ฅ˜๋ผ๋ฉด ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.  activation="sigmoid"
  • 10๊ฐœ์˜ ๋‰ด๋Ÿฐ์ด ๊ฐ๊ฐ ๋ช‡ ๊ฐœ์˜ ์ž…๋ ฅ์„ ๋ฐ›๋Š”์ง€ ํŠœํ”Œ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์‹ ๊ฒฝ๋ง ์ธต์„ ๋งŒ๋“ค์—ˆ๋„ค์š”!! ์ด์ œ ์ด ๋ฐ€์ง‘์ธต์„ ๊ฐ€์ง„ ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ผ€๋ผ์Šค์˜ ํด๋ž˜์Šค Sequential : ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ ๋งŒ๋“ฆ
model = keras.Sequential(dense)

์‹ ๊ฒฝ ๋ชจ๋ธ๋ง

๐Ÿ“ํ™œ์„ฑํ™” ํ•จ์ˆ˜

  • ์†Œํ”„ํŠธ๋งฅ์Šค์™€ ๊ฐ™์ด ๋‰ด๋Ÿฐ์˜ ์„ ํ˜• ๋ฐฉ์ •์‹ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ์— ์ ์šฉ๋˜๋Š” ํ•จ์ˆ˜
  • a๋กœ ํ‘œ๊ธฐ

 

์ด๋ ‡๊ฒŒ ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค! ์ด์ œ ํ›ˆ๋ จ์„ ํ•ด์•ผ๊ฒ ์ฃ  ๐Ÿ˜

๊ทธ๋Ÿผ ๋‹ค์Œ ๊ธ€์—์„  ์ผ€๋ผ์Šค ๋ชจ๋ธ์„ ํ›ˆ๋ จ์‹œํ‚จ ํ›„, ํŒจ์…˜ ์•„์ดํ…œ์„ ๋ถ„๋ฅ˜ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!! ๐Ÿฆ•๐Ÿฆ•๐Ÿฆ•

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.