반응형

퍼셉트론이란?

 

 

퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 것을 의미한다.

 

이때 퍼셉트론은 0 또는 1로 나타낼 수 있고, 0은 신호가 흐르지 않는 상태 반대로 1은 신호가 흐르는 상태를 의미한다.

 

위의 그림은 입력으로 2개의 신호를 받은 퍼셉트론이다.

 

즉, x1과 x2는 입력 신호, y는 출력 신호, w1과 w2는 가중치를 의미한다.

 

이때 원을 뉴런이라 부르고

 

입력 신호가 뉴런에 보내질 때는 가중치가 곱해지는데 이때 뉴런에서 보내온 신호의 총합이 특정 한계를 넘어야 1을 출력한다.

 

그런 한계를 임계값이라 하고 기호는 θ로 나타낸다.

 

수식은 다음과 같다.

이를 통해 알 수 있는 것은 퍼셉트론에서 여러 입력 신호에 대해 고유한 가중치가 존재하는데,

가중치가 클수록 그에 해당하는 신호의 중요도가 더 높다는 것을 의미한다.

 

 

이때 θ를 왼쪽 식으로 옮기면 w1x2 + w2x2 - θ가 되고 이를 θ를 b(bias, 편향)으로 치환하면 w1x2 + w2x2 + b가 된다.

이제 우리는 이 식을 다음과 같이 해석 할 수 있다.

-> 퍼셉트론은 입력 신호 * 가중치 + 편향으로 나타낼 수 있고 이 값이 0을 넘으면 발현(1로)나타나고 그렇지 않으면 0이 나타난다.

 

이 수식을 이제 직접 코딩해보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import numpy as np
 
x1 = float(input("x1 :: "))
x2 = float(input("x2 :: "))
 
= np.array([x1,x2])
= np.array([0.5,0.6])
= -0.4
 
# w1x1 + w2x2 + b
ret = np.sum(w*x) + b
 
if ret <= 0:
    print(0)
else:
    print(1)
    
'''
  x1 :: 0.3
  x2 :: 0.4
  0
'''
cs

 

 

 

이때 b라는 편향은 이전에 세타와 같았던 것이므로 b를 넘지 못하면 0, 넘으면 1이 된다는 것을 생각해볼 수 있다.

 

 

 

퍼셉트론의 한계

 

퍼셉트론을 이용하여 뉴런을 표현 할 수 있었지만 사실상 단순 퍼셉트론으로는 직선적인 내용들 밖에 표현해내지 못한다.

 

따라서 여러 층을 쌓는 다층 퍼셉트론을 이용하는 방법을 통해 퍼셉트론의 한계를 극복해낼 수 있다.

반응형