์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
TensorFlow์—์„œ ๋„˜์–ด์˜ด
1. ๊ฐœ์š”2. ํŠน์ง•
2.1. ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด CPU/GPU ๋ชจ๋“œ๋กœ ๋™์ž‘2.2. Tensorflow Lite
3. ๊ด€๋ จ ๊ฐ•์ขŒ ์‚ฌ์ดํŠธ ๋ฐ ์ฐธ์กฐ ์‚ฌ์ดํŠธ4. ์‘์šฉ ์‚ฌ๋ก€5. Keras6. ๊ด€๋ จ ๋ฌธ์„œ7. VS ํŒŒ์ดํ† ์น˜

TensorFlow

1. ๊ฐœ์š”[ํŽธ์ง‘]

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

๋”ฅ๋Ÿฌ๋‹๊ณผ ๊ธฐ๊ณ„ํ•™์Šต ๋ถ„์•ผ๋ฅผ ์ผ๋ฐ˜์ธ๋“ค๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค. 2016๋…„ ์•ŒํŒŒ๊ณ ์™€ ํ•จ๊ป˜ ํ•œ๊ตญ์—์„œ๋„ ๊ด€์‹ฌ์ด ๋†’์•„์ง„ ์ถ”์„ธ์ด๋ฉฐ ๊ด€๋ จ ์ปจํผ๋Ÿฐ์Šค๋“ค๋„ ๊ฐœ์ตœ๋˜๊ณ  ์žˆ๋‹ค.

ํ•˜์ด ๋ ˆ๋ฒจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์•Œ๋ ค์ง„ Python์„ ํ™œ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๋„ ๋Œ€๋ถ€๋ถ„ ์ง€์›ํ•˜์ง€๋งŒ Python ๊ด€๋ จ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋งŽ๋‹ค. ๋•Œ๋ฌธ์— ๊ณต๊ฐœ๋œ ์ง€ ๊ทธ๋ฆฌ ์˜ค๋ž˜๋˜์ง€ ์•Š์•˜์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ…์„œํ”Œ๋กœ์šฐ๊ฐ€ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

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

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

2. ํŠน์ง•[ํŽธ์ง‘]

ํ…์„œํ”Œ๋กœ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.
  • ๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•œ ํ’๋ถ€ํ•œ ํ‘œํ˜„๋ ฅ
  • ์•„์ด๋””์–ด ํ…Œ์ŠคํŠธ์—์„œ ์„œ๋น„์Šค ๋‹จ๊ณ„๊นŒ์ง€ ์ด์šฉ ๊ฐ€๋Šฅ
  • ๊ณ„์‚ฐ ๊ตฌ์กฐ์™€ ๋ชฉํ‘œ ํ•จ์ˆ˜๋งŒ ์ •์˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ฏธ๋ถ„ ๊ณ„์‚ฐ์„ ์ฒ˜๋ฆฌ
  • Python, C++, Go, Java, R[1]์„ ์ง€์›ํ•˜๋ฉฐ, SWIG๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์–ธ์–ด ์ง€์› ๊ฐ€๋Šฅ

2.1. ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด CPU/GPU ๋ชจ๋“œ๋กœ ๋™์ž‘[ํŽธ์ง‘]

๊ณต๊ฐœ๋œ ๋ฒ„์ „์€ ์ผ๋ฐ˜ ๋ฒ„์ „๊ณผ GPU ๊ฐ€์† ๋ฒ„์ „ ๋‘ ๊ฐ€์ง€์ด๋‹ค. ์ผ๋ฐ˜ ๋ฒ„์ „์€ ์–ด๋–ค ์ปดํ“จํ„ฐ์—์„œ๋“  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
GPU ๊ฐ€์† ๋ฒ„์ „์€ GPGPU๋ฅผ ์‚ฌ์šฉํ•ด ๋Œ€๋Ÿ‰ ์—ฐ์‚ฐ์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค. ํ˜„์žฌ NVIDIA์˜ GPGPU ์–ธ์–ด์ธ CUDA๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— NVIDIA ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๊ฐ€ ์—†์œผ๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค[2]. GPU ๊ฐ€์† ๋ฒ„์ „์˜ ์„ฑ๋Šฅ์€ CPU ์„ฑ๋Šฅ๊ณผ๋Š” ๋ณ„ ๊ด€๊ณ„๊ฐ€ ์—†๊ณ  GPU ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜๋‹ค. CUDA ๋“œ๋ผ์ด๋ฒ„์™€ cuDNN ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์„ค์น˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

