๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/AI, ๋”ฅ๋Ÿฌ๋‹

FNN์ด๋ž€? Keras, TensorFlow, PyTorch๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ดˆ

by ๐Ÿ”ฅ๊นก ๋‹ค ๊ณ ! 2025. 4. 11.

 

๋”ฅ๋Ÿฌ๋‹์„ ์‹œ์ž‘ํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ๋ฐฐ์šฐ๋Š” ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜๊ฐ€ FNN(Feedforward Neural Network)์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„  Keras, TensorFlow, PyTorch์™€ ๊ฐ™์€ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž…๋ฌธ์ž์—๊ฒŒ๋Š” ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์จ์•ผ ํ• ์ง€, ์ด๋“ค์ด ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” FNN์˜ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ 3์ข…์˜ ํŠน์ง•, ์žฅ๋‹จ์ , ์„ ํƒ ๊ฐ€์ด๋“œ๋ฅผ ํ•œ๋ˆˆ์— ์ •๋ฆฌํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.


1. FNN(Feedforward Neural Network)์ด๋ž€?

FNN์€ ํ”ผ๋“œํฌ์›Œ๋“œ ์‹ ๊ฒฝ๋ง์œผ๋กœ, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ์˜ ์ธ๊ณต ์‹ ๊ฒฝ๋ง์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ์ธต → ์€๋‹‰์ธต → ์ถœ๋ ฅ์ธต ์ˆœ์„œ๋กœ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅด๋ฉฐ, ์ˆœํ™˜์ด๋‚˜ ํ”ผ๋“œ๋ฐฑ์€ ์—†์Šต๋‹ˆ๋‹ค.
FNN์€ ์ฃผ๋กœ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜, ์ˆซ์ž ์ธ์‹, ํšŒ๊ท€ ๋ฌธ์ œ ๋“ฑ์—์„œ ๊ธฐ์ดˆ ํ•™์Šต์šฉ์œผ๋กœ ํ™œ์šฉ๋˜๋ฉฐ, ๋”ฅ๋Ÿฌ๋‹ ์ž…๋ฌธ์ž๋“ค์ด ๊ฐ€์žฅ ๋จผ์ € ๊ตฌํ˜„ํ•˜๋Š” ์‹ ๊ฒฝ๋ง์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

2. Keras ํ”„๋ ˆ์ž„์›Œํฌ

Keras๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์ˆ˜์ค€(high-level) API์ž…๋‹ˆ๋‹ค. TensorFlow ์œ„์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ด๋ผ ์ดˆ๋ณด์ž์—๊ฒŒ ๋งค์šฐ ์นœ์ˆ™ํ•ฉ๋‹ˆ๋‹ค.

  • โœ” ์ฝ”๋“œ๊ฐ€ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ 
  • โœ” ํ…์„œํ”Œ๋กœ์šฐ์™€ ํ†ตํ•ฉ๋˜์–ด ์žˆ์Œ (tf.keras)
  • โœ– ๋ณต์žกํ•œ ๋ชจ๋ธ ๊ตฌํ˜„์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Œ

3. TensorFlow ํ”„๋ ˆ์ž„์›Œํฌ

TensorFlow๋Š” ๊ตฌ๊ธ€์—์„œ ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ์†Œ์Šค ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์ •ํ˜• ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ƒ์‚ฐ ํ™˜๊ฒฝ ๋ฐฐํฌ, ๋ชจ๋ฐ”์ผ ๊ตฌํ˜„, TPU ์ง€์› ๋“ฑ์—์„œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ, Keras๋Š” TensorFlow์˜ ์ผ๋ถ€๋กœ ํ†ตํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • โœ” ๋Œ€๊ทœ๋ชจ ํ•™์Šต ๋ฐ ์„œ๋น„์Šค์— ๊ฐ•ํ•จ
  • โœ” ์„œ๋น™/๋ชจ๋ฐ”์ผ/TPU ๋“ฑ ๋ฐฐํฌ ์ตœ์ ํ™”
  • โœ– ๋‚ฎ์€ ์ˆ˜์ค€์˜ API๋Š” ๋‹ค์†Œ ๋ณต์žก

4. PyTorch ํ”„๋ ˆ์ž„์›Œํฌ

PyTorch๋Š” Facebook์—์„œ ๊ฐœ๋ฐœํ•œ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์œ ์—ฐํ•œ ๊ตฌ์กฐ์™€ ์ง๊ด€์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐฉ์‹์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฐ๊ตฌ์ž์™€ ํ•™๊ณ„์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๋™์  ๊ทธ๋ž˜ํ”„(dynamic graph) ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต ๊ตฌ์กฐ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • โœ” ๋””๋ฒ„๊น…์ด ์‰ฝ๊ณ  ํ•™์Šต ๊ตฌ์กฐ๊ฐ€ ์ง๊ด€์ 
  • โœ” ์—ฐ๊ตฌ ๋ฐ ์‹คํ—˜์šฉ์œผ๋กœ ์œ ๋ฆฌ
  • โœ– ๋ฐฐํฌ ๋ฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์€ TF๋ณด๋‹ค ๋œ ์œ ๋ฆฌ

5. ํ”„๋ ˆ์ž„์›Œํฌ ์„ ํƒ ๊ฐ€์ด๋“œ

๊ตฌ๋ถ„ Keras TensorFlow PyTorch
ํ•™์Šต ๋‚œ์ด๋„ โ˜…โ˜†โ˜† (๋งค์šฐ ์‰ฌ์›€) โ˜…โ˜…โ˜† โ˜…โ˜…โ˜†
์—ฐ๊ตฌ ์ ํ•ฉ๋„ ์ค‘ ์ค‘ ๋†’์Œ
๋ฐฐํฌ ์ ํ•ฉ๋„ ์ค‘ ๋†’์Œ ๋‚ฎ์Œ
์ธ๊ธฐ ๋†’์Œ ๋†’์Œ ๋งค์šฐ ๋†’์Œ

6. ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

๋”ฅ๋Ÿฌ๋‹ ์ž…๋ฌธ์ž๋ผ๋ฉด ๋จผ์ € FNN๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  Keras๋‚˜ PyTorch๋ฅผ ํ™œ์šฉํ•ด ๊ฐ„๋‹จํ•œ ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Keras๋Š” ๋น ๋ฅด๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ณ , PyTorch๋Š” ์—ฐ๊ตฌ์™€ ์‹คํ—˜์— ์œ ๋ฆฌํ•˜๋ฉฐ, TensorFlow๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์™€ ๋ฐฐํฌ์— ๊ฐ•๋ ฅํ•œ ์žฅ์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

์ž์‹ ์˜ ๋ชฉ์ ๊ณผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”.