Neural Network - clover3/Roland GitHub Wiki

๋‰ด๋Ÿด๋„ท

๋‰ด๋Ÿด๋„ท์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

๊ทธ๋ž˜์„œ ๋‰ด๋Ÿด๋„ท์ด ๋ฌด์—‡์ธ๊ฐ€?

๋‰ด๋Ÿด๋„ท์ด๋ž€, ์‚ฌ๋žŒ์˜ ๋‡Œ๋ฅผ ์ปดํ“จํ„ฐ ์œ„์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•˜๊ธฐ ์œ„ํ•œ ์‹ฌํ”Œํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋‰ด๋Ÿด๋„ท์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ์šฐ๋ฆฌ ๋‡Œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.

์šฐ๋ฆฌ ๋‡Œ๋Š” ๋‰ด๋Ÿฐ์ด๋ผ๊ณ  ํ•˜๋Š” ์ž‘์€ ์„ธํฌ๊ฐ€ 1000์–ต๊ฐœ์ฏค ๋ชจ์—ฌ์„œ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ฐ ๋‰ด๋Ÿฐ์€ ๋Œ€๋žต 1000๊ฐœ์ฏค๋˜๋Š” ๋‹ค๋ฅธ ๋‰ด๋Ÿฐ๊ณผ ์—ฐ๊ฒฐ๋˜์–ด์„œ ์ „๊ธฐ์  ํ™”ํ•™์  ์‹ ํ˜ธ๋ฅผ ํ†ตํ•ด์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค. ๋‰ด๋Ÿฐ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์‹ ํ˜ธ๋ฅผ ๋ฐ›๋Š” ๋‹จ์ž๋ฅผ ์‹œ๋ƒ…์Šค(synapse)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋‰ด๋Ÿฐ์˜ ๋์€ ๋‚˜๋ฌด ๊ฐ€์ง€ ์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค. ์ด ๋ถ€๋ถ„์„ ๋ด๋“œ๋ผ์ดํŠธ(dendrites) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

(์ค‘๋žต...)

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

๋‰ด๋Ÿฐ์„ ์—ฐ๊ฒฐํ•ด์„œ ๋‰ด๋Ÿด ๋„ท์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์ผ๋‹จ ์—ฌ๊ธฐ์—์„œ๋Š” ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ feedforward network ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์ธ๊ณต๋‰ด๋Ÿฐ์ด๋ผ๋Š” ๋†ˆ์€ ๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”๊ฐ€? ๊ถ๊ธˆํ•œ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด์„œ ์•„๋ž˜์˜ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๋ดค๋‹ค. ์ธ๊ณต๋‰ด๋Ÿฐ

๊ทธ๋ฆผ์—์„œ w ๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์€ ๊ฐ ์ž…๋ ฅ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐ€์ค‘์น˜๋ž€ ๋ฌด์—‡์ด๋ƒ? ์šฐ๋ฆฌ๊ฐ€ ๋‰ด๋Ÿด๋„ท์„ ํ•™์Šต์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ๊ฐ ์ž…๋ ฅ์— ์—ฐ๊ฒฐ๋œ ์‹ค์ˆ˜ ๊ฐ’์ธ w ๊ฐ’์„ ์กฐ์ •ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ์–‘์ˆ˜๊ฐ’์ด๋‚˜ ์Œ์ˆ˜๊ฐ’ ๋ชจ๋‘๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ฐ˜์ ์ด๋‹ค. ์ด ๊ฒฝ์šฐ, ์–‘์ˆ˜๊ฐ’, ์Œ์ˆ˜๊ฐ’ ๋ชจ๋‘๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ž…๋ ฅ์ด ์ž๊ทน/์–ต์ œ ๊ธฐ๋Šฅ ์–‘์ชฝ์œผ๋กœ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ์ž…๋ ฅ์€ ํ•ต(ํŒŒ๋ž€ ์›)์œผ๋กœ ๋“ค์–ด์˜ค๋ฉด์„œ ์ž…๋ ฅ๊ฐ’์€ ๊ฐ€์ค‘์น˜์™€ ๊ณฑํ•ด์ง€๊ณ , ํ•ต์€ ๊ฐ ์ž…๋ ฅ๊ฐ’์„ ํ•ฉํ•˜์—ฌ ์ด๋ฅผ ํ™œ์„ฑ๋„(activation)๋กœ ์ด์šฉํ•œ๋‹ค. ๋งŒ์•ฝ ํ™œ์„ฑ๋„๊ฐ€ ํŠน์ •๊ฐ’(์ž„๊ณ„์น˜)๋ณด๋‹ค ๋†’์œผ๋ฉด ๋‰ด๋Ÿฐ์€ ์‹ ํ˜ธ๋ฅผ 1์„ ์ถœ๋ ฅ ํ•œ๋‹ค. ๋งŒ์•ฝ ํ™œ์„ฑ๋„๊ฐ€ ์ž„๊ณ„์น˜ ๋ณด๋‹ค ๋‚ฎ๋‹ค๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ 1/0 ์˜ ์ถœ๋ ฅ์„ ๋‚ด๋Š” ๊ฒฝ์šฐ๋ฅผ step ํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.

