본문 바로가기

AI/딥러닝

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

728x90
반응형

밑바닥부터 시작하는 딥러닝 CHAPTER 2. 퍼셉트론

 

퍼셉트론 (입출력을 가진 알고리즘)

  • 다수의 신호를 입력으로 받아 하나의 신호를 출력
  • 1 - 신호가 흐른다 / 0 - 신호가 흐르지 않는다

입력이 2개인 퍼셉트론

- 뉴런, 노드

입력신호 → 가중치(w1, w2) 곱해짐 → 뉴런

임계값을 넘어설 때 1 출력


<논리회로>

베타 -> -b

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

가중치 w1, w2 - 입력 신호가 결과에 주는 영향력(중요도)를 조절하는 매개변수

 

(책에서 문맥에 따라 셋 다 가중치라고 할 때도 있음)

 

AND

def AND(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

 

NAND

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

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

  • 베타적 논리합
  • XOR은 직선으로 ○와 ●을 나눌 수 없음
  • 비선형 영역
  • 다층 퍼셉트론 (단층 퍼셉트론은 직성형 영역만 표현 가능)

 

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

 

층이 여러개인 다층 퍼셉트론

  1. 0층의 두 뉴런이 입력 신호를 받아 1층의 뉴런으로 신호를 보냄
  2. 1층의 뉴런이 2층의 뉴런으로 신호를 보냄. 2층의 뉴런은 y를 출력 

단층 퍼셉트론으로는 표현하지 못한 것을 층을 하나 늘려 구현 O

다층 퍼셉트론 - 이론상으로 컴퓨터 표현 가능

728x90
반응형