딥러닝 | Deep Learning

퍼셉트론 | Perceptron

sungkshon 2024. 8. 27. 02:59
반응형

1. 퍼셉트론이란?

👉다수의 신호를 입력받아 입력값과 가중치를 곱해 출력값이 임계값보다 높으면 1을 출력하고 그렇지 않으면 0을 출력하는 것을 말합니다.

다수의 신호를 입력으로 받아 하나의 신호를 출력합니다. 신호는 흐른다(1), 안 흐른다(0)의 두가지 값을 가질 수 있습니다.

위의 사진은 n개의 신호를 받은 퍼셉트론의 예 입니다. x는 입력값, w(weight)는 가중치, y는 출력값을 나타냅니다.

뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력합니다. 그 한계를 임계값 (threshold) 이라고 합니다.

임계값을 수식으로 표현할 때는 보통 세타(Θ)로 표현합니다. 식으로 표현하면 다음과 같습니다.

이러한 함수를 계단 함수(Step Function)이라고 하며, 아래 그래프는 계단 함수의 예를 보여줍니다.

2. 단순한 논리 회로

2.1 AND 게이트

 AND 게이트 진리표를 만족하는 매개변수 조합은 무한히 많습니다. (w1, w2, Θ)가 (0.5, 0.5, 0.7)일때, 또 (0.5,0.5,0.8)이나 (1.0,1.0,1.0)때 모두 AND게이트의 조건을 만족합니다. 매개변수를 이렇게 설정하면 x1과 x2모두가 1일 때만 가중 신호의 총합이 주어진 임계값을 웃돌게 됩니다.

2.2 NAND 게이트

X1 x2 y
0 0 1
1 0 1
0 1 1
1 1 0

두 개의 입력값이 1인 경우에만 출려값이 0, 나머지 입력값의 쌍(Pair)에 대해서는 모두 출력값이 1이 나옵니다.

사실 AND게이트를 구현하는 매개변수의 부호를 코두 반전하면 NAND게이트가 됩니다.

2.3 OR 게이트

X1 x2 y
0 0 0
1 0 1
0 1 1
1 1 1

3. 퍼셉트론 구하기

3.1 가중치와 평향 도입

Θ를 -b로 치환하면 퍼셉트론의 동작이 아래의 식처럼 됩니다. 여기에서 b를 편향(bias)이라 하며w1,w2는 그대로 가중치(weight)입니다.

np.sy

np.sum() 메서드는 입력한 배열에 담긴 모든 원소의 총합을 계산합니다.

3.2 가중치와 평향 구하기

가중치와 편향을 도입한 AND 게이트는 다음과 같이 구할 수 있습니다.

여기에서 -Θ가 편향b로 치환되었습니다. 그리고 편향은 가중치 w1, w2와 기능이 다르다는 사실에 주의합시다.

w1,w2는 각 입력 신호가 결과에 주는 영향력(중요도)들 조절하는 매개변수이고, 편향은 뉴런이 얼마나 쉽게 활성화(결과로 1을 출력)하느냐를 조정하는 매개변수 입니다.

 

NAND와 OR게이트를 구현해봅시다.

4. 퍼셉트론의 한계

4.1 XOR 게이트

XOR게이트는 입력값 두 개가 서로 다른 값을 가지고 있을때만 출력값이 1이 되고, 입력갑 두 개가 서로 같은 값을 가지면 출력값이 0이 되는 게이트 입니다.

시각화 해보면 위와 같습니다.

하얀색 원과 검은색 원을 직선 하나로 나누는 것은 불가능하므로 단층 퍼셉트론으로는 XOR을 구현할 수 없습니다.

적어도 두 개의 선이 필요합니다.

이를 어떻게 해결할 수 있을까요? 바로 다층 퍼셉트론 입니다.

5. 다층 퍼셉트론(MultiLayer Perceptron, MLP)

XOR게이트를 만드는 방법은 다양합니다. 그중 하나는 앞서 만든 AND, NAND, OR 게이트를 조합하는 방법입니다. 퍼셉트론 관점에서 말하면 층을 더 쌓으면 만들 수 있습니다.

단층 퍼셉트론은 입력층과 출력층만 존재하지만, 다층 퍼셉트론은 중간에 층을 더 추가하였다는 점입니다. 이렇게 입력층과 출력층 사이에 존재하는 층을 은닉층(hidden layer)이라고 합니다. 

다층 퍼셉트론은 본래 은닉층이 1개 이상인 퍼셉트론을 말합니다. 아래와 같이 은닉층이 2개 이상인 신경망을 심층 신경망(Deep Neural Network, DNN)이라고 합니다. 심층 신경망은 다층 퍼셉트론만 이야기하는 것이 아니라, 여러 변형된 다양한 신경망들도 은닉층이 2개 이사잉 되면 심층 신경망이라고 합니다.

 이제는 기계가 가중치를 스스로 찾아내도록 자동화시켜야하는데, 이것이 머신 러닝에서 말하는 훈련(training) 또는 학습(learning) 단계에 해당됩니다. 손실 함수(Loss function) 옵티마이저(Optimizer)를 사용합니다. 

그리고 만약 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 딥 러닝(Deep Learning)이라고 합니다.

반응형