Perceptron 이란?
다수의 신호를 입력으로 받아 하나의 신호를 출력한다.
AND 게이트
>>> 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
...
>>> AND(0,0)
0
>>> AND(1,0)
0
>>> AND(0,1)
0
>>> AND(1,1)
1
+ 가중치(weight)와 편향(bias) 도입
가중치 (w1, w2)는 "각 입력 신호가 결과에 주는 영향력(중요도)을 조절하는 매개변수"
편향(bias)은 "뉴런이 얼마나 쉽게 활성화(결과 1) 하느냐를 조정하는 매개변수"
>>> import numpy as np
>>> x = np.array([0,1])
>>> w = np.array([0.5, 0.5])
>>> b = -0.7
>>> w*x
array([0. , 0.5])
>>> np.sum(w*x)
np.float64(0.5)
>>> np.sum(w*x) + b
np.float64(-0.19999999999999996)
def AND(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
tmp = np.sum(x*w)+b
if tmp < 0:
return 0
else:
return 1
NAND 게이트
AND게이트와 가중치만 다르다.
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
tmp = np.sum(x*w)+b
if tmp <= 0:
return 0
else:
return 1
OR 게이트
AND게이트와 w, b가 다름.
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(x*w)+b
if tmp <= 0:
return 0
else:
return 1
=> AND, NAND, OR 게이트는 모두 같은 구조의 퍼셉트론이고, 가중치 매개변수의 값만 다르다.
'신기술 > AI' 카테고리의 다른 글
[밑바닥딥러닝1] 5장 오차역전파법 (0) | 2024.07.13 |
---|---|
[밑바닥딥러닝1] 4장 신경망 학습 - 오차제곱합, 교차 엔트로피 오차 (0) | 2024.06.23 |
[밑바닥딥러닝1] 3장 신경망 - 활성화함수(계단 함수, 시그모이드 함수, ReLU 함수) (0) | 2024.06.22 |