Charming ['ㅡ'] Ham !

퍼셉트론의 논리 회로 코드 - AND, NAND, OR, XOR 논리회로 본문

지식 정보 공유/딥러닝, 머신 러닝 : Deep, Machine Learning

퍼셉트론의 논리 회로 코드 - AND, NAND, OR, XOR 논리회로

Charming_ham 2021. 2. 26. 23:24
728x90
반응형
# AND 게이트 

# 입력 신호가 2개 일 때

def AND(x1, x2) : 
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1*w1 + x2*w2
    if tmp <= theta : 
        return 0
    elif tmp > theta : 
        return 1
    
print(AND(1, 1)) # 1을 출력
print(AND(1, 0)) # 0을 출력
print(AND(0, 1)) # 0을 출력
print(AND(0, 0)) # 0을 출력

1
0
0
0


# 가중치와 편향을 도입한 AND 게이트

import numpy as np

def AND(x1, x2) :
    x = np.array([x1, x2]) # 입력신호 x
    w = np.array([0.5, 0.5]) # 가중치
    b = -0.7 # 편향

    tmp = np.sum(w*x)+b
    if tmp <= 0 : 
        return 0
    else : 
        return 1
    
print(AND(1, 1)) # 1을 출력
print(AND(1, 0)) # 0을 출력
print(AND(0, 1)) # 0을 출력
print(AND(0, 0)) # 0을 출력
1
0
0
0


# NAND 게이트 와 OR 게이트

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(w*x)+b
    
    if tmp <= 0 : 
        return 0
    else : 
        return 1
        
        
# XOR 게이트

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

print(XOR(0, 0)) # 0을 출력
print(XOR(1, 0)) # 1을 출력
print(XOR(0, 1)) # 1을 출력
print(XOR(1, 1)) # 0을 출력

0
1
1
0
728x90
반응형