Step Function

์ˆ˜ํ•™์  ํ‘œํ˜„

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

๋‰ด๋Ÿฐ์˜ ์ž…๋ ฅ ๊ฐœ์ˆ˜๋Š” 1๊ฐœ ์ด์ƒ์ด๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿผ ๋‰ด๋Ÿฐ์˜ ์ž…๋ ฅ๊ฐœ์ˆ˜๋ฅผ n ์ด๋ผ๊ณ  ํ•ด๋ณด์ž. ๊ทธ๋Ÿฌ๋ฉด ๋‰ด๋Ÿฐ์˜ ์ž…๋ ฅ์€ x1, x2, x3โ€ฆ xn์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์ž…๋ ฅ์— ํ•ด๋‹นํ•˜๋А ๊ฐ€์ค‘์น˜ ๊ฐ’์„ w1, w2, w3โ€ฆ wn ์ด๋ผ๊ณ  ํ•˜์ž. ๊ทธ๋Ÿผ ๊ฐ ์ž…๋ ฅ๊ณผ ํ•ด๋‹นํ•˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๊ณฑํ•œ ๊ฐ’์˜ ํ•ฉ์€ x1w1 + x2w2 + x3w3 โ€ฆ. + xnwn, ์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค. ์•ž์˜ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•˜๋Š” ๋…์ž๋ผ๋ฉด ์ด ๊ฐ’์ด ๋ฐ”๋กœ ํ™œ์„ฑ๋„ ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ณ ๋”ฉ๋•Œ ๋ฐฐ์› ๋˜ ์ง€์‹ ์ค‘์—์„œ๋Š” ์ด ์ˆ˜์‹์„ ์•„์ฃผ ์งง๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œ๊ธฐํ•˜๋Š” ์ˆ˜์‹์ด ์žˆ๋Š”๋ฐ, ์ด ์ˆ˜์‹์„ ์ด์šฉํ•ด์„œ ์ด๋ฅผ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

'์„ค๋ช…์€ ๋ฌ๊ณ , ๋‚˜์—๊ฒŒ ์ฝ”๋“œ๋ฅผ ๋‹ฌ๋ผ' ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด์„œ ์•„๋ž˜์— ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•ด ๋ณด์•˜๋‹ค. ๊ฐ ์ž…๋ ฅ๊ณผ ๊ฐ€์ค‘์น˜๋Š” x[n] ๊ณผ w[n] ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

double activation = 0;
 
for (int i=0; i<n; i++)
{
   activation += x[i] * w[i];
}

์ดํ•ด๊ฐ€ ๋˜๋‚˜?

์ด ๋‚ด์šฉ์„ ๋‹ค์‹œ ๊ทธ๋ฆผ์œผ๋กœ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ธ๊ณต ๋‰ด๋Ÿฐ์„ ์“ฐ๋Š” ๋ฐฉ๋ฒ•

