[DL] 퍼셉트론

    * 본 내용은 딥러닝을 공부하며 정리한 내용들입니다. 혹여나 잘못 서술되어있는 지식들은 바로잡아주시면 감사하겠습니다. 

     

    퍼셉트론(perceptron)

    : 다수의 신호를 입력으로 받아 하나의 신호를 출력

    * 신호 : 전류와 같은 흐름, 퍼셉트론에서는 흐른다/안 흐른다(1/0)으로 구분 가능

     

    입력이 2개인 퍼셉트론 

    - x1, x2는 입력신호, y는 출력신호, w1, w2는 가중치 신호

    - 그림의 원을 뉴런 혹은 노드라 칭함.

    - 뉴런에 전해진 입력 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력한다. (='뉴런이 활성화한다')

    * 한계값 = 임계값, θ로 나타냄.

    그림으로 나타낸 퍼셉트론 & 퍼셉트론의 수식

     

     

    퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치를 부여하는데, 이는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용함.
    (=가중치 클수록 더 중요하다!) (신호를 전류에 비유하여 생각한다면 가중치는 저항과 같은 것이라고 생각하면 된다.)

     


    단순한 논리 회로

    1. AND 게이트

    - 입력이 둘이고 출력은 하나.

    - 두 입력이 모두 1일 때만 1을 출력하고, 외에는 모두 0을 출력

    X1 X2 Y
    0 0 0
    1 0 0
    0 1 0
    1 1 1

     

    다음과 같은 예시가 AND 게이트를 만족한다고 할 수 있다.

    AND 게이트에서 가장 중요한 부분은 x1과 x2 모두가 1일 때만 가중 신호의 총합이 주어진 임계값을 웃돌게 된다는 점이다. 

     

    2. NAND 게이트

    NAND = Not AND (➡️ AND 게이트의 출력을 뒤집은 것이라고 생각하면 된다 !)

    X1 X2 Y
    0 0 1
    1 0 1
    0 1 1
    1 1 0

     

    - AND 게이트를 구현하는 매개변수의 부호를 모두 반전하기만 하면 NAND 게이트가 된다.

     

    다음과 같은 예시가 NAND 게이트를 만족한다고 할 수 있다.

     

    3. OR 게이트

    - 입력 신호 중 하나 이상이 1이면 1을 출력

    X1 X2 Y
    0 0 0
    1 0 1
    0 1 1
    1 1 1

     

    다음과 같은 예시가 OR 게이트를 만족한다고 할 수 있다.

     

    ➡️ 세 가지 게이트 모두 퍼셉트론 구조가 같다. 이 세 가지 게이트에서 다른 것은 매개변수(가중치와 임계값이) 값뿐이다.

    매개변수의 값만 잘 조정한다면 AND, NAND, OR을 변경할 수 있다.

     

    4. XOR 게이트

    - '베타적 논리합'

    - x1과 x2 중 한 쪽이 1일 때만 1을 출력한다.

    X1 X2 Y
    0 0 0
    1 0 1
    0 1 1
    1 1 0

     

    XOR 게이트는 지금까지 본 퍼셉트론으로는 구현할 수 없다. 두 개의 선형 분류기를 만들거나 선형이 아닌 비선형으로 만들어야지 퍼셉트론 구현이 가능하지만, 직선 하나로 나눌 수는 없다. 

     

    다음의 예시를 통해보면 XOR 게이트를 더 잘 이해할 수 있을 것이다. 

    동그라미와 세모를 직선 하나로 나눌 수 없고, 곡선으로 나누어야 가능하다.

    출처 : 밑바닥부터 시작하는 딥러닝

     

    여기서 퍼셉트론의 한계를 확인할 수 있다. 직선 하나로 나눈 영역만 표현할 수 있다는 것이다. 

    이러한 점을 해결하기 위해 등장한 것이 바로 '다층 퍼셉트론'이다. (지금까지 본 게이트들은 모두 단층 퍼셉츠론에 해당하는 것이다.)

     

    기존의 AND, NAND, OR을 적절히 조합해 XOR 게이트로 만들어보자. 기호로 표현하면 다음과 같다. 

    출처 : 밑바닥부터 시작하는 딥러닝

     

    AND, NAND, OR을 적절히 조합해 물음표 안을 채운다고 생각해보자. 

     

    출처 : 밑바닥부터 시작하는 딥러닝

    위 기호 구성처럼 만들 수 있을 것이다. x1과 x2는 NAND와 OR 게이트의 입력이 되고, NAND와 OR의 출력이 AND 게이트의 입력으로 이어지게 되면 XOR 게이트로 만들 수 있는 것이다. 

    진리표로 나타내면 다음과 같다. 

    입력 (INPUT) 출력 (OUTPUT)
    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

     

     

    XOR 게이트의 퍼셉트론을 표현하면 다음과 같다. 

    출처 : 밑바닥부터 시작하는 딥러닝

    위와 같은 퍼셉트론을 2층 퍼셉트론이라하고, 층이 여러 개인 퍼셉트론을 통틀어 '다층 퍼셉트론'이라고 한다. 

    2층 퍼셉트론에서 신호가 전달되는 과정을 서술해본다면,
    1) 0층의 두 뉴런이 입력 신호를 받아 1층의 뉴런으로 신호를 보내고,
    2) 1층의 뉴런이 2층의 뉴런으로 신호를 보내고, 2층의 뉴런은 y를 출력한다. 

     

    정리하자면, 단층 퍼셉트론으로 표현하지 못한 것을 층을 하나 늘려 XOR 게이트를 구현할 수 있으며, 이처럼 퍼셉트론은 층을 깊게 쌓을수록 더 복잡한 부분을 표현할 수 있다. 

     


     

    Reference

     

    밑바닥부터 시작하는 딥러닝 - 예스24

    직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서 이 책은 라이브러리나 프레임워크에 의존하지 않고, 딥러닝의 핵심을 ‘밑바닥부터’ 직접 만들어보며 즐겁게 배울 수 있는 본격 딥

    m.yes24.com

     

    'DL' 카테고리의 다른 글

    [DL] 딥러닝의 학습 방법  (1) 2023.12.26

    댓글