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

nano3o·2022년 9월 18일
0

Deep_Learning

목록 보기
3/3
post-thumbnail

퍼셉트론이란?

  • 신경망(딥러닝)의 기원이 되는 알고리즘
  • 다수의 신호를 입력받아 하나의 신호를 출력
  • 왼쪽 그림은 입력으로 2개의 신호를 받은 퍼셉트론의 예
    x1,x2x_1, x_2는 입력 신호, yy는 출력 신호, w1,w2w_1, w_2는 가중치
    입력 신호가 뉴런에 보내질 때 각각 고유한 가중치가 곱해지며 뉴런에서 보내온 신호의 총합이 정해진 한계 θ\theta를 넘어설 때만 1을 출력되며 뉴런이 활성화됨
  • 가중치가 클 수록 해당 신호가 그만큼 더 중요함을 의미

단순한 논리 회로

  • 위의 식 2.1로 AND, NAND, OR 게이트를 표현할 수 있다.
    • 퍼셉트론의 구조는 세 가지 게이트 모두 같다.
    • 다른 곳은 매개변수(가중치와 임계값)의 값 뿐이다.
  • AND게이트에서 (w1,w2,θ)(w_1,w_2, \theta) 조합 예시 : (0.5, 0.5, 0.7)
  • 기계학습은 w1,w2w_1, w_2의 조합을 컴퓨터가 자동으로 구하게 된다.
  • 학습이란 적절한 매개변수 값을 정하는 작업이며, 사람은 퍼셉트론의 구조(모델)를 고민하고 컴퓨터에 학습할 데이터를 주는 일을 한다.

퍼셉트론 구현하기

  • python으로 AND게이트 구현
    • NAND, OR 게이트는 위의 코드에서 가중치와 편향 값을 조절하기만 하면 된다.
    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  
            
  • 가중치와 편향 도입
    • 식 2.1에 θ\thetab-b로 치환하면 식 2.2처럼 변경된다.
    • bb는 값에 따라 원하는 대로 yy를 0, 1로 만들 수 있기 때문에 편향(bias)이라고 한다.
      • 뉴런이 얼마나 쉽게 활성화하는가를 조정한다.

다층 퍼셉트론

  • XOR 게이트의 경우 위의 단층 퍼셉트론으로는 구현할 수 없다.
  • 퍼셉트론은 층을 쌓아 다층 퍼셉트론으로 만들 수 있다.
  • 코드로 구현하면 다음과 같다.
      def XOR(x1, x2):
          s1 = NAND(x1, x2)
          s2 = OR(x1, x2)
          y = AND(s1, s2)
          return y
  • 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
  • 층을 늘려가며 학습하는 것을 딥러닝이라고 한다.

NAND에서 컴퓨터까지

  • 퍼셉트론은 층을 거듭 쌓으면 비선형적인 표현이 가능하며 훨씬 더 복잡한 회로도 만들 수 있다.
  • 실제로 NAND 게이트의 조합만으로 컴퓨터를 만들 수 있다.
profile
🐥공부 기록 블로그🐥

0개의 댓글