Chapter2 는 퍼셉트론에 대한 내용이다.
오늘은 퍼셉트론 알고리즘에 대해 알아보도록 하겠다.
퍼셉트론이 신경망의 기원이 되는 알고리즘이기때문에 퍼셉트론의 구조를 배우는 것은 신경망과 딥러닝으로 나아가는데 중요한 아이디어를 배우는 일이된다고 서술되어있다...
나는 그거는 잘 모르겠고.. 책에나오니까 그냥 보겠다.
**퍼셉트론은 다수의 신호를 입력받아 하나의 신호를 출력한다.
그림의 원을 뉴런 혹은 노드라고 부릅니다.
입력신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해집니다. (x1*w1, x2*w2)
뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설때만 1을 출력
y = 0 (w1x1 + w2x2 <= 임계값) 또는 1 (w1x1+w2x2 > 임계값) 을 출력한다.
>> 가중치가 클수록 해당 신호가 그만큼 더 중요함을 뜻한다.
다음 내용은 논리회로인데 이건 넘어간다.
[퍼셉트론 구현하기]
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
print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))
[가중치와 편향 도입]
임계치(theta)를 -b로 치환하면 퍼셉트론 동작이
y = 0 (b+w1x1 + w2x2 <= 0) 또는 1 (b+w1x1+w2x2 > 0) 이 된다.
여기서 b를 편향이라고 한다.
import numpy as np
x = np.array([0,1]) #입력
w = np.array([0.5, 0.5]) #가중치
b = -0.7 #편향
print(w*x)
print(np.sum(w*x))
print(np.sum(w*x)+b)
import numpy as np
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))
지금까지 AND게이트를 사용한 가중치와 편향 도입이었다.
'My record' 카테고리의 다른 글
인프런 영리한 프로그래밍을 위한 알고리즘 강좌 (0) | 2021.01.24 |
---|---|
2020년 3회 정처기 자격증 후기 (0) | 2021.01.21 |
밑바닥부터 시작하는 딥러닝#Chapter1,45page (0) | 2019.10.30 |
밑바닥부터 시작하는 딥러닝#Chapter,42page (0) | 2019.10.21 |
덕성여대 멋사 세션후기 (0) | 2019.05.18 |