ํผ์ ํธ๋ก (์ธ๊ณต๋ด๋ฐ) ์ด๋? ๋ค์์ ์ ํธ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ํ๋์ ์ ํธ๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
ํผ์ ํธ๋ก ์ ๊ณ๋จํจ์ ํ์์ผ๋ก ๊ตฌ์ฑ๋๋ค.

- w : ๊ฐ์ค์น, ๊ฐ ์ ํธ์ ์ํฅ๋ ฅ์ ์ ์ด
- b : ํธํฅ, ๋ด๋ฐ์ด ์ผ๋ง๋ ์ฝ๊ฒ ํ์ฑํ ๋๋์ง, ๊ฒฐ์ ๊ฒฝ๊ณ(Decision Boundary)๋ฅผ ํํ์ด๋์ํด
- ๋จ์ธต ํผ์
ํธ๋ก
- ์ ํ์ ์ผ๋ก ๋ถ๋ฆฌ ๊ฐ๋ฅํ ๋ฌธ์ ๋ง ํ ์ ์์
- 1์ธต์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ํผ์ ํธ๋ก
- (ex) AND, OR, NAND
- ๋ค์ธต ํผ์
ํธ๋ก
- ๋น์ ํ, ์ธต์ ์์์ผ๋ง ํด๊ฒฐ๊ฐ๋ฅํ๋ค.
- (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)
'์ธ๊ณต์ง๋ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ญ์ ํ ๊ณ์ฐ ๋ฐฉ๋ฒ ๋ฐ ์ฃผ์ ๊ณ์ธต๋ณ ์์ ํ & ์ญ์ ํ (0) | 2025.07.25 |
|---|---|
| 5. ์ค์ฐจ์ญ์ ํ๋ฒ (Backpropagation) (0) | 2025.07.25 |
| 4. ์ ๊ฒฝ๋ง ํ์ต (0) | 2025.07.25 |
| 3. ์ ๊ฒฝ๋ง (0) | 2025.07.25 |
| ์ ๊ฒฝ๋ง ํ์ต์ ํ์ํ ํจ์๋ค (0) | 2025.07.24 |