본문 바로가기
Artificial intelligence

[AI] 단층 퍼셉트론 (Single-layer Perceptron)

by @__100.s 2021. 9. 23.
반응형

퍼셉트론이란?

  • 퍼셉트론(perceptron)은 1957년 코넬 항공 연구소(Cornell Aeronautical Lab)의 프랑크 로젠블라트(Fank Rosenblatt)가 제안한 초기 형태의 인공 신경망이다.
  • 로젠블라트에 의해 제안된 것은 가장 간단한 형태의 단층 퍼셉트론(single-layer perceptron)으로 입력 벡터를 두 부류로 구분하는 선형 분류기이다.
  • 퍼셉트론은 다수의 신호(흐름이 있는)를 입력으로 받아 하나의 신호를 출력한다. 퍼셉트론은 이 신호를 입력으로 받아 '흐른다/안 흐른다'(1 또는 0)이라는 정보를 앞으로 전달한다.

위의 그림에서,

  • x는 입력 신호, y는 출력 신호, w는 가중치(weight)를 의미한다.
  • 원을 뉴런 또는 노드라고 부른다.
  • 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다.
    • 퍼셉트론은 각각의 입력 값에 고유한 가중치가 존재하는데, 가중치는 각 입력 값이 결과에 주는 영향력을 조절하는 요소로 작용하며, 가중치가 클수록 해당 입력값이 중요하다는 것을 의미한다.
  • 뉴런에서 전달받은 신호의 총합이 임계값Θ(threshold)을 넘을 때만 1을 출력한다.

이것을 수식으로 나타내면, 아래와 같다.

위의 식에서 임계값을 좌변으로 넘기고, 편향 b(bias)로 표현할 수도 있다. 편향 b 또한 퍼셉트론의 입력으로 사용된다. 보통 그림으로 표현할 때는 입력 값이 1로 고정되고 편향 b가 곱해지는 변수로 사용한다.

→ Rosenblatt의 퍼셉트론 알고리즘에서 x0은 실제 훈련 데이터의 특성 값과는 무관하며 x0의 초기값으로 보통 1을 할당한다. 퍼셉트론 알고리즘에서 x0을 바이어스라고 부른다. 따라서 실제 훈련 데이터의 특성 값은 x1부터 시작한다고 보면 된다.

[예제] 퍼셉트론의 동작 - OR 논리 게이트 분류 문제

2차원 특징 벡터로 표현되는 샘플을 4개 가진 훈련 집합 

를 생각하자. 다음 그림은 이 데이터를 보여준다.

샘플 4개를 하나씩 입력하여 제대로 분류하는지 확인해 보자.

결국 퍼셉트론은 샘플 4개를 모두 맞추었다. 이 퍼셉트론은 훈련 집합을 100% 성능으로 분류한다고 할 수 있다.

def OR_gate(x1, x2):
    w1=1.0
    w2=1.0
    b=-0.5
    result = x1*w1 + x2*w2 + b
    if result <= 0:
        return 0
    else:
        return 1

참고

반응형