1.2)ใ๐ซ ๊ฐ๋, [ ํผ์ ํธ๋ก ] !!
ํผ์ ํธ๋ก ์ผ๋ก AND, NAND, OR ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ํํํ ๋ ์ค์ํ ์ ์ ํผ์ ํธ๋ก ์ ๊ตฌ์กฐ๋ ๋ณํ์ง ์๊ณ ๋ณํ๋ ๊ฒ์ ์ค์ง ๋งค๊ฐ๋ณ์(๊ฐ์ค์น, ์๊ณ๊ฐ) ๊ฐ๋ฟ์ด๋ผ๋ ๊ฒ์ด๋ค. ๊ทธ๋ผ ์ด์ ํผ์ ํธ๋ก ์ ๊ตฌํํด ๋ณด์!
ํผ์ ํธ๋ก ๊ตฌํํ๊ธฐ
๋ ผ๋ฆฌ ํ๋ก๋ฅผ ํ์ด์ฌ์ผ๋ก ๊ตฌํํด ๋ณด์ ๋ค์์ x1๊ณผ x2๋ฅผ ์ธ์๋ก ๋ฐ๋ AND๋ผ๋ ํจ์์ด๋ค.
def AND(x1, x2):
w1,w2, theha = 0.5, 0.5, 0.7
tmp = x1*w1 + x2*w2
if tmp <= theta:
return 0;
elif tmp > theta:
return 1
ํจ์ ์์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ด๊ธฐํํ๊ณ , ๊ฐ์ค์น๋ฅผ ๊ณฑํ ์ ๋ ฅ์ ์ดํฉ์ด ์๊ณ๊ฐ์ ๋์ผ๋ฉด 1์ ๋ฐํํ๊ณ ๊ทธ ์ธ์๋ 0์ ๋ฐํํ๋๋ก ๋ง๋ค์๋ค.
AND(0,0) # 0์ ์ถ๋ ฅ
AND(1,0) # 0์ ์ถ๋ ฅ
AND(0,1) # 0์ ์ถ๋ ฅ
AND(1,1) # 1์ ์ถ๋ ฅ
AND ๊ฒ์ดํธ๊ฐ ์ ์๋ํ๋ค. ํ์ง๋ง ์์ผ๋ก๋ฅผ ์๊ฐํด์ [์ 1.1] ์ ๋ฅผ ๋ก ์นํํด ์์ ํ๋๋ก ํ๊ฒ ๋ค. ์์ ์ ํ๋ฉด ํผ์ ํธ๋ก ์ ๋์์ด ์๋ [์ 1.2] ์ฒ๋ผ ๋๋ค.
๐[์ 1.2]
์ด๋ (bias)๋ฅผ ํธํฅ์ด๋ผ ํ๋ค. ์ด์ '๊ฐ์ค์น์ ํธํฅ์ ๋์ 'ํ AND ๊ฒ์ดํธ๋ฅผ ๊ตฌํํด ๋ณด์
๊ฐ์ค์น์ ํธํฅ ๊ตฌํํ๊ธฐ
[์ 1.1] ๊ณผ [์ 1.2]๋ ๊ธฐํธ ํ๊ธฐ๋ง ๋ฐ๊ฟจ์ ๋ฟ, ๊ทธ ์๋ฏธ๋ ๊ฐ๋ค.
๊ทธ๋ผ [์ 1.2] ๊ด์ ์์ ํด์ํด ๋ณด์๋ฉด, ํผ์
ํธ๋ก ์ ์
๋ ฅ ์ ํธ์ ๊ฐ์ค์น๋ฅผ ๊ณฑํ ๊ฐ๊ณผ ํธํฅ์ ํฉํ์ฌ, ๊ทธ ๊ฐ์ด 0์ ๋๊ธฐ๋ฉด 1์. ์ถ๋ ฅํ๊ณ ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค. ์ด์ ์ง์ง ๊ตฌํํด ๋ณด์
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
์ ์ฝ๋์ฒ๋ผ ๊ตฌํํ ์ ์๊ณ , ๊ฐ์ ๊ตฌ์กฐ๋ก NAND ๊ฒ์ดํธ์ OR ๊ฒ์ดํธ๋ ๊ตฌํ ๊ฐ๋ฅํ๋ค.
ํผ์ ํธ๋ก ์ ํ๊ณ
๊ทธ๋ฌ๋ฉด XOR ๊ฒ์ดํธ๋ ๊ตฌํ์ด ๊ฐ๋ฅํ ๊น?
XOR ๊ฒ์ดํธ๋ ๊ณผ ์ค ํ์ชฝ์ด 1์ผ ๋๋ง 1์ ์ถ๋ ฅํ๋ค.
ใใใใใ | y |
---|---|
0ใใใใใใ0 | 0 |
1ใใใใใใ0 | 1 |
0ใใใใใใ1 | 1 |
1ใใใใใใ1 | 0 |
๐[๊ทธ๋ฆผ 1-4]
XOR ๊ฒ์ดํธ์ ์ง๋ฆฌํ๋ฅผ ๋ณด๋ฉด์ ์๊ฐํด ๋ณด์!
์ผ๋จ, ๋จ์ธต ํผ์ ํธ๋ก ์ผ๋ก๋ XOR ๊ฒ์ดํธ๋ฅผ ๊ตฌํํ ์ ์๋ค. ์กฐ๊ธ ์ ๋ง๋ [์ 1.2]๋ฅผ ์ด์ฉํด ์๊ฐ์ ์ผ๋ก ์ค๋ช ์ ํ๊ฒ ๋ค.
์ฐ์ OR ๊ฒ์ดํธ์ ๋์์ ์๊ฐ์ ์ผ๋ก ์๊ฐํด ๋ณด์ OR๊ฒ์ดํธ๋, ์๋ฅผ ๋ค์ด ๊ฐ์ค์น ๋งค๊ฐ๋ณ์๊ฐ
(, , ) = (-0.5, 1.0, 1.0) ์ผ ๋ [๊ทธ๋ฆผ 1.3]์ ์ง๋ฆฌํ๋ฅผ ๋ง์กฑํ๋ค. ์ด๋ ํผ์
ํธ๋ก ์ ์๋ ์์ผ๋ก ํํ๋๋ค.
๐[์ 1.3]
[์ 1.3]์ ํผ์
ํธ๋ก ์ ์ง์ ์ ๋ฐฉ์ ์์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค. ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด๊ธฐ ์ ์
OR ๊ฒ์ดํธ์ ์ฑ์ง์ ์๊ฐํด ๋ณด๋ฉด ๊ณผ ๊ฐ ํ๋๋ผ๋ 1์ด๋ฉด 1์ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
๐[๊ทธ๋ฆผ 1-5]
๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด ์ง์ ์ ๊ธฐ์ค์ผ๋ก ํ์ชฝ ์์ญ์ 1์ ์ถ๋ ฅํ๊ณ ๋ค๋ฅธ ํ์ชฝ์ 0์ ์ถ๋ ฅํ๋ ๊ฒ์ ์ฝ๊ฒ ์ ์ ์๋ค.
0์ ์ถ๋ ฅํ๋ (0, 0)์ ์ผ๋ก ํ์ํ๊ณ , 1์ ์ถ๋ ฅํ๋ (0, 1), (1, 0), (1, 1) ์ ๋ก ํ์ํ๋ค.
๊ทธ๋ผ XOR ๊ฒ์ดํธ์ ๊ฒฝ์ฐ๋ ์ด๋ป๊ฒ ์ถ๋ ฅ์ด ๋ ๊น?
๐[๊ทธ๋ฆผ 1-6]
[๊ทธ๋ฆผ 1-6] ์ฒ๋ผ ์ถ๋ ฅ์ด ๋๋ค. OR ๊ฒ์ดํธ์ ๊ทธ๋ํ์ ๋ง์ฐฌ๊ฐ์ง๋ก 0์ ์ถ๋ ฅํ๋ ๊ณณ์ ์ผ๋ก ํ์ํ๊ณ , 1์ ์ถ๋ ฅํ๋ ๊ณณ์ ๋ก ํ์ํ๋ค.
๊ทธ๋ผ ์ด์ ๊ณผ ์ ๋๋๋ ์์ญ์ ์ด๋ป๊ฒ ๋ง๋ค ๊ฒ์ธ๊ฐ ์๊ฐํด ๋ด์ผ ํ๋ค.
์ฌ๊ธฐ์ ์ ๊น!!
์์ง ๋ง๋ค๊ธฐ ์ ์ [์ 1.3] ์ ๋ณด๋ฉด ๊ฐ์ค์น(, )๋ ๊ณ์์ด๋ฏ๋ก ํผ์ ํธ๋ก ์ ์ ํ์ฑ์ ๋ฐ์ง๋ ๊ฒ์์ ์ ์ ์๋ค. ์ฆ, ํผ์ ํธ๋ก ์ ์ง์ ํ๋๋ก ๋๋ ์์ญ๋ง ํํํ ์ ์๋ค๋ ํ๊ณ๋ก ์ธํด ๋จ์ธต ํผ์ ํธ๋ก ์ผ๋ก๋ XOR ๊ฒ์ดํธ๋ฅผ ํํํ ์ ์๋ค.
ํ์ง๋ง ๊ณก์ ์ด๋ผ๋ฉด?
๐[๊ทธ๋ฆผ 1-7]
๊ณก์ ์ด๋ผ๋ฉด ๊ณผ ์ [๊ทธ๋ฆผ 1-7] ์ฒ๋ผ ๋๋ ์ ์๋ค.
๋, ํผ์
ํธ๋ก ์ ์๋ฆ๋ค์์ด๋ผ๊ณ ํ ์ ์๋ ๋ค์ธต ํผ์
ํธ๋ก multi-layer perceptron์ ๋ง๋ค์ด ํํํ ์ ์๋ค.
XOR ๊ฒ์ดํธ
XOR ๊ฒ์ดํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ค. ๊ทธ์ค ํ๋๋ ์์ ๋ง๋ AND, NAND, OR ๊ฒ์ดํธ๋ฅผ ์กฐํฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๐[๊ทธ๋ฆผ 1-8]
[๊ทธ๋ฆผ 1-8]์ ์์๋๋ก AND, NAND, OR ๊ฒ์ดํธ ๊ธฐํธ์ด๋ค.
์ด ๊ธฐํธ๋ฅผ ์ด์ฉํด ์กฐํฉํด XOR ๊ฒ์ดํธ๋ฅผ ๊ตฌํํด ๋ณด๋ฉด
๐[๊ทธ๋ฆผ 1-9]
[๊ทธ๋ฆผ 1-9]๊ณผ ๊ฐ์ ์กฐํฉ์ผ๋ก ๊ตฌํํ ์๊ฐ ์๋ค. ๊ณผ ๊ฐ ์ ๋ ฅ ์ ํธ, y๊ฐ ์ถ๋ ฅ ์ ํธ์ด๋ค. NAND์ ์ถ๋ ฅ์ , OR์ ์ถ๋ ฅ์ ๋ก ํด์ ์ง๋ฆฌํ๋ฅผ ๋ง๋ค๋ฉด [๊ทธ๋ฆผ 1-10]์ฒ๋ผ ๋๋ค.
ใใใ | ใใใ | y |
---|---|---|
ใใ0ใใใ0 | ใใ1ใใใใ0 | 0 |
ใ ใ1ใใใ0 | ใใ1ใใใใ1 | 1 |
ใใ0ใใใ1 | ใใ1ใใใใ1 | 1 |
ใใ1ใใใ1 | ใใ0ใใใใ1ใ | 0 |
๐[๊ทธ๋ฆผ 1-10]
XOR ๊ฒ์ดํธ ๊ตฌํํ๊ธฐ
์ด์ด์ [๊ทธ๋ฆผ 1-9]์ฒ๋ผ ์กฐํฉ๋ XOR ๊ฒ์ดํธ๋ฅผ ํ์ด์ฌ์ผ๋ก ๊ตฌํํด ๋ณด๊ฒ ๋ค. AND, NAND, OR๋ฅผ ์ฌ์ฉํด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํ ์ ์๋ค.
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
์ด XOR ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ ๋ค์๊ณผ ๊ฐ๋ค
XOR(0, 0) # 0์ ์ถ๋ ฅ
XOR(1, 0) # 1์ ์ถ๋ ฅ
XOR(0, 1) # 1์ ์ถ๋ ฅ
XOR(1, 1) # 0์ ์ถ๋ ฅ
์ด๋ก์จ XOR ๊ฒ์ดํธ๊น์ง ์์ฑํ๋ค.
- ์ ๋๋ค~! ํผ์
ํธ๋ก ๋ฅผ ์ก์๋ค!
๐ ํผ์ ํธ๋ก ์ ์ ์ถ๋ ฅ์ ๊ฐ์ถ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๐ ํผ์ ํธ๋ก ์์๋ '๊ฐ์ค์น'์ 'ํธํฅ'์ ๋งค๊ฐ๋ณ์๋ก ์ค์ ํ๋ค.
๐ ๋จ์ธต ํผ์ ํธ๋ก ์ผ๋ก๋ XOR ๊ฒ์ดํธ๋ฅผ ํํํ ์ ์๋ค.
์ด๋ฒ ์ฅ์์๋ ํผ์ ํธ๋ก ์ ๋ฐฐ์๋ดค๋ค. ํผ์ ํธ๋ก ์ด๋ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ ๊ทธ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค. ๋ ๋ค์ ์ฅ์์ ๋ฐฐ์ธ ์ ๊ฒฝ๋ง์ ๊ธฐ์ด๊ฐ ๋๋ ๊ฐ๋ ์ผ๋ก ์ด๋ฒ ์ฅ์์ ๋ฐฐ์ด ๋ด์ฉ์ ์์ฃผ ์ค์ํ๋ ๊ผญ ์ดํดํ๊ณ ๋์ด๊ฐ ์ ์๋๋ก ํ์!!
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(1.2)ใ๐ซ ๊ฐ๋, [ ํผ์ ํธ๋ก ] !!), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@rasangchul/1.2ใ-๊ฐ๋-ํผ์ ํธ๋ก์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค