๐Ÿ’ป/ML 15

[๋จธ์‹ ๋Ÿฌ๋‹] ํ”„๋กœ์ ํŠธ ๊ฐ•ํ™”: PCA, ์‹ ๊ฒฝ๋ง

PCA โ€” how to choose the number of components? How many principal components do we need when using Principal Component Analysis? www.mikulskibartosz.name ๋‹ค์ค‘์„ ํ˜•ํšŒ๊ท€(Multiple Linear Regression) - ํŒŒ์ด์ฌ ์ฝ”๋“œ ์˜ˆ์ œ - ์•„๋ฌดํŠผ ์›Œ๋ผ๋ฐธ ํŒŒ์ด์ฌ scikit-learn์œผ๋กœ ๋‹ค์ค‘์„ ํ˜•ํšŒ๊ท€(Multiple Linear Regression) ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฝ”๋“œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ž. hleecaster.com

๐Ÿ’ป/ML 2021.07.27

[๋จธ์‹ ๋Ÿฌ๋‹] ๊ฐ•ํ™”ํ•™์Šต

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

๐Ÿ’ป/ML 2020.11.06

[๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹] ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง(CNN)

๊ณ ์–‘์ด์˜ ์ธ์‹ ๋ฐ˜์‘ ์ธ๊ฐ„์€ ์ธ๊ณต์‹ ๊ฒฝ๋ง์„ ๋งŒ๋“ค ๋•Œ, ๋‡Œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‰ด๋Ÿฐ๊ณผ ๊ทธ๊ฒƒ์ด ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค. CNN ์—ญ์‹œ, ๋‡Œ์˜ ์‹ค์ œ ์ž‘๋™๋ฐฉ์‹์— ๋Œ€ํ•ด ์˜๊ฐ์„ ๋ฐ›์•„ ๋งŒ๋“ค์–ด์ง„ ์‹ ๊ฒฝ๋ง์ด๋‹ค. ์‹ ๊ฒฝ๊ณผํ•™์ž Hubel๊ณผ Wiesel์€ ํ•œ ์‹คํ—˜์—์„œ ๊ณ ์–‘์ด๊ฐ€ ํ™”๋ฉด์„ ๋ฐ”๋ผ๋ณผ ๋•Œ์˜ ๋‰ด๋Ÿฐ์˜ ๋ฐ˜์‘์„ ๊ด€์ฐฐํ–ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ํ™”๋ฉด์˜ ์–ด๋Š ๊ณณ์ด ๋ฐ”๋€Œ๋Š๋ƒ์— ๋”ฐ๋ผ ํ™œ์„ฑํ™”๋˜๋Š” ๋‰ด๋Ÿฐ์ด ๋‹ค๋ฅธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์˜๊ฐ์„ ์–ป์–ด ํ™”๋ฉด์— ๊ตฌ์—ญ๋ณ„๋กœ ๋‰ด๋Ÿฐ์ด ๋Œ€์‘๋˜๋Š” ํ˜•ํƒœ์˜ ์‹ ๊ฒฝ๋ง์„ ์ƒ๊ฐํ•ด๋ƒˆ๊ณ , ์ด๊ฒƒ์ด CNN์ด๋‹ค. ์ปจ๋ฒŒ๋ฃจ์…˜ ๋ ˆ์ด์–ด 5ร—5 ์ด๋ฏธ์ง€๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ 'ํ•„ํ„ฐ'๋ฅผ ๋‚€์ฑ„, 3ร—3์”ฉ ๋ณผ ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ์ง€์—์„œ ๊ฐ€์žฅ ์ฒซ ์œ„์น˜์— ํ•„ํ„ฐ๋ฅผ ๋†“์•˜๋‹ค. ํ•„ํ„ฐ์—๋Š” ์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณผ ๊ฒƒ์ธ์ง€ ์–ด๋–ค '๊ฐ€์ค‘์น˜'๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๊ณ  ์ด๊ฒƒ์„ ํ† ๋Œ€๋กœ ์ด๋ฏธ์ง€์—์„œ ํ•˜๋‚˜์˜ ..

๐Ÿ’ป/ML 2020.08.23

[๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹] ํ™œ์„ฑํ•จ์ˆ˜, ์ดˆ๊ธฐํ™”, ์ •๊ทœํ™”

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

๐Ÿ’ป/ML 2020.08.17

[๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹] ์ธ๊ณต์‹ ๊ฒฝ๋ง, ์˜ค์ฐจ์—ญ์ „ํŒŒ

