2.1 퍼셉트론이란?
- 다수의 신호를 입력으로 받아 하나의 신호를 출력
- 신호 : 흐름을 만들고 정보를 앞으로 전달
- 0 : 신호가 흐르지 않는다 /1: 신호가 흐른다
- 노드(뉴런), 가중치, 임계값으로 구성
- 임계값 : 뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력
2.2 단순한 논리 회로
X1 X2 : 입력 신호
y : 출력 신호
2.2.1 AND 게이트
두 입력이 모두 1일 때만 1 출력, 그 외에는 0 출력
2.2.2 NAND 게이트와 OR 게이트
NAND : 두 입력이 모두 1일 때만 0 출력, 그 외에는 1 출력
OR : 입력 신호 중 하나 이상이 1이면 출력 1
2.3 퍼셉트론 구현하기
2.3.2 가중치와 편향 도입
b (편향) : 뉴런이 얼마나 쉽게 활성화되느냐를 제어 (-임계값)
ex) b가 -20이면 각 입력 신호에 가중치를 곱한 값들의 합이 20을 넘지 않으면 뉴런 활성화x
import numpy as np
#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
#NAND 게이트 구현
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5]) #AND와는 가중치만 다름
b = 0.7
tmp = np.sum(w*x) +b
if tmp <=0:
return 0
else:
return 1
#OR 게이트 구현
def OR(x1, x2):
x = np.array([x1,x2])
w = np.array([0.5, 0.5]) #AND와는 가중치만 다름
b = -0.2
tmp = np.sum(w*x)+b
if tmp <= 0 :
return 0
else:
return 1
2.4 퍼셉트론의 한계
2.3.1 XOR 게이트
입력값 중 한쪽이 1일 때만 1 출력
-> 선형(단층 퍼셉트론)으로 불가능 : 비선형
2.5 다층 퍼셉트론
2.5.1 기존 게이트 조합
NAND 게이트와 OR 게이트 -> AND 게이트의 조합으로 XOR 구현 가능
10 10
01 01
00 11
2.5.2 XOR 게이트 구현
def XOR (x1, x2):
s1 = NAND(x1, x2)
s2 = OR (x1, x2)
y = AND(s1, s2)
return y
- 다층 퍼셉트론
- 0층의 듀 뉴런이 입력 신호를 받아 1층의 뉴런(NAND, OR)으로 신호 보냄
- 1층의 뉴런이 2층의 뉴런(AND)으로 신호를 보내고, 2층의 뉴런은 y 출력
2.6 NAND에서 컴퓨터까지
- 단층 퍼셉트론은 직선형 영역만 표현 가능, 다층 퍼셉트론은 비선형 영역도 표현 가능
- 다층 퍼셉트론은 이론상 컴퓨터 표현 가능
책 참고 : 밑바닥부터 시작하는 딥러닝 (한빛미디어)
'딥러닝 > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
6장 : 학습 관련 기술들 (0) | 2023.09.15 |
---|---|
5장 : 오차역전파법 (0) | 2023.09.13 |
4장 : 신경망 학습 (0) | 2023.09.06 |
3장 : 신경망 (0) | 2023.09.05 |
1장 : 헬로 파이썬 (0) | 2023.09.02 |