[0부터 만드는 Deep Learning] 퍼셉트론으로 AND 게이트, OR 게이트, NAND 게이트를 알기 쉽게 구현해 보았다

소개



이 기사는 처음부터 만드는 딥 러닝 3장 퍼셉트론을 자신 나름대로 이해하고 알기 쉽게 출력한 것입니다.
문계의 스스로도 이해할 수 있었으므로, 기분을 편하게 읽어 주시면 다행입니다.
또, 본서를 학습할 때에 참고해 주시면 더욱 기쁩니다.

AND 게이트, OR 게이트, NAND 게이트란?



이러한 게이트는 퍼셉트론을 바탕으로 만들 수 있는 선별기와 같은 것으로, 정해진 조건에 합치했을 때만 1을 출력해 그 이외는 0을 출력합니다. 간단하게 말하면, 기능을 고정한 퍼셉트론이나 기능을 제한한 퍼셉트론이라고도 할 수 있습니다.

AND 게이트는 두 개의 입력 신호가 모두 1 인 경우에만 1을 출력합니다.


OR 게이트는 두 개의 입력 신호 중 하나 이상이 1 일 때 1을 반환합니다.


NAND 게이트는 AND 게이트의 반대로 두 개의 입력 신호가 모두 1이면 0을 반환합니다.


이러한 게이트는 퍼셉트론의 파라미터를 변경하는 것만으로 구현할 수 있으므로 구조 자체를 변경할 필요가 없습니다.
이것이 퍼셉트론의 좋은 곳이며, 이 장점을 살려 신경망을 구현해 나갈 것입니다.

실제로 구현해보기



이번의 구현에서는 퍼셉트론의 파라미터의 하나인 투치 대신에 바이어스라고 하는 파라미터를 사용해 갑니다.
이유는 퍼셉트론을 신경망으로 진화시키는 것을 생각하면 바이어스가 더 적합하기 때문입니다.

그러나 바이어스는 싸움에 부정적인 영향을 미쳤기 때문에 전혀 어렵지 않습니다.
실제로 바이어스를 사용한 퍼셉트론을 그림으로 표현해 보겠습니다.

식이 조금 바뀔 뿐이므로 어렵지는 않습니다.

AND 게이트 구현
def AND_b(x1,x2):
    x = np.array([x1,x2])#入力信号
    w = np.array([0.5,0.5])#重み
    b = -0.7#バイアス
    newlon = x*w
    newlon = newlon.sum()
    if newlon + b > 0:
        return 1
    elif newlon + b <= 0:
        return 0

OR 게이트 구현
def OR_b(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.4
    newlon = x*w
    newlon = newlon.sum()
    if newlon + b > 0:
        return 1
    elif newlon + b <= 0:
        return 0

NAND 게이트 구현
def NAND_b(x1,x2):
    x = np.array([x1,x2])
    w = np.array([-0.5,-0.5])
    b = 0.7
    newlon = x*w
    newlon = newlon.sum()
    if newlon + b > 0:
        return 1
    elif newlon + b <= 0:
        return 0

좋은 웹페이지 즐겨찾기