๋ณด๋ฆ„๋‹ฌ ๐ŸŒ #2.2 ๋จธ์‹ ๋Ÿฌ๋‹ - ์ง„ํ†ต์ œ ์ถ”์ฒœ (ํ•œ๊ธ€)

๋ณด๋ฆ„๋‹ฌยท2020๋…„ 11์›” 26์ผ
4

๋จธ์‹ ๋Ÿฌ๋‹ / Machine Learning

๋ชฉ๋ก ๋ณด๊ธฐ
3/4
post-thumbnail

1. ์„œ๋ก 

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

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

2. ๋ฐ์ดํ„ฐ์…‹


ย ย ย ์ ์ ˆํ•œ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ ์…‹์„ ์ฐพ์„ ์ˆ˜ ์—†์–ด ์ฆ์ƒ, ์‚ฌ์šฉ์ž์˜ ๊ฑด๊ฐ• ์ƒํƒœ์™€ ์ง„ํ†ต์ œ์— ๊ด€ํ•œ ์กฐ์‚ฌ ํ›„ 1521๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š” ์ธ์œ„์ ์ธ ๋ฐ์ดํ„ฐ์…‹์„ ๋งŒ๋“ค์—ˆ๋‹ค.

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

ย ย ย ย ํ—ˆ๋ฆฌ ํ†ต์ฆ, ์† ์“ฐ๋ฆผ, ๊ทน์‹ฌํ•œ ๊ณ ํ†ต, ์ƒ๋ฆฌ๋ถˆ์ˆœ, ๋ถ“๊ธฐ, ๋ฏธ์—ด, ๋‘ํ†ต, ๋ณตํ†ต, ๊ฒฝ๋ จ, ์‹ฌ๋ฆฌ์  ์ฆ์ƒ, ์„ค์‚ฌ, ๊ฐ„ ์ƒํƒœ, ์œ„์žฅ ์ƒํƒœ ๋“ฑ์„ ๊ณ ๋ คํ•ด ์ถ”์ฒœ ์•ฝ์„ ๋ถ„๋ฅ˜ํ•˜์˜€๋‹ค. ๊ฐ๊ฐ์˜ ์ฆ์ƒ ๋ฐ ์Œ์ฃผ ์—ฌ๋ถ€, ์œ„์žฅ์žฅ์•  ์—ฌ๋ถ€๋ฅผ boolean ํ˜•์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค. ์ถ”์ฒœ ์•ฝ์˜ ๊ฒฝ์šฐ, ์ธ์œ„์ ์ธ ๋ฐ์ดํ„ฐ ์…‹์ด๊ธฐ์— Feature Engineering ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋‹ค์Œ์˜ Pill Number๋กœ ๋‚˜ํƒ€๋ƒˆ๋‹ค.

Pill Number์ถ”์ฒœ ์•ฝ
1์Šคํ”ผ๋“œํŽœ ๋‚˜๋…ธ, ์ž์ด๋‚ , ์ด์ง€์—”
2์ด์ง€์—”6 ์ด๋ธŒ
3๊ทธ๋‚ ์—”
4์ด์ฆˆํŽœ
5์šฐ๋จผ์Šค ํƒ€์ด๋ ˆ๋†€
6์ด์ง€์—”6 ์ด๋ธŒ, ์ด๋ธŒํ ๋ ˆ์ด๋””
7์‹ธ์ด๋ฒ ๋ฆฐ
8๊ฒŒ๋ณด๋ฆฐ, ํŽœ์ž˜ํ, ์‚ฌ๋ฆฌ๋ˆ ์—์ด
9ํƒ์„ผ
10๋ถ€์Šค์ฝ”ํŒ ํ”Œ๋Ÿฌ์Šค
11๊ทธ๋‚ ์—” Q
12์ž์ด๋‚ 

3. ๋ฐฉ๋ฒ•๋ก 

