์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ณธ๋ก 8] :: ์ธ๊ณต์‹ ๊ฒฝ๋ง ์„ค๊ณ„ ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ ์ •๋ฆฌ!
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 29. 19:20

์ธ๊ณต์‹ ๊ฒฝ๋ง ์„ค๊ณ„ ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ Network topology ๋„คํŠธ์›Œํฌ์˜ ๋ชจ์–‘ (feed forward, feed backward) Activation function ์ถœ๋ ฅ์˜ ํ˜•ํƒœ Objectives ๋ถ„๋ฅ˜? ํšŒ๊ท€? Loss function, Error๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Œ Optimizers weight update Generalization Overfitting ๋ฐฉ์ง€ 2. activation function ์ถœ๋ ฅ์˜ ํ˜•ํƒœ ๊ฒฐ์ • 1. one-hot vector ์—ฌ๋Ÿฌ ๊ฐ’ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์ถœ๋ ฅ ex_ ์ˆซ์ž ์‹๋ณ„ 2. softmax function ํ•ด๋‹น ์ถœ๋ ฅ์ด ๋‚˜์˜ฌ ํ™•๋ฅ ๋กœ ํ‘œํ˜„ 3. objective function ๊ธฐํƒ€ ๋ชฉ์ ํ•จ์ˆ˜ Mean absolute error / mae Mean absolute percentag..

์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ณธ๋ก 7] :: ๊นŠ์–ด์ง„ ์ธ๊ณต์‹ ๊ฒฝ๋ง์˜ ๋ฌธ์ œ์ ?
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 29. 19:07

๊นŠ์–ด์ง„ ์ธ๊ณต์‹ ๊ฒฝ๋ง์˜ ๋ฌธ์ œ์  Generalization : training์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ data์— ๋Œ€ํ•œ ์„ฑ๋Šฅ Data set Training set training์— ์‚ฌ์šฉํ•˜๋Š” data set Validation set ์ฃผ์–ด์ง„ data set ์ค‘ ๋นผ๋†“์•˜๋‹ค๊ฐ€ ์„ฑ๋Šฅ์„ ๊ฒ€์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” data set Test set ์ฃผ์–ด์ง€์ง€ ์•Š์•˜๋˜ ์ ‘ํ•œ ์  ์—†๋Š” data set ํ•™์Šต์ด training set์œผ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•™์Šต์„ ๋ฐ˜๋ณตํ•  ์ˆ˜๋ก training set์— ๋Œ€ํ•œ ์ •ํ™•๋„๋Š” ๋†’์•„์ง€๊ณ  ์˜ค๋ฅ˜์œจ์€ ๋‚ฎ์•„์ง„๋‹ค. ํ•˜์ง€๋งŒ validation set์— ๋Œ€ํ•œ ์˜ค๋ฅ˜์œจ์€ ๋‚ฎ์•„์ง€๋‹ค๊ฐ€ ๋†’์•„์ง€๋Š” ํ˜„์ƒ์„ ๋„๋Š”๋ฐ, ์ด๋Š” ํ•™์Šต์ด ๋„ˆ๋ฌด training set์—๋งŒ ์ ํ•ฉํ•˜๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ฅผ training set์— overfitting(..

์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ณธ๋ก 6] :: deep neural network์—์„œ์˜ backpropagation
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 10. 20:14

deep neural network์—์„œ์˜ backpropagation backpropagation ์›๋ž˜ backpropagation(์—ญ์ „ํŒŒ)๋Š” ํ•™์Šต ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ perceptron์—์„œ loss function์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋œปํ•˜์ง€๋งŒ, ๋„“์€ ์˜๋ฏธ์—์„œ๋Š” ๊ธฐ์šธ๊ธฐ๋ฅผ ์ด์šฉํ•œ ํ•™์Šต ๋ฐฉ์‹์œผ๋กœ ์“ฐ์ธ๋‹ค. ์ฐธ๊ณ  : https://en.wikipedia.org/wiki/Backpropagation delta rule https://en.wikipedia.org/wiki/Delta_rule delta rule์˜ ์ •์˜์™€ ์ฆ๋ช… delta rule์€ backpropagation ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. delta rule์€ ์™œ multi-layer์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š”๊ฐ€... ๋ณธ๋ก 5์—์„œ์™€ ๊ฐ™์ด ์ฒ˜์Œ์—๋Š” ์‹ ๊ฒฝ๋งํ•™์Šต์—์„œ d..

์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ถ€๋ก] :: theta๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 10. 19:57

