Deep Learning/from scratch I

[밑바닥부터 시작하는 딥러닝 - 2장 퍼셉트론]

해파리냉채무침 2024. 2. 5. 16:41

가중치 w1과 w2는 각 입력신호가 결과에 영향을 주는 영향력(중요도) 조절

편향(b) 는 뉴런이 얼마나 쉽게 활성화(결과를 1로 출력) 하느냐를 조정하는 매개변수

 

AND 게이트 전리표

x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1

 

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

 

NAND 게이트 전리표 (AND의 반대)

x1 x2 y
0 0 1
1 0 1
0 1 1
1 1 0

 

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

 

OR 게이트 전리표

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 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 게이트의 전리표 - (NAND와 OR)의 AND 처리 

x1 x2 NAND OR XOR
0 0 1 0 0
1 0 1 1 1
0 1 1 1 1
1 1 0 1 0

 

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

 

2층 구조를 사용하여 퍼셉트론으로 XOR 게이트 구현. 단층 퍼셉트론으로 표현하지 못한 것을 층을 하나 더 추가하여 구현함