๋‹ค์ค‘ ํด๋ž˜์Šค ๋ถ„๋ฅ˜(Multiclass Classification) ์•Œ๊ณ ๋ฆฌ์ฆ˜
3๊ฐœ ์ด์ƒ์˜ ์„ ํƒ์ง€ ์ค‘์—์„œ 1๊ฐœ๋ฅผ ๊ณ ๋ฅด๋Š” ๋‹ค์ค‘ ํด๋ž˜์Šค ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ์œ„ํ•œ ์†Œํ”„ํŠธ๋งฅ์Šค ํšŒ๊ท€(Softmax Regression) ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์› ํ•ซ ์ธ์ฝ”๋”ฉ(One-Hot Encoding)
๋‹จ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ True์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ False์ธ ์ธ์ฝ”๋”ฉ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 0์€ [1,0,0,0,0], 4๋Š” [0,0,0,0,1]๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ถ„๋ฅ˜ ๋ฌธ์ œ์—์„œ ์—ฐ์‚ฐ ํŽธ์˜์„ฑ, ๋‹ค์–‘ํ•œ ๋ชจ๋ธ ์ ์šฉ, ์ •ํ™•๋„ ํ–ฅ์ƒ ๋“ฑ์„ ์ด์œ ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ย ย ย ย ๋จธ์‹ ๋Ÿฌ๋‹์œผ๋กœ ํ•ด์•ผ ํ•  ๊ณผ์ œ๋Š” 14๊ฐœ์˜ ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ 12๊ฐœ์˜ Pill Number๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋•Œ๋ฌธ์— ๋‹ค์ค‘ ํด๋ž˜์Šค ๋ถ„๋ฅ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๋˜ํ•œ 1๋ถ€ํ„ฐ 12๊นŒ์ง€์˜ ์ •์ˆ˜๋กœ ํ‘œํ˜„๋œ Pill Number๋ฅผ 0๋ถ€ํ„ฐ 11์˜ ๋ผ๋ฒจ์„ ์ด์šฉํ•˜์—ฌ ์› ํ•ซ ์ธ์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ–ˆ๋‹ค.

ย ย ย ย ๋จธ์‹ ๋Ÿฌ๋‹์„ ์œ„ํ•ด์„œ tensorflow.js๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ์…‹์„ 70:30์˜ ๋น„์œจ๋กœ ํŠธ๋ ˆ์ด๋‹ ์…‹๊ณผ ํ…Œ์ŠคํŠธ ์…‹์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ณ , ํ…Œ์ŠคํŠธํ•˜์˜€๋‹ค.

4. ํ‰๊ฐ€ & ๋ถ„์„

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

ย ย ย ย Tensorflow์—์„œ epoch๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•™์Šตํ•˜๋Š” ํšŸ์ˆ˜, batch size๋Š” ํ•œ ๋ฒˆ์— ํ•™์Šตํ•  ๋ฐ์ดํ„ฐ์˜ ์ˆ˜, iteration์€ ํ•œ epoch์—์„œ batch๋ฅผ ํ•™์Šตํ•˜๋Š” ํšŸ์ˆ˜์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์…‹์€ ์ œํ•œ์ ์ด๊ธฐ์— 1 epoch๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ epoch๊ฐ€ ๊ณผ๋„ํ•˜๋ฉด ๊ณผ์ ํ•ฉ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด Epoch์™€ batch size ๋ณ„ loss value๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณด์•˜๋‹ค.

ย ย ย ย 400 epochs์™€ 32์˜ batch size๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ํŠธ๋ ˆ์ด๋‹๊ณผ ํ…Œ์ŠคํŠธ ๋ชจ๋‘์—์„œ 0.03์˜ loss value๋ฅผ ๊ธฐ๋กํ–ˆ๋‹ค.

5. ๊ด€๋ จ ์—ฐ๊ตฌ

  • tfjs-vis: ๋ธŒ๋ผ์šฐ์ €์—์„œ tensorflow๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๊ณผ์ •์„ ๊ทธ๋ ค์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. 4. ํ‰๊ฐ€ & ๋ถ„์„์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์˜€๋‹ค.
  • Machine Learning in JavaScript with TensorFlow.js.

6. ๊ฒฐ๋ก 

ย ย ย ย ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ†ตํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ชฉํ‘œํ–ˆ๋˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ณด๋ฆ„๋‹ฌ ์„œ๋น„์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ณ„ ์ง„ํ†ต์ œ๋ฅผ ์ถ”์ฒœํ•ด ์ค€๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ์•ฝ์„ ๋ณต์šฉํ•จ์œผ๋กœ์จ ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ํšจ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น ์ง„ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด NUGU speaker์˜ slot filling ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

ย ย ย ย ํ•œ ๊ฐ€์ง€ ์•„์‰ฌ์šด ์ ์€ ํ˜„์žฌ์˜ ๋ฐ์ดํ„ฐ ์…‹์ด ์ž„์˜๋กœ ๊ฐ€์ •๋œ ์ƒํ™ฉ์ด๋ผ๋Š” ์ ์ธ๋ฐ, ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์œ ์ง€ํ•˜๋ฉฐ ์‹ค์ œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด์™€ ํšจ๊ณผ ์—ฌ๋ถ€๋ฅผ ์ˆ˜์ง‘ํ•ด ๋”์šฑ ์ •ํ™•ํ•œ ๋ชจ๋ธ์ด ๋˜๋„๋ก ๋ฐœ์ „์‹œ์ผœ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

profile
๋‹น์‹ ์˜ ์—ฌ์„ฑ ๊ฑด๊ฐ• ์ง€ํ‚ด์ด

0๊ฐœ์˜ ๋Œ“๊ธ€