theta๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ์œ„์˜ ๊ทธ๋ฆผ์€ theta๊ฐ€ ์—†์„ ๋•Œ์˜ ์—ฐ์‚ฐ์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ์ด ๋•Œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๊ฐ€ sigmoid๋ผ๋ฉด ์ž…๋ ฅ์ด (0,0)์ผ ๋•Œ ์ถœ๋ ฅ์ด ๋‹ค๋ฅธ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ์„๊นŒ? theta๊ฐ€ ์—†๋‹ค๋ฉด net์€ ์ž…๋ ฅ์ด (0,0)์ผ ๋•Œ ํ•ญ์ƒ 0์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ถœ๋ ฅ์€ sigmoid ํ•จ์ˆ˜๋ฅผ ๊ฑฐ์ณ ํ•ญ์ƒ 1/2 ์ด ๋‚˜์˜จ๋‹ค. (0,0)์˜ ์ž…๋ ฅ์—์„œ ๋‹ค๋ฅธ ์ถœ๋ ฅ์ด ๋‚˜์˜ค๊ฒŒ ํ•˜๋ ค๋ฉด sigmoid ํ•จ์ˆ˜๋ฅผ output์ถ•(y์ถ•) ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ผ ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค. ์ด ์—ญํ• ์„ ์œ„ํ•ด์„œ theta๋Š” ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค! net = x1*w1 + x2*x2 + theta , O = f(net) = f(theta) ์ด๋ฏ€๋กœ theta ๋งŒํผ ๊ทธ๋ž˜ํ”„๋ฅผ net์ถ•์œผ๋กœ ์ด๋™ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ผ์ชฝ ๊ธฐ์กด์˜ sigmoid ํ•จ์ˆ˜์—์„œ (0..

์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ณธ๋ก 5] :: ์‹ ๊ฒฝ๋ง์˜ ์›๋ฆฌ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 9. 00:04

์‹ ๊ฒฝ๋ง์˜ ์›๋ฆฌ ์ด์ œ multi-layer perceptron์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ, ์ •ํ™•ํžˆ ๊ตฌ๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผํ•  ๊ฒƒ์ด ์žˆ๋‹ค. ์ฃผ์–ด์ง„ input์„ ๊ฐ€์ง€๊ณ  ๊ณ„์‚ฐ์„ ํ•ด์„œ output์„ ๋‚ผ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, output ๊ฐ’์ด ์ฃผ์–ด์ง„ ์ •๋‹ต๊ณผ ๋‹ค๋ฅผ ๋•Œ ํ•™์Šตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์•„์ง ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•™์Šต์ด๋ž€ w๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. w๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ํ•™์Šต์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋žœ๋ค, ์กฐ๊ธˆ์”ฉ ์˜ฎ๊ฒจ๋ณด๊ธฐ ์˜ ๋ฐฉ์‹๋ณด๋‹ค๋Š” ๋ฏธ๋ถ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. w์— ๋Œ€ํ•œ Error์˜ ๋ฏธ๋ถ„๊ฐ’์„ ๊ตฌํ•œ ํ›„ ๋ฐ˜๋Œ€์ชฝ์œผ๋กœ ์ผ์ •์น˜๋งŒํผ ์›€์ง์—ฌ์•ผ ํ•˜๋ฏ€๋กœ Error๋ฅผ w์˜ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ์กฐ์ •๋˜๋Š” w์˜ ๊ฐ’์„ ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค. ๊ฒฐ๊ตญ error๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด w๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ๊ณผ์ •์— error์— ๋Œ€ํ•œ w์˜ ๋ฏธ๋ถ„๊ฐ’์ด ํ•„์š”..

์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ถ€๋ก] :: Restricted Boltzmann Machine (RBM)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 8. 23:45

Restricted Boltzmann machine (RBM) ๊ตฌ์„ฑ ๋‘๊ฐœ์˜ ์ธต(๊ฐ€์‹œ์ธต, ์€๋‹‰์ธต)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋‹จ์ผ ์‹ ๊ฒฝ๋ง ์‹ฌ์ธต ์‹ ๋ขฐ ์‹ ๊ฒฝ๋ง์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋กœ ์“ฐ์ž„ ๊ฐ ์ธต์˜ ๋…ธ๋“œ๋Š” ๋‹ค๋ฅธ ์ธต์˜ ๋…ธ๋“œ์™€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๊ณ , ๊ฐ™์€ ์ธต์˜ ๋…ธ๋“œ๋ผ๋ฆฌ๋Š” ์—ฐ๊ฒฐx ์‹์œผ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๋ชจ๋“  ์ž…๋ ฅ๋…ธ๋“œ๋ฅผ ์ด์šฉํ•œ ์‹์ด ์€๋‹‰์ธต ๋…ธ๋“œ์˜ ๊ฐ’์ด ๋จ ๋Œ€์นญ ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ ๋น„์ง€๋„ํ•™์Šต ํ•™์Šต ์ค‘ backward sweep ์‹œ forward sweep ํ–ˆ์„ ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธต๊ฐ„ ๋ชจ๋“  ๋…ธ๋“œ์˜ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ ๊ฐ’์ด ๊ฑด๋„ˆ๊ฐ„๋‹ค. ์ฆ‰, ๊ฐ€์‹œ์ธต์˜ ๊ฐ’์€ ์€๋‹‰์ธต์˜ ๋ชจ๋“  ๊ฐ’์„ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณฑํ•ด์„œ ๋”ํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์˜ค์ฐจ๋Š” ์žฌ๊ตฌ์„ฑํ•œ ๊ฐ’๊ณผ ์ž…๋ ฅ๊ฐ’์˜ ์ฐจ์ด์ด๋‹ค. forward sweep w๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ž…๋ ฅ v์— ๋Œ€ํ•œ ์€๋‹‰์ธต h์˜ ์กฐ๊ฑด๋ถ€ ํ™•๋ฅ  backward sw..

