본문 바로가기
Deep Learning

[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 2-2 : 퍼셉트론의 한계 및 다중 퍼셉트론

by 단깅수 2024. 1. 24.
728x90

이번에 소개할 내용은 밑시딥 2장의 뒷부분 퍼셉트론의 한계와 다중 퍼셉트론이다.

 

저번 내용은 퍼셉트론의 개념, AND, NAND, OR 게이트를 설명했다.

 

1. 이 3가지 논리 회로를 구현할 수 있었지만 배타적 논리합이라는 XOR 게이트를 만들 경우에는 한계가 발생한다.

  • XOR 게이트의 진리표
    • 어느 한쪽이 1일 때만 1을 출력한다.
x1 (입력값) x2 (입력값) y (출력값)
0 0 0
1 0 1
0 1 1
1 1 0

 

  • 이를 직선 형태의 퍼셉트론으로 구현하는 것은 불가능하다.
  • 즉, 저 4개의 점을 1개의 직선만으로 구분하는 것이 불가능하다는 의미이다.
  • 그렇다면 어떻게 해야 할까?
  • 아래에서 알아보자

이미지 출처 : https://velog.io/@skyepodium/%ED%8D%BC%EC%85%89%ED%8A%B8%EB%A1%A0%EC%9D%B4-%EC%99%9C-XOR-%EB%AC%B8%EC%A0%9C%EB%A5%BC-%EB%AA%BB%ED%91%B8%EB%8A%94%EC%A7%80-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

 

 


2. 선형과 비선형

  • 직선 형태(선형)로 나눌 수 없다면 비선형으로 나누면 될 것이다.

이미지 출처 : https://kolikim.tistory.com/13

 

 

 

 

 

 

 

 

 


3. 다층 퍼셉트론 개념 및 XOR 게이트

 

x1 (입력값) x2 (입력값) s1 (중간 신호) s2 (중간 신호) y (출력값)
0 0 1 0 0
1 0 1 1 1
0 1 1 1 1
1 1 0 1 0

4. XOR 게이트 구현

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

print(XOR(0, 0)) # 0을 출력
print(XOR(0, 1)) # 1을 출력
print(XOR(1, 0)) # 1을 출력
print(XOR(1, 1)) # 0을 출력

5. 정리

  • 퍼셉트론은 입출력을 갖춘 알고리즘이다. 입력을 주면 정해진 규칙에 따른 값을 출력한다.
  • 퍼셉트론에서는 '가중치'와 '편향'을 매개변수로 설정한다.
  • 퍼셉트론으로 AND, OR 게이트 등의 논리 회로를 표현할 수 있다.
  • XOR 게이트는 단층 퍼셉트론으로는 표현할 수 없다.
  • 2층 퍼셉트론을 이용하면 XOR 게이트를 표현할 수 있다.
  • 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
  • 다층 퍼셉트론은 (이론상 시그모이드 함수를 이용하면) 컴퓨터를 표현할 수 있다.

[밑시딥 2장 참조]

728x90