๊ทธ๋Ÿผ ์ด์ œ ์ด ๋‰ด๋Ÿฐ์„ ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฐ๊ฒฐ์„ ํ•  ์ฐจ๋ก€๋‹ค. ๋ฐฉ๋ฒ• ์ค‘์— ํ•˜๋‚˜๋Š” ์ด ๋‰ด๋Ÿฐ์„ ํ”ผ๋“œํฌ์›Œ๋“œ(feedforward) network ๋ผ๋Š” ์„ค๊ณ„๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด ์„ค๊ณ„์—์„œ๋Š” ๊ฐ Layer์— ์žˆ๋Š” ๋‰ด๋Ÿฐ์ด ๊ทธ ์ถœ๋ ฅ์„ ์ตœ์ข… ์ถœ๋ ฅ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ Layer์— ์ „๋‹ฌํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์ด ์„ค๊ณ„์˜ ์ด๋ฆ„์ธ feedforward network๋Š” ์ด๋Ÿฐ ๋ฐฉ์‹์— ์ฐฉ์•ˆํ•ด์„œ ๋ถ™์—ฌ์กŒ๋‹ค. ๊ฐ„๋‹จํ•œ ํ”ผ๋“œํฌ์›Œ๋“œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๊ฐ ์ž…๋ ฅ์€ Hidden Layer์˜ ๋ชจ๋“  ๋‰ด๋Ÿฐ์œผ๋กœ ๋ณด๋‚ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  Hidden Layer์˜ ๊ฐ ๋‰ด๋Ÿฐ์˜ ์ถœ๋ ฅ์€ ๋‹ค์Œ Layer ์˜ ๋ชจ๋“  Neuron ์œผ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. ํ”ผ๋“œํฌ์›Œ๋“œ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” Hidden Layer์˜ ๊ฐœ์ˆ˜๋Š” ๋ช‡ ๊ฐœ๋ผ๋„ ์ƒ๊ด€์ด ์—†์ง€๋งŒ ์™ ๋งŒํ•œ ๋ฌธ์ œ๋Š” ํ•˜๋‚˜์˜ Layer๋งŒ ์จ๋„ ์ž˜ ๋Œ์•„๊ฐ„๋‹ค๊ณ  ํ•œ๋‹ค. ๊ฐ Layer ์— ์žˆ๋Š” ๋‰ด๋Ÿฐ์˜ ๊ฐœ์ˆ˜ ์—ญ์‹œ ๋ช‡๊ฐœ๋กœ ํ•˜๋˜์ง€ ์ƒ๊ด€์ด ์—†๋‹ค. ์ด๊ฑฐ ์—ญ์‹œ ๋ฌธ์ œ์— ๋”ฐ๋ผ์„œ ๋ช‡๊ฐœ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์ ์ ˆํ•˜๊ฒŒ ์ •ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ์ด๊ฒŒ ๋ญ”์†Œ๋ฆฐ๊ฐ€ ์‹ถ์œผ์‹  ๋ถ„๋“ค์ด ๋งŽ์œผ์‹คํ…Œ๋‹ˆ ํ•œ๋ฒˆ ์‹ค์ œ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์„ค๋ช…์„ ํ•ด๋ณด๊ฒ ๋‹ค.