[C] n์ฐจ์› ๋ฐฐ์—ด ๋™์ ํ• ๋‹นํ•˜๊ธฐ!
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/C 2020. 2. 2. 19:12

๋™์ ํ• ๋‹น malloc ํ•จ์ˆ˜ ์‚ฌ์šฉ void *malloc(size_t size) ํฌ์ธํŠธ ํ˜•์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ• ๋‹นํ•  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์Œ ex_) (int*)malloc(sizeof(int)*5) : intํ˜• 5์นธ์งœ๋ฆฌ ๋ฐฐ์—ด์„ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น ํ›„ ์ฃผ์†Œ ๋ฐ˜ํ™˜ ๋ฐฐ์—ด์˜ ์˜๋ฏธ 2์ฐจ์› ๋ฐฐ์—ด ๋ฐฐ์—ด์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ 2์ฐจ์› ๋ฐฐ์—ด์„ ์˜ˆ์ œ๋กœ ์„ค๋ช…ํ•˜๋ฉด, int ํ˜•์ด๋ผ ๊ฐ€์ • ์ฒ˜์Œ์—๋Š” ์ด๋ ‡๊ฒŒ ํ–‰ ๋งŒํผ์˜ ๊ธธ์ด๋ฅผ ๊ฐ–๋Š” 1์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด 1์ฐจ์› ๋ฐฐ์—ด์€ ํฌ์ธํ„ฐ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ด๋‹ค. ๊ฐ ํฌ์ธํ„ฐ๊ฐ€ ์—ด ๋งŒํผ์˜ ๊ธธ์ด๋ฅผ ๊ฐ–๋Š” 1์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ€๋ฅดํ‚จ๋‹ค. ๋”ฐ๋ผ์„œ ๋™์ ํ• ๋‹น์„ ํ•  ๋•Œ๋„ ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ int*ํ˜• 1์ฐจ์› ๋ฐฐ์—ด์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋จผ์ € ๋™์ ํ• ๋‹นํ•œ ํ›„, ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๊ฐ๊ฐ์˜ ํฌ์ธํ„ฐ ์š”์†Œ์— ์ ‘๊ทผํ•ด์„œ intํ˜• 1์ฐจ์› ๋ฐฐ์—ด์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ ํ• ๋‹น ..

[C] ์†Œ์ŠคํŒŒ์ผ ๋ถ„ํ• ๋กœ ๋ชจ๋“ˆํ™” ๊ตฌํ˜„ํ•˜๊ธฐ (์„œํ•‘ ์ •๋ฆฌ)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/C 2020. 2. 2. 19:06

๊ทœ์น™ main์€ ๋˜๋„๋ก ๋‹ค๋ฅธ ํ•จ์ˆ˜, ๊ตฌ์กฐ์ฒด, ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜์ง€ ๋ง๊ธฐ ์—ญํ•  ๋ณ„๋กœ ์†Œ์ŠคํŒŒ์ผ ๋ถ„ํ• ํ•˜๊ธฐ ๋‹ค๋ฅธ ์†Œ์ŠคํŒŒ์ผ์˜ ์ „์—ญ๋ณ€์ˆ˜๋Š” extern์œผ๋กœ ๋Œ์–ด์˜ค์ง€ ๋ง๊ธฐ ์†Œ์ŠคํŒŒ์ผ ๊ฐ„์˜ ๊ณ„์ธต๊ด€๊ณ„๋Š” ์—†์• ๊ณ  ๊ฐ€๋Šฅํ•œ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์†Œ์ŠคํŒŒ์ผ ๋‘ ๊ฐœ๊ฐ€ ์„œ๋กœ ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋งŒ๋“ค์ง€ ๋ง๊ธฐ ์ „์—ญ๋ณ€์ˆ˜๋Š” ๊ฑฐ์˜ ๋ฌด์กฐ๊ฑด static ๊ฑธ๊ธฐ static์€ ๋‹ค๋ฅธ ์†Œ์ŠคํŒŒ์ผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ x ํ—ค๋”ํŒŒ์ผ vs ์†Œ์ŠคํŒŒ์ผ ํƒ€์ด๋ฐ์˜ ์ฐจ์ด! https://m.blog.naver.com/justkukaro/220767142003 ์ฐธ๊ณ  ํ—ค๋”ํŒŒ์ผ๋กœ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ => ํ•˜๋‚˜์˜ ์†Œ์ŠคํŒŒ์ผ, ๋ชฉ์ ํŒŒ์ผ๋กœ ์ƒ์„ฑ๋จ ์†Œ์ŠคํŒŒ์ผ๋กœ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ => ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†Œ์ŠคํŒŒ์ผ, ๋ชฉ์ ํŒŒ์ผ๋กœ ์ƒ์„ฑ๋จ ๋ฌธ์ œ์  Main.c (์†Œ์ŠคํŒŒ์ผ), Calculater.c (์†Œ์ŠคํŒŒ์ผ) ๋‘ ํŒŒ์ผ์—์„œ Print.h..