๊ทธ ์™ธ์— ๊ตฌ๊ธ€์ด ์ž์‚ฌ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฒ„์ „๋„ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์€ ๊ตฌ๊ธ€์ด ์ž์ฒด๊ฐœ๋ฐœํ•œ AI ๊ฐ€์† ํ•˜๋“œ์›จ์–ด์ธ TPU(Tensor Processing Unit) ์œ„์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธํ…” ์ œ์˜จ์ด๋‚˜ ์—”๋น„๋””์•„ ํ…Œ์Šฌ๋ผ๋ณด๋‹ค๋„ 15~30๋ฐฐ ๋” ๋น ๋ฅด๋‹ค.


TensorFlow 2.0์ด ์ถœ์‹œ๋˜๋ฉด์„œ CPU ๋ฒ„์ „๊ณผ GPU ๋ฒ„์ „์ด ํ†ตํ•ฉ๋˜์—ˆ๋‹ค. CUDA ํ™˜๊ฒฝ ์„ค์น˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋˜์—ˆ๋‹ค๋ฉด ์ž๋™์œผ๋กœ GPU๋ฅผ ์ธ์‹ํ•ด์ค€๋‹ค.

2.2. Tensorflow Lite[ํŽธ์ง‘]


TensorFlow๋กœ ํ›ˆ๋ จํ•œ ๋ชจ๋ธ์„ ์•ˆ๋“œ๋กœ์ด๋“œ๋‚˜ iOS, ๋˜๋Š” ๋” ์ž‘์€ ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ๊ฐ™์€ ๊ฑฐ์—๋‹ค๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ๊ฒฝ์šฐ, ์ด .tflite ํŒŒ์ผ์„ ์ง์ ‘ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ MLKit๋“ฑ์„ ํ™œ์šฉํ•ด ์ข€ ๋” ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ์œ„ํ•ด ResNet50์„ ํ›ˆ๋ จํ–ˆ๋‹ค๋ฉด, model ์— ํ•ด๋‹น tflite ํŒŒ์ผ์„ ์„ค์ •ํ•˜๊ณ , ์ด๋ฏธ์ง€๋ฅผ 1*224*224*3 ์‚ฌ์ด์ฆˆ์˜ ๋น„ํŠธ๋งต์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๊ฐ RGB ๊ฐ’์— 255๋ฅผ ๋‚˜๋ˆ ์„œ preprocessํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ด ํŒŒ์ผ์„ ๋ชจ๋ธ์— inputํ•˜๋ฉด ๊ฐ label ๋ณ„๋กœ ์˜ˆ์ธกํ•œ ํ™•๋ฅ ์˜ array๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, ์—ฌ๊ธฐ๋‹ค๊ฐ€ argmax ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ prediction ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค.

์ž์„ธํ•œ๊ฑด TfLite ๊ณต์‹ ๋ฌธ์„œ์™€ MLKit ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐ.

3. ๊ด€๋ จ ๊ฐ•์ขŒ ์‚ฌ์ดํŠธ ๋ฐ ์ฐธ์กฐ ์‚ฌ์ดํŠธ[ํŽธ์ง‘]

4. ์‘์šฉ ์‚ฌ๋ก€[ํŽธ์ง‘]


