728x90
반응형
# 가중치와 편향 구현
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
# w1과 w2는 각 입력 신호가 결과에 주는 영향력을 조절하는 매개변수, 편향은 뉴런이 얼마나 쉽게 활성화(결과로 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
print("AND" ,AND(0,0),AND(0,1),AND(1,0),AND(1,1))
print("NAND",NAND(0,0),NAND(0,1),NAND(1,0),NAND(1,1))
print("OR", OR(0,0),OR(0,1),OR(1,0),OR(1,1))
AND, NAND,OR 모두 같은 구조의 퍼셉트론이고 차이는 가중치 매개변수의 값이다.
하지만 퍼셉트론으로는 XOR게이트는 만들지 못한다. (단일로는) *다중퍼셉트론으로 구현은 가능하다.
XOR 게이트는 배타적 논리합이라는 논리 회로다.
출처 : 밑바닥부터 시작하는 딥러닝
https://www.hanbit.co.kr/store/books/look.php?p_code=B8475831198
728x90
반응형
최근댓글