본문 바로가기
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개의 직선만으로 구분하는 것이 불가능하다는 의미이다.
  • 그렇다면 어떻게 해야 할까?
  • 아래에서 알아보자

 

 

 


2. 선형과 비선형

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

 

 

 

 

 

 

 

 

 


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

  • 또 다른 해결방법으로는 다층 퍼셉트론이 있다.
  • 다층 퍼셉트론이란?
    • 다층 퍼셉트론(Multilayer perceptron, MLP)은 퍼셉트론을 여러층 쌓은 순방향의 인공 신경망이다. 입력(input layer)과 은닉층(hidden layer)과 출력층(output layer)으로 구성된다. 각 층에서는 활성함수를 통해 입력을 처리한다. [위키백과 참조
    • 층을 쌓아서 단층 퍼셉트론의 한계를 해결할 수 있다.
  • 다층 퍼셉트론의 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 게이트를 표현할 수 있다.
  • 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
  • 다층 퍼셉트론은 (이론상 시그모이드 함수를 이용하면) 컴퓨터를 표현할 수 있다.
 

[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 3-1 : 신경망과 활성화 함수

이번에 소개할 내용은 단층 퍼셉트론의 한계를 해결한 인공신경망과 활성화함수에 대한 이야기입니다. 저번 포스팅 내용은 퍼셉트론의 한계 및 다중 퍼셉트론에 대해서였습니다. [딥러닝] 밑

dangingsu.tistory.com

 

728x90
반응형