728x90
반응형

[그림1] andxor 게이트

 

 

파이썬 코드

import numpy as np

def AND(x1,x2):
    x = np.array([x1, x2]) # 입력값
    w = np.array([0.5,0.5]) # 가중치 
    b = -0.7 #  편향
    
    tmp = np.sum(x*w) + b
    if tmp <= 0:
        return 0
    else: 
        return 1
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

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

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


print("XOR ====>", XOR(0,0),XOR(1,0),XOR(0,1),XOR(1,1))

[그림2] XOR 코드 실행 결과

 

 

** 퍼셉트론으로 NAND를 만들고 NAND게이트만으로 컴퓨터를 만들수도 있다.

2층 퍼셉트론이면 컴퓨터를 만들 수 있지만 난이도가 매우 어렵다.

 

*퍼셉트론에서는 '가중치'와 '편향'을 매개변수로 설정한다.

*다층 퍼셉트론은 (이론상) 컴퓨터를 표현할 수 있다.

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기