์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ถ€๋ก] :: 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..

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 1๊ถŒ] 1, 2์žฅ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ฐ„๋‹จ ์ •๋ฆฌ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 2. 7. 15:22

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

[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..

[python]๋ฐฑ์ค€ 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 1. 23:39

https://www.acmicpc.net/problem/2839 ๋‚˜์˜ ๋‹ต # ๋ฐฑ์ค€ 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ # 2020-02-01 num = int(input()) count = 0 while num>=3 : if not(num%5) : # 5์˜ ๋ฐฐ์ˆ˜์ด๋ฉด count+= num/5 break else : count+=1 num-=3 if num==1 or num==2: count = -1 else : count += 0 print(int(count)) ๋ถ„์„ ๋‹ค์ด๋‚˜๋ฏน ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•ž์„  2๋ฌธ์ œ์˜ ์˜ํ–ฅ์œผ๋กœ ์ฒ˜์Œ์—๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฐพ์•„๋ณผ๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ „ ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ํ™•์—ฐํžˆ ์ปค์ง„๋ฐ๋‹ค๊ฐ€ ์—ฐ์‚ฐ์˜ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์•„๋‹ ๊ฑฐ๋ผ๊ณ  ๊ฒฐ๋ก  ๋‚ด๋ ธ๋‹ค. ๊ฒฝ์šฐ์˜ ์ˆ˜ (ํŠน์ง• ์ฐพ๊ธฐ) ๊ทธ..

[python]๋ฐฑ์ค€ 9095๋ฒˆ : 1,2,3 ๋”ํ•˜๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 1. 17:08

๋ฌธ์ œ : ๋ฐฑ์ค€ 9095๋ฒˆ _ 1,2,3 ๋”ํ•˜๊ธฐ https://www.acmicpc.net/problem/9095 ๋‚˜์˜ ๋‹ต # ๋ฐฑ์ค€ 9095๋ฒˆ: 1,2,3 ๋”ํ•˜๊ธฐ # 2020-02-01 case = int(input()) # ์ž…๋ ฅ๋ฐ›๊ธฐ num = [] def cpt_num(n): if n>3: # 3๋ณด๋‹ค ํฌ๋ฉด return cpt_num(n-3) + cpt_num(n-2) + cpt_num(n-1) elif n==3: # 3์ด๋ฉด return 4 elif n==2: # 2์ด๋ฉด return 2 elif n==1: # 1์ด๋ฉด return 1 while case : case-=1 num.append(int(input())) for n in num: print(cpt_num(n)) ์–ด์ œ ๋ฐฐ์› ๋˜ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ™œ..

[python]๋ฐฑ์ค€ 1463๋ฒˆ : 1๋กœ ๋งŒ๋“ค๊ธฐ
Algorithm ๋ฌธ์ œ/BOJ 2020. 2. 1. 11:01

https://www.acmicpc.net/problem/1463 ๋‚˜์˜ ๋‹ต ์—ฐ์‚ฐ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋งค๊ฒผ์Œ 1๋นผ๊ธฐ 1๋นผ๊ณ  2๋‚˜๋ˆ„๊ธฐ ์ด๋Ÿฌํ•œ ๊ฐ€์ •์„ ์˜ˆ์ œ ๊ณ„์‚ฐ๋งŒ์œผ๋กœ ํ™•์ •ํ•œ๋Œ€์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€ ์•Š๋‚˜ ์‹ถ๋‹ค. ์—ฐ์‚ฐ์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‘๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Œ ๋‹ค๋ฅธ ๋‹ต (2020-04-19 ์ˆ˜์ •) ๋™์  ๊ณ„ํš๋ฒ•(Dynamic programming)์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๋™์  ๊ณ„ํš๋ฒ•์€ ์–ด๋–ค ๋ฌธ์ œ์˜ ๋‹ต์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๊ฐ’์„ ๊ตฌํ•ด์•ผํ•  ๋•Œ ์ค‘๋ณต๊ณ„์‚ฐ์ด ํ•„์š”์—†๊ฒŒ ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. x = int(input()) count = 0 minimum = [x] def cal(x): # ์ฃผ์–ด์ง„ ํ–‰๋ ฌ์˜ ๋ชจ๋“  ์ˆ˜ ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ -1, 3์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, 2๋กœ ๋‚˜๋ˆ„๊ธฐ์˜ 3๊ฐ€์ง€ ์—ฐ์‚ฐ์„ ๋ชจ..

์ธ๊ณต์ง€๋Šฅ ์ •๋ฆฌ [๋ณธ๋ก 4] :: ๋”ฅ๋Ÿฌ๋‹์˜ ์‹œ์ž‘
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/AI 2020. 2. 1. 00:50

๋”ฅ๋Ÿฌ๋‹์˜ ์‹œ์ž‘ ์ด๋Ÿฌํ•œ multi-layer ์˜ forward-propagation ๊ณผ์ •์„ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ณด๋ฉด, h1 = f(x11*w11+x12*w21) net = h1*w13+h2*w23 = f(x11*w11+x12*w21)*w13+f(x11*w12+x12*w22)*w23 ์—ฌ๊ธฐ์„œ f ์ฆ‰, activation fuction์ด linearํ•œ function์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๊ทธ๋ ‡๋‹ค๋ฉด f(x) = ax์˜ ํ˜•ํƒœ์ด๋ฏ€๋กœ, net = x11*a(w11*w13+w12*w23)+x12*a(w21*w13+w22*w23) ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ net์€ ๊ฐ€์žฅ ์ฒ˜์Œ์— ์ฃผ์–ด์ง„ input layer์—๋‹ค๊ฐ€ ์ƒ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ผด์ด๋ฏ€๋กœ one-layer๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ๊ฐœ์˜ layer๋ฅผ ๊ฑฐ์ณค์Œ์—๋„ ์‰ฌ์šด ๋ฌธ์ œ๋กœ ..