๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ธ๊ณต์ง€๋Šฅ

2. ํผ์…‰ํŠธ๋ก 

by sh119 2025. 7. 25.

ํผ์…‰ํŠธ๋ก (์ธ๊ณต๋‰ด๋Ÿฐ) ์ด๋ž€?  ๋‹ค์ˆ˜์˜ ์‹ ํ˜ธ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ํ•˜๋‚˜์˜ ์‹ ํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํผ์…‰ํŠธ๋ก ์€ ๊ณ„๋‹จํ•จ์ˆ˜ ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

  • w : ๊ฐ€์ค‘์น˜, ๊ฐ ์‹ ํ˜ธ์˜ ์˜ํ–ฅ๋ ฅ์˜ ์ œ์–ด
  • b : ํŽธํ–ฅ, ๋‰ด๋Ÿฐ์ด ์–ผ๋งˆ๋‚˜ ์‰ฝ๊ฒŒ ํ™œ์„ฑํ™” ๋˜๋Š”์ง€, ๊ฒฐ์ •๊ฒฝ๊ณ„(Decision Boundary)๋ฅผ ํ‰ํ–‰์ด๋™์‹œํ‚ด

 

  1. ๋‹จ์ธต ํผ์…‰ํŠธ๋ก 
    • ์„ ํ˜•์ ์œผ๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ๋งŒ ํ’€ ์ˆ˜ ์žˆ์Œ
    • 1์ธต์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ํผ์…‰ํŠธ๋ก 
    • (ex) AND, OR, NAND
  2. ๋‹ค์ธต ํผ์…‰ํŠธ๋ก 
    • ๋น„์„ ํ˜•, ์ธต์„ ์Œ“์•„์•ผ๋งŒ ํ•ด๊ฒฐ๊ฐ€๋Šฅํ•˜๋‹ค.
    • (ex) XOR (๋ฒ ํƒ€์  ๋…ผ๋ฆฌํ•ฉ)
    • ์ด๋ก ์ ์œผ๋กœ๋Š” ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์„ ์ด์šฉํ•˜๋ฉด ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

AND ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ

def AND(x1, x2):
	x = np.array([x1, x2])
	w = np.array([0.5, 0.5])
	b = -0.7
	tmp = np.sum(w*x) + b
	if tmp <= 0:
		return 0
	else:
		return 1

OR ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ

def OR(x1, x2):
	x = np.array([x1, x2])
	w = np.array([0.5, 0.5])
	b = -0.2
	tmp = np.sum(w*x) + b
	if tmp <= 0:
		return 0
	else:
		return 1

NAND ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ

def NAND(x1, x2):
	x = np.array([x1, x2])
	w = np.array([-0.5, -0.5])
	b = 0.7
	tmp = np.sum(w*x) + b
	if tmp <= 0:
		return 0
	else:
		return 1

XOR ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ

def XOR(x1, x2):
	S1 = NAND(x1, x2)
	S2 = OR(x1, x2)
	return AND(S1, S2)