전공/딥러닝

[DL] 퍼셉트론(Perceptron)이란?

mhiiii 2024. 12. 2. 17:34
728x90

퍼셉트론이란?

  • 퍼셉트론은 프랑크 로젠블라트가 1957년에 고안한 알고리즘
  • 신경망(딥러닝)의 기원이 되는 알고리즘
  • 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사
퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력

 

퍼셉트론은 전류가 전선을 타고 전자를 내보내듯 퍼셉트론도 신호도 흐름을 만들고 정보를 앞으로 전달

 

다만, 실제 전류와 달리 퍼셉트론 신호는 '흐른다/안 흐른다(1이나 0)'의 두가지 값을 가짐

 

 

그림 2-1은 입력으로 2개의 신호를 받은 퍼셉트론의 예

 

$x_1$과 $x_2$는 입력 신호, $y$는 출력 신호, $w_1$과 $w_2$는 가중치를 표현

 

그림의 원은 '뉴런' 혹은 '노드'라고 부름

 

 

 

 

입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해짐

가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용 

 

뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력 (활성화되었다고 표현) 

 

이때, 그 한계를 임계값(threshold)이라 하며 $\theta$ 기호로 나타냄

 

우리는 계단 함수를 통해 이것을 표현할 수 있음

 

계단 함수

 

이렇게 뉴런에서 출력값을 변경시키는 함수를 활성화 함수(Activation Function)라고 함

 

 

$$if \sum_i^{n} W_{i}x_{i}\ ≥ \theta → y=1$$

 

$$if \sum_i^{n} W_{i}x_{i}\ < \theta → y=0$$

 

 

 

 

 

 

 

초기 인공 신경망 모델인 퍼셉트론은 활성화 함수로 계단 함수를 사용하였지만,

그 뒤에 등장한 여러가지 발전된 신경망들은 계단 함수 외에도 여러 다양한 활성화 함수를 사용하기 시작

 

퍼셉트론의 활성화 함수는 계단 함수이지만 여기서 활성화 함수를 시그모이드 함수로 변경하면
방금 배운 퍼셉트론은 곧 이진 분류를 수행하는 로지스틱 회귀와 동일함

 

다시 말하면 로지스틱 회귀 모델이 인공 신경망에서는 하나의 인공 뉴런으로 볼수 있음 

 

 

지금까지 배운 단층 퍼셉트론은 입력층출력층으로 이루어져 있음

단층 퍼셉트론은 값을 보내는 단계과 값을 받아서 출력하는 두 단계로만 구성 

 

이러한 특징으로 단층 퍼셉트론의 한계를 알 수 있음 

 

단층 퍼셉트론의 한계

 

이 단층 퍼셉트론은 AND, NAND, OR 게이트를 쉽게 구현 가능하지만 단층 퍼셉트론으로 XOR 게이트는 구현이 불가능

 

AND

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

NAND

def NAND_gate(x1, x2): # ~AND
    w1=-0.5
    w2=-0.5
    b=0.7
    result = x1*w1 + x2*w2 + b
    if result <= 0:
        return 0
    else:
        return 1

OR

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

 

XOR 게이트는 입력값 두 개가 서로 다른 값을 갖고 있을때에만 출력값이 1이 되고,

입력값 두 개가 서로 같은 값을 가지면 출력값이 0이 되는 게이트

 

단층 퍼셉트론은 직선 하나로 두 영역을 나눌 수 있는 문제에 대해서만 구현이 가능하기 때문에 XOR 게이트 구현 불가

 

 

 

 

 

 

 

 

 

 

 

 

사실 XOR 게이트는 직선이 아닌 곡선. 비선형 영역으로 분리하면 구현이 가능

 

XOR 게이트는 기존의 AND, NAND, OR 게이트를 조합하면 만들 수 있음

 

 

 

이 그림은 곡선을 사용한다면 하얀색 원과 검은색 원을 나눌 수 있음을 보여줌

 

 

어떻게 비선형 영역으로 분리할 수 있을까??

 

바로 퍼셉트론의 층을 좀 더 쌓으면 XOR 게이트 구현할 수 있음 

 

 

 

 

 

 

 

단층 퍼셉트론은 입력층과 출력층만 존재하지만, 다층 퍼셉트론은 중간에 층을 더 추가하였음 

 

이렇게 입력층과 출력층 사이에 존재하는 층을 은닉층(hidden layer)라고 함

 

다층 퍼셉트론의 자세한 내용은 다음 글에 !! 

 

 

References

https://wikidocs.net/60680

 

06-02 퍼셉트론(Perceptron)

인공 신경망은 수많은 머신 러닝 방법 중 하나입니다. 하지만 최근 인공 신경망을 복잡하게 쌓아 올린 딥 러닝이 다른 머신 러닝 방법들을 뛰어넘는 성능을 보여주는 사례가 늘면서, …

wikidocs.net

밑바닥부터 시작하는 딥러닝

 

 

728x90