[DL] AND / NAND / OR 가중치 편향 구현
작성계기
밑바닥부터 시작하는 딥러닝1 책을 공부하면서 (개인 책이 아니기 때문에) 메모할 내용들을 여기에 적기위해서 작성
내용은 퍼셉트론(2장) 부분을 공부 중에 있음
가중치와 편향
가중치 (weight)
w1, w2라고 하는 가중치는 각 입력 신호가 결과에 주는 영향력(중요도)을 조절하는 매개변수
편향(bias)
뉴런이 얼마나 쉽게 활성화하느냐를 조정하는 매개변수
AND 게이트
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
print(AND(0, 0))
print(AND(0, 1))
print(AND(1, 0))
print(AND(1, 1))
NAND 게이트
def NAND(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
print(NAND(0, 0))
print(NAND(0, 1))
print(NAND(1, 0))
print(NAND(1, 1))
OR 게이트
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
print(OR(0, 0))
print(OR(0, 1))
print(OR(1, 0))
print(OR(1, 1))
퍼셉트론 한계
XOR 게이트
XOR은 위 그래프처럼 x1과 x2 중 하나가 1일 때만 1을 출력하는데 이것을 퍼센트론으로 나타내는 것은 불가능하다.
위 그림은 OR 게이트를 시각화 해낸 그림이다.
초록색으로 색칠된 삼각형은 출력이 1일 때, 노란색 원형은 0을 출력할 때인데 이것을 빨간색 선과 같이 선형적으로 영역을 나눌 수 있다.
반면 XOR은,
똑같이 초록색으로 색칠된 삼각형은 출력 1을 의미하고, 노란색 원형은 0을 출력할 때인데 직선으로 나누는 것은 불가능하고 빨간색 점선으로 비선형 형태로 나눌 수가 있다.
Author And Source
이 문제에 관하여([DL] AND / NAND / OR 가중치 편향 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@u_jinju/DL-AND-NAND-OR-가중치-편향-구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)