티스토리 뷰
Numpy만을 이용해 경사하강법을 구현합니다.
import numpy as np
import matplotlib.pyplot as plt
X = np.array([0.0, 1.0, 2.0])
y = np.array([3.0, 3.5, 5.5])
W = 0 # 기울기
b = 0 # 절편
lrate = 0.01 # 학습률
epochs = 1000 # 반복 횟수
n = float(len(X)) # 입력 데이터의 개수
# 경사 하강법 실행
for i in range(epochs):
y_pred = W * X + b # 예측값
dW = (2 / n) * sum(X * (y_pred - y))
db = (2 / n) * sum(y_pred - y)
W = W - lrate * dW # 기울기 수정
b = b - lrate * db # 절편 수정
# 기울기와 절편을 출력한다.
print(W, b)
# 예측값을 만든다.
y_pred = W * X + b
# 입력 데이터를 그래프 상에 찍는다.
plt.scatter(X, y)
# 예측값은 선그래프로 그린다.
plt.plot([min(X), max(X)], [min(y_pred), max(y_pred)], color='red')
plt.show()
1.2532418085611319 2.745502230882486
감사합니다.
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'인공지능' 카테고리의 다른 글
[인공지능] 딥러닝 express 연습문제 4장 (1) | 2022.09.08 |
---|---|
[인공지능] Sklearn + Numpy만으로 퍼셉트론 구현하기 (1) | 2022.09.07 |
[인공지능] Numpy 기본 사용 + 딥러닝 express 연습문제 2장 (0) | 2022.09.01 |
[인공지능] 딥러닝과 Python 라이브러리 (0) | 2022.08.30 |
[인공지능] 하이퍼 파라미터 (에포크/배치/학습률/옵티마이저/손실함수/활성화함수) (0) | 2022.08.09 |
댓글