본문 바로가기

그 땐 AI했지/그 땐 DeepLearning했지

[TAVE/밑딥] ch02 퍼셉트론 | 03 퍼셉트론 구현하기

728x90

참고자료: 밑바닥부터 시작하는 딥러닝

 

1.  간단한 구현부터


def AND(x1, x2):
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1 * w1 + x2 * w2
    if tmp <= theta:
        return 0 
    elif tmp > theta:
        return 1

👉🏻앞선 논리회로를 파이썬으로 구현하면 다음과 같다.

 

2.  가중치와 편향 도입


이전에 구현한 코드를 수정해보자!

👉🏻여기서 b는 편향이다.

import numpy as np
x = np.array([0, 1])
w = np.array([0.5, 0.5])
b = -0.7
print(np.sum(w * x) + b)
#-0.19999999999999996

 

3.  가중치와 편향 구현하기


import numpy as np

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 게이트이다.

def NAND(x1, x2):
  x = np.array([x1, x2])
  w = np.array([-0.5, -0.5]) #AND와는 가중치 (w와 b)만 다르다!
  b = 0.7
  tmp = np.sum(w * x) + b
  if tmp <= 0:
    return 0
  else:
    return 1

def OR(x1, x2):
  x = np.array([x1, x2])
  w = np.array([0.5, 0.5])
  b = -0.2 #AND와는 b만 다르다!
  tmp = np.sum(w * x) + b
  if tmp <= 0:
    return 0
  else:
    return 1

👉🏻NAND와 OR 게이트이다. 모두 같은 구조의 퍼셉트론이다.

 

 

728x90