데이터로그😎

[MLP] 02. 단층(SLP), 다층 퍼셉트론 (MLP) 본문

딥러닝

[MLP] 02. 단층(SLP), 다층 퍼셉트론 (MLP)

지연v'_'v 2023. 11. 28. 15:40

퍼셉트론의 개념에 대한 글은 아래 링크에서 확인 가능합니다.

 

[딥러닝] 01. 퍼셉트론의 개념

❓딥러닝 딥러닝은 머신러닝의 한 분야입니다. 인간의 뇌 구조에서 영감을 받아 구축된 "인공 신경망"을 사용하여 복잡한 패턴 및 특징을 학습하고 이해하는 데 중점을 둔 기술입니다. ❓인공

fine-1004.tistory.com


단층 퍼셉트론이란 (SLP, Single Layer Perceptron)

  • 단층 퍼셉트론은  "값을 보내고" "값을 받는" 두 단계로만 이루어져 있습니다.
  • 즉, 입력층(input layer)와 출력층(output layer)로만 이루어져 있습니다.
  • 단층 퍼셉트론에서 구현 가능한 게이트는 총 3가지입니다.
    • 구현 가능한 게이트: AND, NAND, OR
    • 구현 불가능한 게이트: XOR

 

① AND

  • 입력이 모두 참(1)일 때에만 참(1)을 출력하는 논리 게이트
  • A입력  B입력 출력
    0 0 0
    0 1 0
    1 0 0
    1 1 1
  • def AND(x1, x2):
    	x = np.array([x1,x2])
        w = np.array([0.5,0.5]) # 임의로 넣은 것
        b = -0.7
        
        tmp = np.sum(w*x)+b # 계산
        
        if tmp <= 0:
        	return 0
        else:
        	return 1
            
            
    >> AND(0,0) = 0
    >> AND(0,1) = 0
    >> AND(1,0) = 0
    >> AND(1,1) = 1

 

NAND

  • "NOT AND"의 약어입니다. 이는 두 입력이 모두 참(1)일 때에만 거짓(0)을 출력하는 논리 연산을 수행합니다.
  •  NOT AND : AND와 w,b의 부호를 반대로 설정
  • A입력  B입력 출력
    0 0 1
    0 1 1
    1 0 1
    1 1 0

NAND gate

 

 

 

③ OR

  • 입력 중 하나 이상이 참(1)이면 참(1)을 출력하는 논리 게이트
  • b를 적절히 조절해서 구함
  • A입력  B입력 출력
    0 0 0
    0 1 1
    1 0 1
    1 1 1

OR gate

 

 

단층 퍼셉트론의 문제점

  • 단층 퍼셉트론은 선형 문제만 풀 수 있기 때문에, XOR문제와 같이비선형적인결정 경계가 필요한 문제는 단층 퍼셉트론으로는 풀 수 없다. .
  • 선형 문제란?
    • 클래스를 나눌 수 있는 문제
    • 예를 들어,두 개의 클래스를 나누는 결정 경계가 직선인 경우가 해당됨.
    • 1차 방정식. 
  • XOR 
    • XOR (배타적 논리합)은 비선형 문제.
    • 두 입력 비트가 같으면 0을 출력하고, 다르면 1을 출력하는 논리 함수.

    • A입력 B입력 출력
      1 1 0
      0 1 1
      1 0 1
      0 0 0
    • 아래 그림처럼 XOR는 비선형적 그래프가 그려진다. OR는 직선 하나로 TRUE, FALSE의 구분이 가능하지만, XOR는 직선 하나로 구분, 해결하기가 어렵다. 따라서, 비선형으로 구분해야 한다.
    • 즉, 곡선으로 또는 직선을 여러개 그어서 TRUE, FALSE값을 구분해야 한다.
    • 직선을 여러개 그어보자! 라는 개념이 바로 "퍼셉트론을 여러개 조합해보자" 라는 것이다. 이는 Multi Layer Perceptron인 MLP를 의미한다.

다층 퍼셉트론이란 , MLP(Multi-Layer Perceptrone)

  • XOR게이트는 기존의 AND, NAND, OR를 조합해서 만듦(층을 더 쌓는것)
  • 입력, 출력층만 갖고 있는 단층 퍼셉트론과는 달리 은닉층(hidden layer) 존재.
  • x1, x2가 NAND에 들어간 결과물 S1
  • x1, x2가 OR에 들어간 결과물 S2
  • 이 결과물 S1, S2을 AND에 다시 넣으면 y가 나옴

XOR 게이트