์ด๊ฒƒ๋“ค์€ ๊ฐ„๋‹จ ์˜ˆ์ œ ์ˆ˜์ค€์ด๊ณ , ์ „๋ฌธ ์ง€์‹์ด ๊ฒฐํ•ฉ๋˜๋ฉด ํ›จ์”ฌ ๋” ๋งŽ์€ ์ผ๋“ค์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฅ๋Ÿฌ๋‹์€ ์•„์ง ํ•™๋ฌธ์  ์ฒด๊ณ„๊ฐ€ ์ •๋ฆฝ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ์ข… ์‚ฌ๋ก€๋ฅผ ์ฐพ์•„๋ณด๋Š” ๊ฒƒ ๋งŒํผ์ด๋‚˜ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฒŒ ๋” ๋น ๋ฅด๋‹ค.

์ด๋ฃจ๋‹ค(์ธ๊ณต์ง€๋Šฅ)์—๋„ ์‘์šฉ๋˜์—ˆ๋‹ค!ํ•‘ํํŒ€ ๋ธ”๋กœ๊ทธ

5. Keras[ํŽธ์ง‘]

์ผ€๋ผ์Šค(Keras)๋Š” TensorFlow, Theano, CNTK ๋“ฑ ๋”ฅ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋‹ค์ธต ํผ์…‰ํŠธ๋ก  ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ, ์ปจ๋ณผ๋ฃจ์…˜ ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ, ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ, ์กฐํ•ฉ ๋ชจ๋ธ ๋“ฑ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

2017๋…„, ๊ตฌ๊ธ€์€ tensorflow 2.0 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ์ฝ”์–ด ๋ ˆ๋ฒจ์—์„œ Keras๋ฅผ ์ง€์› ํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๊ฒ ๋‹ค๊ณ  ๋ฐœํ‘œ ํ•˜์˜€๊ณ , ํ˜„์žฌ ๋ฐœํ‘œ๋œ Tensorflow 2.0 stable ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ์‚ฌ์‹ค์ƒ ์ „๋ถ€ Keras๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋™์ž‘ํ•˜๋„๋ก ๋ฐ”๋€Œ์—ˆ๋‹ค. ์‚ฌ์šฉ์ž์šฉ ํŠœํ† ๋ฆฌ์–ผ ํŽ˜์ด์ง€ 1.15 ๋ฒ„์ „๋ถ€ํ„ฐ deprecated ๋ชฉ๋ก์— ๋“ค์–ด๊ฐ€ ์žˆ๋˜ ์ž์ž˜ํ•œ API๊ฐ€ ๋Œ€๋ถ€๋ถ„ ์ •๋ฆฌ๋˜์—ˆ๊ณ , ์ต์ˆ™๋˜๋ฉด ์กฐ๊ธˆ ๋” ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋™์•ˆ ์ต์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด ์™”๋˜ ๋ชจ๋ธ์„ ๋งŒ๋“  ๋‹ค์Œ session์„ ๋งŒ๋“ค์–ด ๋™์ž‘ํ•˜๋Š” ๊ตฌ์กฐ์— ์ต์ˆ™ํ•˜๋˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฉ˜๋ถ•์„ ์ค€ ๊ฒƒ์€ ๋ค.

6. ๊ด€๋ จ ๋ฌธ์„œ[ํŽธ์ง‘]

7. VS ํŒŒ์ดํ† ์น˜[ํŽธ์ง‘]

