[Algorithm] 다중 퍼셉트론으로 NOR 구현

KingU·2021년 12월 6일
0

Algorithm

목록 보기
2/22
post-thumbnail

XOR를 구현하려면 AND, NAND, OR를 합쳐야 한다


다중 퍼셉트론이 등장






0층:

두 뉴런이 입력 신호를 받아 1층의 뉴런에게 전달

1층:

1층의 뉴런이 2층의 뉴런으로 신호를 보내고, 2층의 뉴런은 y를 출력

0층 - 부품을 전달


1층 - 조립하여 완성





다중퍼셉트론은

단층으로 표현하지 못한 것을 구현




NOR

1. AND, NAND, OR 구현

# XOR = AND + OR + NAND
import numpy as np

# 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
# 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
# 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



2. 다중퍼셉트론을 활용해 XOR 구현


# XOR
def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y




결과값






당신의 시간이 헛되지 않는 글이 되겠습니다.
I'll write something that won't waste your time.

profile
원하는 것을 창조하고 창조한 것을 의미있게 사용하자

0개의 댓글