๋‰ด๋Ÿด๋„ท์„ ์‘์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ถ„์•ผ๊ฐ€ ๋ฐ”๋กœ ๋ฌธ์ž ์ธ์‹์ด๋‹ค. ์•„๋ผ๋น„์•„ ์ˆซ์ž '4'๋ฅผ ์ธ์‹ํ•˜๋Š” ๋‰ด๋Ÿด๋„ท์„ ๋””์ž์ธ ํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. 8*8 ๊ฐœ์˜ LED๊ฐ€ ์žˆ๋Š” ์ „๊ด‘ํŒ์— 4๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์œ„ ๊ทธ๋ฆผ์—์„œ ์ฃผํ™์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์ด ์ผœ์ ธ ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ณ  ํฐ์ƒ‰์œผ๋กœ ์žˆ๋Š” ๋ถ€๋ถ„์ด ๊บผ์ ธ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์„ค๊ณ„ํ•  ๋‰ด๋Ÿด๋„ท์€ ์œ„์˜ ๊ฐ LED ์˜ ์ผœ์ง/๊บผ์ง ์ƒํƒœ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„์„œ ์ด LED๊ฐ€ ํ‘œ์‹œํ•œ๊ฒŒ '4'์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ 1/0 ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋„คํŠธ์›Œํฌ์ด๋‹ค. ('4'๊ฐ€ ๋งž๋Š” ๊ฒฝ์šฐ 1, ์•„๋‹Œ๊ฒฝ์šฐ 0). ๊ทธ๋Ÿผ ๋‰ด๋Ÿด๋„ท์˜ ์ž…๋ ฅ์€ 64๊ฐœ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์ž…๋ ฅ์€ Hidden Layer ์— ์žˆ๋Š” ๋ช‡ ๊ฐœ์˜ ๋‰ด๋Ÿฐ์œผ๋กœ ๋‹ค์‹œ ์ „๋‹ฌ๋ ํ…Œ๊ณ , ๊ทธ ๋‰ด๋Ÿฐ์„ ๋‹ค์‹œ ๊ทธ ์ถœ๋ ฅ์€ ์ถœ๋ ฅ ๋‰ด๋Ÿฐ์œผ๋กœ ์ „๋‹ฌ ํ•  ๊ฒƒ์ด๋‹ค. (์ด ์ •๋„๋Š” ๋จธ๋ฆฌ์†์œผ๋กœ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๊ฒ ์ง€? ๋‚ด๊ฐ€ ์ˆ˜์‹ญ๊ฐœ์˜ ๋‰ด๋Ÿฐ์„ ์ผ์ผ์ด ๋‹ค ๊ทธ๋ฆฌ๊ณ  ์‹ถ์ง€๋Š” ์•Š๊ฑฐ๋“ ...)

