기계는 거짓말하지 않는다

단층 퍼셉트론(Single-Layer Perceptron) AND, OR, NAND 본문

AI

단층 퍼셉트론(Single-Layer Perceptron) AND, OR, NAND

KillinTime 2021. 8. 19. 19:39

단층 퍼셉트론은 값을 보내는 Input Layer와 출력하는 Output Layer 두 단계로 나뉨

활성화 함수가 사용되지 않으며 입출력 레이어 중간에 Hidden Layer가 추가되면

다층 퍼셉트론(Multi-Layer Perceptron)이 된다.

입력 신호는 각각 고유한 가중치가 곱해지고 각 신호는 출력에 영향을 준다.

단층 퍼셉트론은 직선 하나로 두 영역을 나눌 수 있는 문제만 구현이 가능하므로 XOR 구현은 불가능하다.

def AND_gate(x1, x2):
    w1 = 0.5
    w2 = 0.5
    b = -0.7

    result = x1 * w1 + x2 * w2 + b

    if result <= 0:
        return 0
    else:
        return 1

print(AND_gate(0, 0), AND_gate(0, 1), AND_gate(1, 0), AND_gate(1, 1))
# 0 0 0 1

def OR_gate(x1, x2):
    w1 = 0.5
    w2 = 0.5
    b = -0.4

    result = x1 * w1 + x2 * w2 + b

    if result <= 0:
        return 0
    else:
        return 1

print(OR_gate(0, 0), OR_gate(0, 1), OR_gate(1, 0), OR_gate(1, 1))
# 0 1 1 1

def NAND_gate(x1, x2):
    w1 = -0.5
    w2 = -0.5
    b = 0.7

    result = x1 * w1 + x2 * w2 + b

    if result <= 0:
        return 0
    else:
        return 1

print(NAND_gate(0, 0), NAND_gate(0, 1), NAND_gate(1, 0), NAND_gate(1, 1))
# 1 1 1 0

'AI' 카테고리의 다른 글

Pytorch Dataset, DataLoader  (0) 2021.09.05
Pytorch no_grad, eval  (0) 2021.08.29
Classification 성능평가  (0) 2021.08.18
Pytorch torch 버전, GPU 사용 유무, 이름 확인, device 설정  (0) 2021.08.18
torchvision VOC dataset download 문제  (0) 2021.08.15
Comments