밑바닥부터 시작하는 딥러닝1 책을 공부하면서 (개인 책이 아니기 때문에) 메모할 내용들을 여기에 적기위해서 작성
내용은 퍼셉트론(2장) 부분을 공부 중에 있음
w1, w2라고 하는 가중치는 각 입력 신호가 결과에 주는 영향력(중요도)을 조절하는 매개변수
뉴런이 얼마나 쉽게 활성화하느냐를 조정하는 매개변수
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))
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))
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은 위 그래프처럼 x1과 x2 중 하나가 1일 때만 1을 출력하는데 이것을 퍼센트론으로 나타내는 것은 불가능하다.
위 그림은 OR 게이트를 시각화 해낸 그림이다.
초록색으로 색칠된 삼각형은 출력이 1일 때, 노란색 원형은 0을 출력할 때인데 이것을 빨간색 선과 같이 선형적으로 영역을 나눌 수 있다.
반면 XOR은,
똑같이 초록색으로 색칠된 삼각형은 출력 1을 의미하고, 노란색 원형은 0을 출력할 때인데 직선으로 나누는 것은 불가능하고 빨간색 점선으로 비선형 형태로 나눌 수가 있다.