[인공지능] 퍼셉트론

SeoTae·2022년 7월 12일
0

인공지능

목록 보기
4/11
post-thumbnail

퍼셉트론

퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다.
이것은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한 알고리즘으로 고대 화석과도 같은 알고리즘이다. 그런데 이것을 지금 우리가 배우는 이유는 퍼셉트론이 신경망(딥러닝)의 기원이 되는 알고리즘이기 때문이다.

입력이 2개인 퍼셉트론의 예이다. x1과 x2는 입력신호, y는 출력신호이고, w1, w2는 가중치를 뜻한다.
그림에서의 원은 뉴런 또는 노드라고도 부른다. 입력신호는 가중치가 곱해져서 더해진다. 이 값이 정해놓은 값(임계값 θ)를 넘으면 1을 출력한다.

입력이 2개인 퍼셉트론의 기본꼴은
y = (x1w1) + (x2 w2) < θ (θ : 임계값) 일때는 y = 0이고
y = (x1w1) + (x2 w2) >= θ (θ : 임계값) 일때는 y = 1이된다.

가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용한다. 가중치가 클수록 해당 신호가 그만큼 더 중요하다는 것을 의미함.

퍼셉트론의 예

퍼셉트론을 이해하는데 쉬운 예는 단순 논리 회로이다. 하나만 보자면 AND 게이트이다.

AND 게이트


AND 게이트의 진리표는 다음과 같다.
진리표에서 x, y가 있는데 x를 x1, y를 x2로 생각하면 된다. 예로
(w1,w2,θ) = (0.5, 0.5, 0.7)일때 AND 게이트의 조건을 만족한다.

이런식으로 해서 NAND와 OR 게이트도 퍼셉트론으로 구현이 가능하다.(단, (w1,w2,θ)의 값을 다르게 해야만 함.)

구현

AND 게이트를 파이썬으로 구현하면 다음과 같다.

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

AND(0,0) # 0
AND(1,1) # 1	    

그러나 여기에 편향이 존재를 한다.

편향(b)

편향은 노드의 민감도를 조정하거나 활성화를 조정하는 역할을 한다. 가중치만으로 세밀한 조정이 되지 않은 부분에서 편향을 주어 조정이 가능하다.

편향을 도입한 식은 다음과 같다.
y = b + (x1w1) + (x2 w2) < θ (θ : 임계값) 일때는 y = 0이고
y = b + (x1w1) + (x2 w2) >= θ (θ : 임계값) 일때는 y = 1이된다.

profile
Vamos🔥🔥🔥🔥🔥

0개의 댓글