ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 퍼셉트론(1)
    AI 모델(딥러닝 기초)/1. 퍼셉트론 2022. 12. 18. 11:43
    728x90

    ※ 퍼셉트론이란?

    - 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 것. 흐름을 만들고 정보를 앞으로 전달하는 역할

     

    x1과 x2 : input 신호

    y : output 신호

    w1과 w2 : 가중치(weight) - 영향력 조절 요소, 클수록 강한 신호

    원 : 노드(뉴런)

    theta : 임계값

     

    input 신호가 뉴런에 보내질 때 각각 고유한 가중치를 곱한다.

    신호의 총합이 정해진 한계(임계값)를 넘어설 때만 1을 출력한다.

     

    y = 0 (w1*x1 + w2*x2 ≤ theta)

          1 (w1*x1 + w2*x2 > theta)

     

    #퍼셉트론 모형
    
    import numpy as np
    
    x = np.array([0, 1])
    w = np.array([0.5, 0.5])
    b = -0.7
    
    y = np.sum(w*x) + b
    print(y)

     

    ※ AND, NAND, OR 게이트

    - 일반적인 AND연산, OR연산, XOR연산과 방식은 동일하다. 매개변수 값의 설정을 통해서 게이트를 구현한다.

    - theta => -b로 치환

    y = 0 (w1*x1 + w2*x2 + b ≤ 0)

          1 (w1*x1 + w2*x2 + b > 0)

     

    - b : 편향(bias) -> 뉴런이 얼마나 쉽게 활성화 되느냐를 조정하는 매개변수

    ex) b가 0.1이면 뉴런 활성화가 쉬운 것. b가 20.0이면 0.1에 비해 뉴런 활성화가 어려운 것.

    - w : 가중치(weight) -> 각 입력 신호가 결과에 주는 영향력(중요도)을 조절하는 매개변수

     

    # AND 게이트 구현
    
    def AND(x1, x2):
        x = np.array([x1, x2])
        w = np.array([0.5, 0.5])
        b = -0.7
        temp = np.sum(w*x) + b
        if temp <= 0:
            return 0
        else:
            return 1
    # NAND 게이트 구현
    
    def NAND(x1, x2):
        x = np.array([x1, x2])
        w = np.array([-0.5, -0.5])
        b = 0.7
        temp = np.sum(w*x) + b
        if temp <= 0:
            return 0
        else:
            return 1
    # OR 게이트 구현
    
    def OR(x1, x2):
        x = np.array([x1, x2])
        w = np.array([0.5, 0.5])
        b = -0.2
        temp = np.sum(w*x) + b
        if temp <= 0:
            return 0
        else:
            return 1

     

    AND, NAND, OR 게이트의 출력 시 위와 같은 결과를 얻을 수 있었다. 편향(b), 가중치(w), input(x)의 매개변수 값을 통해서 각 연산 게이트를 만들고 퍼셉트론을 구현해 볼 수 있었다.

    728x90

    'AI 모델(딥러닝 기초) > 1. 퍼셉트론' 카테고리의 다른 글

    1. 퍼셉트론(2)  (0) 2022.12.20
Designed by Tistory.