머신러닝 & 딥러닝/기초 이론

[머신러닝/딥러닝 기초] 6. 퍼셉트론의 한계와 다층 퍼셉트론(multi-layer perceptr)

by seokii 2022. 2. 9.
728x90
반응형

퍼셉트론 이론과 간단 구현 - 2

https://seokii.tistory.com/55

 

5. 퍼셉트론(Perceptron) 이론과 간단 구현 - 2

퍼셉트론 이론과 간단 구현 - 1 https://seokii.tistory.com/54?category=1054781 4. 퍼셉트론(Perceptron) 이론과 간단구현 - 1 지난 포스팅 https://seokii.tistory.com/52 3. 머신러닝을 하면서 주의해야 할 6..

seokii.tistory.com

지난 글에서 퍼셉트론의 가중치와 편향에 대해서 정리하며 NAND 게이트와 OR 게이트를 구현했습니다.

이번에는 퍼셉트론의 한계와 다층 퍼셉트론에 대해서 정리하겠습니다.

 

퍼셉트론의 한계

앞선 글들에서 AND, NAND, OR 게이트를 구현했었는데, XOR 게이트를 살펴보며 퍼셉트론의 한계에 대해서 알아보겠습니다.

XOR 게이트는 위의 사진과 같습니다.

XOR 게이트의 진리표를 좌표로 시각화 해보면 다음과 같습니다.

AND와 OR 게이트와는 달리, XOR 게이트는 직선 하나로 영역을 나눌 수 없습니다.

퍼셉트론은 직선 하나로 나눈 영역만 표현할 수 있다는 한계가 있습니다.

하지만, 위와 같은 곡선이라면 나눌 수 있습니다.

위 이미지와 같은 곡선의 영역을 비선형 영역, 직선의 영역을 선형 영역이라고 합니다.

선형, 비선형이라는 말은 머신러닝 분야에서 자주 쓰이는 용어로 위와 같은 이미지를 떠올리시면 됩니다.

 

다층 퍼셉트론

위에서 퍼셉트론으로는 XOR 게이트를 표현할 수 없었습니다.

그러나, 층을 여러개 쌓아 다층 퍼셉트론(multi-layer perceptron)을 구현한다면 위의 문제를 쉽게 해결할 수 있습니다.

AND, NAND, OR 게이트를 사용해 XOR 게이트를 구현한 모습입니다.

NAND의 출력을 \(s_{1}\), OR의 출력을 \(s_{2}\)로 하여 진리표를 만들면 오른쪽의 이미지와 같습니다.

\(y\)를 확인하면 XOR 게이트의 출력과 같은 것을 확인할 수 있습니다.

다음은 XOR 게이트의 구현 코드입니다. ( NAND, OR, AND 함수는 이전 글들을 참고해주세요. )

 

구현 코드

def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y

print(XOR(0,0))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(1,1))

결과

0
1
1
0

XOR 게이트는 위의 이미지와 같은 다층 구조의 네트워크입니다.

이전 글들에서 볼 수 있었던 퍼셉트론과 형태가 다릅니다.

이처럼 층이 여러 개인 퍼셉트론을 다층 퍼셉트론이라 합니다.

다시 말해 단층 퍼셉트론으로는 표현하지 못한 것을 층을 하나 늘려 구현할 수 있었습니다.

더 층을 쌓는다면, 더 다양한 것을 표현할 수 있습니다.

 

 

728x90
반응형

댓글