์ธ๊ฐ„์˜ ์ง€๋Šฅ ์ธ๊ณต์ง€๋Šฅ์€ ๋ง ๊ทธ๋Œ€๋กœ, ์‚ฌ๋žŒ์ด ๋งŒ๋“  '์ง€๋Šฅ(Intelligence)'์ด๋‹ค. ์ธ๊ฐ„์˜ ์ž…์žฅ์—์„œ ์ง€๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธ๊ฐ„์˜ '๋‡Œ'์˜ ๋งค์ปค๋‹ˆ์ฆ˜์ด๋‚˜ ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‡Œ๋Š” ์—ฌ๋Ÿฌ ๋‰ด๋Ÿฐ๋“ค์ด ์„œ๋กœ์„œ๋กœ ๊ทธ๋ฌผ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์‹ ๊ฒฝ๋ง(Neural Network)์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ฐ”๋กœ ๋‰ด๋Ÿฐ์˜ ์ž‘๋™์›๋ฆฌ๋ฅผ ์•Œ์•„๋ณด์ž. ๋จผ์ €, ๋‚˜๋ฌด์˜ ๊ฐ€์ง€์ฒ˜๋Ÿผ ๋˜์–ด ์žˆ๋Š” ์ˆ˜์ƒ๋Œ๊ธฐ(dendrite)๋ฅผ ํ†ตํ•ด ์ž๊ทน์„ ๋ฐ›์•„๋“ค์ธ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ž๊ทน์ด ๋„ˆ๋ฌด ์ž‘๋‹ค๋ฉด, ๋‰ด๋Ÿฐ์—๋Š” ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋‰ด๋Ÿฐ์—์„œ ์‹ ํ˜ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์ž๊ทน, ์ฆ‰ '์—ญ์น˜'์ด์ƒ์˜ ์ž๊ทน์ด ๊ฐ€ํ•ด์ ธ์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ถฉ๋ถ„ํ•œ ์ž๊ทน์œผ๋กœ ์ „๊ธฐ์‹ ํ˜ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด, ์ด๋Š” ๊ณ„์†ํ•ด์„œ ์ „๋‹ฌ๋˜์–ด(axon) ๋‚˜๊ฐ„๋‹ค. ์ด ์ „๊ธฐ์‹ ํ˜ธ๊ฐ€ ๋ง๋‹จ๋ถ€(..

๐Ÿ’ป/ML 2020.08.11

[๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹] ํ•™์Šต๊ณ„์ˆ˜, ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™”, ๊ณผ์ ํ•ฉ

# ํ•™์Šต๊ณ„์ˆ˜(ํ•˜๊ฐ•๊ฐ„๊ฒฉ)์„ ์„ค์ •ํ•œ๋‹ค. learning_rate = 0.1 # ํ•ด๋‹น ์ง€์ ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. gradient = tf.reduce_mean((W * X - Y) * X) # ๊ธฐ์šธ๊ธฐ์— ํ•˜๊ฐ•๊ฐ„๊ฒฉ์„ ๊ณฑํ•œ ๊ฐ’์„ W์— ๋นผ์ค˜์„œ ํ•˜๊ฐ•ํ•œ๋‹ค. descent = W - learning_rate * gradient # ํ•ด๋‹น ํ…์„œ์— ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค. update = W.assign(descent) # tf.GradientDescentOptimizer(learning_rate=0.01) ํ•™์Šต๊ณ„์ˆ˜ ์ด์ „์— "[3] ํ…์„œํ”Œ๋กœ์šฐ ๊ธฐ์ดˆ, ์„ ํ˜•ํšŒ๊ท€" ์—์„œ 'ํ•˜๊ฐ• ๊ฐ„๊ฒฉ์„ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์ˆ˜' ์ฏค์œผ๋กœ ์–ธ๊ธ‰ํ•˜๊ณ  ๋„˜์–ด๊ฐ”์—ˆ๋˜ ๊ฐœ๋…์ด๋‹ค. ์œ„์˜ ๊ณผ์ •์€ ํ…์„œํ”Œ๋กœ์šฐ์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์˜ˆ์œํ•จ์ˆ˜ GradientDescentOptimizer()์˜..

๐Ÿ’ป/ML 2020.08.04

[๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹] ๋‹ค์ค‘ ๋ถ„๋ฅ˜, ์†Œํ”„ํŠธ๋งฅ์Šค ํšŒ๊ท€

๋‹ค์ค‘ ๋ถ„๋ฅ˜ ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ๋Š” 0 / 1๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœ(๋ถ„๋ฅ˜)ํ•˜๋Š” ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ๋Š” ์„ธ์ƒ์€ ๋‘ ๊ฐ€์ง€ ํ•ญ๋ชฉ๋งŒ ๊ฐ€์ง€๊ณ  ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ๋“ค์ด ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„ํ•ด๋‚ด๋Š” ๋‹ค์ค‘๋ถ„๋ฅ˜(Multinomial Classification)๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด๋‚ผ ์ˆ˜ ์žˆ์„๊นŒ? ์™ผ์ชฝ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์„ธ ๊ฐœ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์€ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ผ๋„ ์•„๋‹ˆ์ง€๋งŒ, ์ปดํ“จํ„ฐ๋Š” ์ง๊ด€์ ์ด์ง€ ๋ชปํ•˜๋‹ค. ๋จผ์ € ๋ฐฐ์šด ๋กœ์ง€์Šคํ‹ฑ ๋ถ„๋ฅ˜๋ฅผ ํ™œ์šฉํ•ด๋ณด์ž. ์ด ๋ฌธ์ œ๋ฅผ A(๋นจ๊ฐ„์ƒ‰)์ธ ๊ฒƒ๊ณผ ์•„๋‹Œ๊ฒƒ, B(์ดˆ๋ก์ƒ‰)์ธ ๊ฒƒ๊ณผ ์•„๋‹Œ๊ฒƒ, C(ํŒŒ๋ž€์ƒ‰)์ธ ๊ฒƒ๊ณผ ์•„๋‹Œ ๊ฒƒ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์„ธ๊ฐœ์˜ ์ž‘์€ ๋ฌธ์ œ๋กœ ์ชผ๊ฐœ๋Š” ๊ฒƒ์ด๋‹ค. import tensorflow as tf tf.set_random_seed(777) x..

๐Ÿ’ป/ML 2020.08.03