AND, OR gate
def AND_gate(x1, x2):
x = np.array([x1, x2])
weight = np.array([0.5, 0.5])
bias = -0.6
y = np.matmul(x, weight)+bias
return Step_Function(y)
def OR_gate(x1, x2):
x = np.array([x1, x2])
weight = np.array([0.5, 0.5])
bias = -0.1
y = np.matmul(x, weight)+bias
return Step_Function(y)
def Step_Function(y):
x = 0 if y<0 else 1
return x
NAND, NOR gate
def AND_gate(x1, x2):
x = np.array([x1, x2])
weight = np.array([0.5, 0.5])
bias = -0.6
y = -(np.matmul(x, weight)+bias)
return Step_Function(y)
def OR_gate(x1, x2):
x = np.array([x1, x2])
weight = np.array([0.5, 0.5])
bias = -0.1
y = -(np.matmul(x, weight)+bias)
return Step_Function(y)
def Step_Function(y):
x = 0 if y<0 else 1
return x
AND, OR에서 가중합 부분을 부호 변환해준다.
- 이 단층 퍼셉트론을 이용해 다층 퍼셉트론을 구현할 수 있다.
XOR_gate
def XOR_gate(x1, x2):
and_1 = NAND_gate(x1, x2)
and_2 = OR_gate(x1, x2)
out = AND_gate(and_1, and_2)
return out
이러한 형태의 XOR gate를 NAND, OR, AND gate를 이용해 바꿀 수 있다.
참고 : LG Aimers
'AI > 기계학습' 카테고리의 다른 글
딥러닝 학습의 문제점 (0) | 2024.05.22 |
---|---|
텐서플로우(Tensorflow)와 딥러닝 학습 (1) | 2024.05.20 |
퍼셉트론 (0) | 2024.05.20 |
머신러닝과 딥러닝의 차이 (0) | 2024.05.20 |
회귀 총정리 (0) | 2024.05.13 |