์ด์ œ[ ์ด๋ ‡๊ฒŒ ๋‰ด๋Ÿด๋„ท์„ ๋งŒ๋“ค์—ˆ์œผ๋ฉด ๋‹ค์Œ์€ ํ•™์Šต์„ ํ•  ์ฐจ๋ก€์ด๋‹ค. ํ•™์Šต์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ค‘์˜ ํ•˜๋‚˜๋Š” ๋‰ด๋Ÿด๋„ท์„ ์ผ๋‹จ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๊ณ  ์ผ๋ จ์˜ ์ž…๋ ฅ(์œ„์˜ ์˜ˆ์—์„œ๋Š” LEDํŒ์˜ ์ƒํƒœ)์„ ์ฃผ์–ด์„œ ๋˜๋จน์ž„์„ ๋จน์—ฌ์„œ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ ์ถœ๋ ฅ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ณ , ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ž…๋ ฅ์ด '4' ์ฒ˜๋Ÿผ ์ƒ๊ฒผ์„ ๊ฒฝ์šฐ 1์„ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•˜๋„๋ก ์กฐ์ •์„ ํ•ด์•ผํ•œ๋‹ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ Training ์„ Supervised learning ์ด๋ผ๊ณ  ํ•˜๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ training set ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์ด backpropagation ์ด๋‹ค. ๋‹ค๋งŒ ์—ฌ๊ธฐ์„œ๋Š” backpropgation ์— ๋Œ€ํ•ด์„œ๋Š” ์„ค๋ช…ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋” ์ข‹๊ณ  ์ˆ˜ํ•™๋„ ํ•„์š”์—†๋Š” ํ•™์Šต๋ฐฉ๋ฒ•์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ƒ๊ฐํ•ด๋ณด๋ฉด ์ถœ๋ ฅ ๋‹จ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ 10๊ฐœ๋กœ ๋Š˜๋ฆฌ๋ฉด ์ˆซ์ž '0'์—์„œ '9' ๊นŒ์ง€๋ฅผ ๋ชจ๋‘ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. ๋ฌผ๋ก  27 ๊ฐœ๋กœ ๋งŒ๋“ค๋ฉด ์•ŒํŒŒ๋ฒณ์„ ๋ชจ๋‘ ์ธ์‹ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ข€ ์ดํ•ด๊ฐ€ ๋˜์‹œ๋‚˜? ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋œ๋‹ค๊ณ  ํ•ด๋„ ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์‹œ๋ผ, ์ด์ œ ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ค€ํ…Œ๋‹ˆ...

์ฑ•ํ„ฐ4(์ œ๋ชฉ ๋ฏธ์ •)

์ž ์ด์ œ ์ฝ”๋”ฉ์„ ํ•œ๋ฒˆ ํ•ด๋ณด์ž.

์Šคํฌ๋ฆฐ์ƒท์„ ๊ฒŒ์ž„์˜ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค€๋‹ค. ํƒฑํฌ์ฒ˜๋Ÿผ ์ƒ๊ธด๊ฒŒ minesweeper ์ด๊ณ  ์ง€๋ขฐ๋Š” ์ดˆ๋ก์ƒ‰ ์ ์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค. minsweeper ๊ฐ€ ์ง€๋ขฐ๋ฅผ ์ฐพ์œผ๋ฉด ์ด๊ฑด ์‚ฌ๋ผ์ง€๊ณ  ๋˜ ๋‹ค๋ฅธ ์ง€๋ขฐ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค. ๊ทธ๋ž˜์„œ ํ™”๋ฉด์— ์ง€๋ขฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ํ•œ๋‹ค. ๋ถ‰์€ ์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋œ minsweeper๊ฐ€ ํ˜„์žฌ ์ง„ํ™” ์ƒํƒœ์—์„œ ์ตœ๊ณ  ์„ฑ๋Šฅ์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” minesweeper ์ด๋‹ค.

๋‰ด๋Ÿด๋„ท์ด ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด minesweeper ์˜ ์›€์ง์ž„์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์‹ค์ œ ํƒฑํฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ minesweeper ๋Š” ํƒฑํฌ์˜ ์šฐ์ธก ํŠธ๋ž™๊ณผ ์ขŒ์ธก ํŠธํƒ์˜ ์†๋„๋ฅผ ์กฐ์ ˆํ•ด์„œ ์šด์ „ํ•  ์ˆ˜ ์žˆ๋‹ค. minesweeper ์˜ ์šฐ์ธก๊ณผ ์ขŒ์ธก์— ๋‹ค์–‘ํ•œ ํž˜์„ ์ž‘์šฉํ•จ์œผ๋กœ์จ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„คํŠธ์›Œํฌ๋Š” ๋‘๊ฐ€์ง€ ์ถœ๋ ฅ์„ ํ•„์š”๋กœ ํ•œ๋‹ค. ์ถœ๋ ฅ ํ•˜๋‚˜๋Š” ์ขŒ์ธก ํŠธ๋ž™์˜ ์†๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ๋‹ค๋ฅธ ์ถœ๋ ฅ์€ ์šฐ์ธก ํŠธ๋ž™์„ ๋‚˜ํƒ€๋‚ด๋ฉด ๋  ๊ฒƒ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ค˜๋˜ ์ถœ๋ ฅ์€ 1 ์ด๋‚˜ 0์ธ๋ฐ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ถœ๋ ฅ๊ฐ’์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์„๊นŒ? Step ํ•จ์ˆ˜๋ฅผ ์ž„๊ณ„๊ฐ’์œผ๋กœ ์ด์šฉํ•˜๋Š” ๋Œ€์‹ ์— ๊ฐ ๋‰ด๋Ÿฐ์˜ ์ถœ๋ ฅ์ด ๋Œ€์นญ์ ์ธ ๊ทธ๋ž˜ํ”„๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ๋ฐ”๊พธ๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ 0~1์—์„œ์˜ ์‹ค์ˆ˜ ์ถœ๋ ฅ์„ ์Šค๋ฌด์Šคํ•œ ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด๊ฐ€ ๋ช‡๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์—์„œ๋Š” Sigmoid๋ฅผ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•œ๋‹ค. (Sigmoid๋ผ๋Š”๊ฑด ๊ทธ๋ƒฅ S ๋ชจ์–‘์˜ ๋ฌผ๊ฑด์„ ์žˆ์–ด๋ณด์ด๊ฒŒ ๋ถ€๋ฅด๋Š” ์ด๋ฆ„์ด๋‹ค)

(์ค‘๋žต...)

์ถœ์ฒ˜