728x90
반응형
1. 순전파 : y=x1*w1+x2*w2+1*b
x1,x2=2,3
w1,w2=3,4
b=1
y=x1*w1+x2*w2+1*b
y
2. 평균 제곱 오차 : E=(y-yT)*(y-yT)/2
yT=27
E=(y-yT)**2/2
E
3. 역전파 오차 : yE=y-yT
yE=y-yT
yE
4. 입력 역전파 : x1E=yE*w1, x2E=yE*w2
5. 가중치, 편향 순전파 : y=x1*w1+x2*w2+1*b, y=w1*x1+w2*x2+b*1
6. 가중치, 편향 역전파 : w1E=yE*x1, w1E=yE*x2 / bE=yE*1
w1E=yE*x1
w2E=yE*x2
bE=yE*1
(w1E,w2E,bE)
7. 신경망 학습 : w1-=lr*w1E, w2-=lr*w2E, b-=lr*bE
lr=0.01
w1=w1-lr*w1E
w2=w2=lr*w2E
b=b-lr*bE
(w1,w2,b)
예제 1. 딥러닝 학습 반복 수행하기
x1,x2=2,3
w1,w2=3,4
b=1
yT=27
lr=0.01
for epoch in range(200):
y=x1*w1+x2*w2+1*b
E=(y-yT)**2/2
yE=y-yT
w1E=yE*x1
w2E=yE*x2
bE=yE*1
w1-=lr*w1E
w2-=lr*w2E
b=b-lr*bE
print(f'epoch={epoch}')
print(f'y:{y:.3f}')
print(f'w1:{w1:.3f}')
print(f'w2:{w2:.3f}')
print(f'b:{b:.3f}')
if E < 0.0000001:
break
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[딥러닝] 딥러닝 인공 신경망 구현하기 연습문제 1 (0) | 2023.10.28 |
---|---|
[딥러닝] 딥러닝 동작원리 2입력 2출력 인공 신경망 구현하기 (0) | 2023.10.28 |
[딥러닝] 딥러닝 동작 원리 7가지(순전파, 역전파 등) (0) | 2023.10.28 |
[딥러닝] 알고리즘 파이썬 기반 XOR의 AND, NAND, OR 구현하기 (0) | 2023.10.27 |
[딥러닝] 알고리즘 파이썬 기반 편향 개념의 AND, NAND, OR 구현하기 (0) | 2023.10.27 |