Charming ['ㅡ'] Ham !

퍼셉트론에 관하여 - 파이썬 코드 본문

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

퍼셉트론에 관하여 - 파이썬 코드

Charming_ham 2021. 2. 26. 23:18
728x90
반응형
DLS 퍼셉트론 구현
In [11]:
# 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
In [14]:
# 가중치와 편향을 도입한 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
In [15]:
# 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
In [17]:
# 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
반응형