반응형
3-3 손실 함수와 경사 하강법의 관계
- 가중치에 대하여 제곱 오차 미분하기
y_hat = x_i * w + b
err = y_i - y_hat
w_rate = x_i
w = w +w_rate *err
- 절편에 대하여 제곱 오차 미분하기
err = y_i - y_hat
b = b+1 *err
3-4 선형 회귀를 위한 뉴런
- Neuron 클래스 만들기
1. init()메서드 작성하기
def __init__(self):
self.w = 1.0
self.b =1.0
2. 정방향 계산 만들기
def forpass(self, x):
y_hat = x * self.w + self.b
return y_hat
3. 역방향 계산 만들기
def backprop(self, x, err):
w_grad = x * err
b_grad = 1 * err
return w_grad, b_grad
4. Neuron 클래스
class Neuron:
def __init__(self):
self.w = 1.0
self.b =1.0
def forpass(self, x):
y_hat = x * self.w + self.b
return y_hat
def backprop(self, x, err):
w_grad = x * err
b_grad = 1 * err
return w_grad, b_grad
5. 훈련을 위한 fit() 메서드 구현하기
def fit(self, x, y, epochs=100):
for i in range(epochs):
y_hat = self.forpass(x_i)
err = -(y_i - y_hat)
w_grad, b_grad = self.backprop(x_i, err)
self.w -= w_grad
self.b -= b.grad
6. 모델 훈련하기(학습시키기)
neuron = Neuron()
neuron.fit(x, y)
7. 학습이 완료된 모델의 가중치와 절편 확인하기
plt.scatter(x, y)
pt1 = (-0.1, -0.1 * neuron.w + neuron.b)
pt2 = (0.15, 0.15 * neuron.w + neuron.b)
plt.plot([pt1[0], pt2[0]], [pt1[1], pt2[1]])
plt.xlabel('x')
plt.ylabel('y')
plt.show()
※ 해당 내용은 <Do it! 딥러닝 입문>의 내용을 토대로 학습하며 정리한 내용입니다.
반응형
'딥러닝 학습' 카테고리의 다른 글
4장 분류하는 뉴런 만들기-이진 분류 (2) (0) | 2023.03.04 |
---|---|
4장 분류하는 뉴런 만들기-이진 분류 (1) (0) | 2023.03.03 |
3장 머신러닝 기초 다지기-수치 예측 (1) (0) | 2023.03.01 |
2장 최소한의 도구로 딥러닝 시작 (0) | 2023.02.28 |
1장 딥러닝 소개 (0) | 2023.02.27 |