위 영상을 참고하여 작성
퍼셉트론
: 다수의 입력을 받으면 하나의 결과를 내보내는 알고리즘으로 구성 (0 or 1로 출력)
딥러닝의 기본 아이디어 - 퍼셉트론
- x : 입력 값
- w : 가중치 ; 해당 입력값의 중요도
- b : 편향 ; 결과값을 얼마나 쉽게 활성화 할 지, 얼마나 쉽게 1을 출력할 것인지를 돕기 위한 값
활성화 함수 (계단 함수)
if wx+b > 0:
return 1
else:
return 0
AND, OR, NOT 논리게이트로 만든 덧셈 계산기
퍼셉트론 구현하기 by 퍼셉트론
w1=1
w2=1
b=1
def perceptron(x1, x2):
y=w1*x1+w2*x2+b
if y>0:
return 1
else:
return 0
for x1, x2 in [(0,0), (0,1), (1,0), (1,1)]:
print("입력 : ", x1,",", x2, ' 출력 : ', perceptron(x1, x2))
가중치 바꿔서 AND, OR 게이트 구현하기
- AND 게이트
- OR 게이트
단일 퍼셉트론의 XOR 문제
XOR : 같으면 0, 다르면 1 출력
-> 직선으로 이을 수 없음 => 다층 퍼셉트론 으로 해결
다층 퍼셉트론 (MLP)
2층, 3개로 구현한 XOR 게이트
def p1(x1, x2):
w1=1
w2=1
b=0
y=w1*x1+w2*x2+b
if y>0:
return 1
else:
return 0
def p2(x1, x2):
w1=1
w2=1
b=-1
y=w1*x1+w2*x2+b
if y>0:
return 1
else:
return 0
def p3(x1, x2):
w1=1
w2=-2
b=0
y=w1*x1+w2*x2+b
if y>0:
return 1
else:
return 0
for x1, x2 in [(0,0), (0,1), (1,0), (1,1)]:
print("입력 : ", x1,",", x2, ' 출력 : ', p3(p1(x1, x2), p2(x1, x2)))
퍼셉트론의 한계
- 가중치를 자동화하여 업데이트 할 수 있는 방법이 없다.
'ML & DL & Data Science' 카테고리의 다른 글
[데이터마이닝] Numpy 기본 사용법 (0) | 2022.06.22 |
---|---|
[딥러닝] MNIST 손글씨 예측 (0) | 2022.06.22 |
[딥러닝] 딥러닝의 학습과 평가 (0) | 2022.06.21 |
[딥러닝] 딥러닝의 개요 (0) | 2022.06.21 |
데이터마이닝 VS 머신러닝 (0) | 2022.06.21 |