본문 바로가기
Tech Development/Deep Learning (CNN)

Perceptrons, Equations, and Gates

by JK from Korea 2022. 10. 8.

Date : 2022.04.24

 

*The contents of this book is heavily based on Stanford University’s CS231n course.

 

[퍼셉트론 Perceptron]

퍼셉트론은 딥러닝 신경망의 기원이 되는 개념이다.

 

퍼셉트론 : 인공뉴런. 다수의 신호를 입력으로 받아 하나의 신호를 출력한다.

 

여기서의 신호는 전류와 같이 흐름이 있는 것이다. 퍼셉트론 신호는 2 가지의 상태를 띌 수 있다. 0과 1, 혹은 안흐른다/흐른다로 구분된다.

 

Perceptron

 

퍼셉트론의 환경에는 대개 입력 신호 x1, x2, x3, … , xn, 그리고 출력 신호 y1, y2, y3, … , yn, 그리고  가중치 w1, w2, w3, … , wn의 변수들이 있다. 각각의 신호 (입력/출력)는 뉴런 혹은 노드라고 불린다. 입력 신호에 고유의 가중치가 곱해지고, 곱해진 값의 총합이 임계값보다 크면 출력 노드가 활성화 되는 구조로 작동한다.

 

Perceptron Activation Equation

 

가중치 (Weight Variable)은 입력층 신호가 얼마나 중요한지를 의미한다. 입력 신호 x에 따라서 출력 신호 y의 활성화 여부가 달라진다. 가중치를 임의로 정하고 x1과 x2에 따라서 출력이 어떻게 변하는지 Truth Table로 알 수 있다. 여기서 Truth Table은 생략하고 이를 파이썬으로만 구현했다.

 

AND Truth Table

 

위에 구현한 것은 AND 게이트이고, 밑에는 변형된 식을 기반으로 NAND와 OR 게이트를 구현할 것이다. 앞서 본 퍼셉트론 활성화 수식에서 임계값을 -b (편향, Bias)라는 변수로 치환한다.

 

Perceptron Equation w/ Bias

 

식에 포함된 변수들의 역할과 퍼셉트론의 개념을 같이 이해해야 한다.

 

  1. w (weight) : 가중치. 입력 신호가 결과에 주는 영향력/중요도를 조절하는 매개변수이다.
  2. b (bias) : 편향. 뉴런이 얼마나 쉽게 활성화 되느냐를 정하는 매개변수이다.

 

AND, NAND, OR gates

 

여기까지는 선형 수학을 사용했다. 직선으로 이루어진, 혹은 나뉘어진 영역을 표현하는 것이 한계이다. 그렇다면 곡선 영역을 다루는 비선형 문제는 어떻게 해결하고 구현할까? 퍼셉트론을 여러개의 층으로 쌓아서 만든 다층 퍼셉트론 (multi-layer perceptron)을 사용한다. 다층 퍼셉트론으로는 간단한 XOR 게이트부터 컴퓨터까지 구현 가능하다. 컴퓨터는 정보를 처리하는 기계이다. 컴퓨터도 마치 퍼셉트론처럼 입력과 출력으로 구성된 특정 규칙대로 계산을 수행할 수 있다는 것이다.

 

앞으로 우리는 비선형 함수인 시그모이드 함수를 활성화 함수로 사용해서 신경망을 구축해 나갈거다. 다음 포스트는 퍼셉트론의 상위 버전인 신경망을 다룰 것이다.

 

728x90
반응형

댓글