๊ฐ€์žฅ ํŠน์ง•์ ์ธ ํŒŒ์ดํ† ์น˜์™€ ํ…์„œํ”Œ๋กœ์šฐ์˜ ์ฐจ์ด์ ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ํ…์„œํ”Œ๋กœ์šฐ๋Š” ๋” ์‰ฝ๊ฒŒ ๋‹ค๋ฅธ ์–ธ์–ด๋‚˜ ๋ชจ๋“ˆ์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํŒŒ์ดํ† ์น˜๋Š” ์กฐ๊ธˆ ๋” ํŒŒ์ด์ฌ ์–ธ์–ด์— ์นœํ™”์ ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ API ์‚ฌ์šฉ์ด ๋” ์‰ฝ๋‹ค. (๋ ˆ์ด์–ด ๋™์ž‘์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ ํ•˜๊ธฐ ๋” ์œ ์šฉํ•˜๋‹ค.) [4][5] ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฐ๊ตฌ์šฉ์ด๋ฉด ํŒŒ์ดํ† ์น˜, ๊ธฐ์—…์—์„œ ์ƒ์‚ฐํ•˜๊ฑฐ๋‚˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์›ํ•œ๋‹ค๋ฉด ํ…์„œํ”Œ๋กœ์šฐ๋ผ๊ณ ๋“ค ๋งํ•˜์ง€๋งŒ, ์ด๋Š” ์‹ค์ œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋“ฑ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋งŽ์€ ๋ฌธ์„œ๋“ค์ด ์ด์•ผ๊ธฐ ํ•˜๋“ฏ์ด ๋” '์ข‹์€' ํˆด์€ ์—†์œผ๋ฉฐ, ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ ์ ˆํ•˜๊ฒŒ ๋งž์ถฐ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ด๋‹ค.

ํŽ˜์ด์Šค๋ถ์ด ์„ ๋„ํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ดํ† ์น˜์— ๋น„ํ•ด ๋œ ์ง๊ด€์ ์ธ ํŽธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•„์‰ฝ๊ฒŒ๋„ ๊ตฌ๊ธ€์ด ๊ฐœ๋ฐœํ–ˆ๋‹ค๋Š” ์ด์œ  ํ•˜๋‚˜๋งŒ์ธ์ง€ ์‚ฌ์šฉ์ž์ˆ˜๊ฐ€ ์•„์ง๊นŒ์ง€ ํŒŒ์ดํ† ์น˜๋ณด๋‹ค ๋งŽ์•„ ๊ด€๋ จ ์ž๋ฃŒ๋ฅผ ์–ป๊ธฐ ์ˆ˜์›”ํ•˜๋‹ค. ํ•™๊ณ„์—์„œ๋Š” 2017๋…„๋ถ€ํ„ฐ ์ด๋ฏธ ํŒŒ์ดํ† ์น˜๊ฐ€ ํ…์„œํ”Œ๋กœ์šฐ๋ณด๋‹ค ๋” ๋งŽ์ด ์–ธ๊ธ‰๋˜๊ณ  ์žˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ…์„œํ”Œ๋กœ์šฐ์— ์ด๋ฏธ ์ต์ˆ™ํ•ด์ ธ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜ฎ๊ธฐ๊ธฐ ์‹ซ์–ดํ•œ๋‹ค๋Š” ์ด์œ ๋„ ๋ค. ๋งŒ์•ฝ ๋‹น์‹ ์ด ๋จธ์‹ ๋Ÿฌ๋‹์„ ๋ง‰ ์‹œ์ž‘ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋Š” ์ž…์žฅ์ด๋ผ๋ฉด ํŒŒ์ดํ† ์น˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ํŒŒ์ดํ† ์น˜๋Š” ํ…์„œํ”Œ๋กœ์šฐ์™€ ๋‹ฌ๋ฆฌ ํŽ˜์ด์Šค๋ถ์ด ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ํฌ๋Ÿผ์ด ์กด์žฌํ•œ๋‹ค. [6]


[1] R์˜ ๋Œ€ํ‘œ์ ์ธ ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ(IDE)์ธ RStudio๋ฅผ ํ†ตํ•ด ์—ฐ๋™๋˜์–ด ์žˆ๋‹ค.
[2] ๋กœ๋“œ๋งต์— ๋ฒ”์šฉ GPU ๊ฐ€์† ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, OpenCL์„ ์ง€์›ํ•  ์˜ˆ์ •์ด๋ผ๊ณ  ๋ฐœํ‘œํ–ˆ๋‹ค
[3] ๋ฌด๋ฃŒ๊ฐ•์ขŒ์ด๋‹ˆ ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋งŒ๋“ค์–ด๋ณด์ž. ๊ต์žฌ PDF