15-3. 프로젝트 6
[프로젝트 6] 경사하강법 - numpy활용
1. 목표
v 경사하강법을 위한 데이터 분리
v 경사하강법 구현을 위한 train, weight, bias 정리
v 경사하강법 구현
2. 코드구현
1. 코드 구현: 경사하강법을 위한 데이터 분리
import numpy as np
xy = np.array([[1., 2., 3., 4., 5., 6.],
[10., 20., 30., 40., 50., 60.]])
## 코드시작 ##
x_train = ... # ... 에 알맞은 코드를 작성해보세요.
y_train = ... # ... 에 알맞은 코드를 작성해보세요.
## 코드종료 ##
print(x_train, x_train.shape)
print(y_train, y_train.shape)
각 출력은 다음과 같이 나와야 합니다.
더보기
정답
import numpy as np
xy = np.array([[1., 2., 3., 4., 5., 6.],
[10., 20., 30., 40., 50., 60.]])
## 코드시작 ##
x_train = xy[0,:] # ... 에 알맞은 코드를 작성해보세요.
y_train = xy[1,:] # ... 에 알맞은 코드를 작성해보세요.
## 코드종료 ##
print(x_train, x_train.shape)
print(y_train, y_train.shape)
2. 코드 구현: train, weight, bias 정리
## 코드시작 ##
## 코드종료 ##
print(beta_gd, bias)
각 출력의 결과는 다음과 같습니다.(NumPy의 Random을 사용할 것이기 때문에 숫자는 다를 수 있다.)
더보기
정답
## 코드시작 ##
[beta_gd, bias] = np.random.rand(2,1)
## 코드종료 ##
print(beta_gd, bias)
3. 코드 구현: 경사하강법 구현
learning_rate = 0.001
## 코드시작 ##
for i in range(1000):
## 코드종료 ##
출력의 결과는 다음과 같이 나와야 합니다.
더보기
정답
learning_rate = 0.001
## 코드시작 ##
for i in range(1000):
pred = beta_gd * x_train + bias
cost = ((y_train - pred)**2).mean()
beta_gd = beta_gd - learning_rate * ((pred - y_train) * x_train).mean()
bias = bias - learning_rate * (pred - y_train).mean()
## 100회마다 출력 ##
if(i % 100 == 0):
print("Epoch ( {:>3}/1000) cost: {:0.6f}, w: {:0.6f}, b: {:0.6f}".format(i,cost,beta_gd,bias))
## 코드종료 ##
reference
: https://blockdmask.tistory.com/424
© NAVER Connect Foundation. All Rights Reserved
'취업준비 > 인공지능' 카테고리의 다른 글
[AI Tech] 4주차 18차시 통계학 맛보기 (0) | 2024.02.06 |
---|---|
[AI Tech] 4주차 17차시 확률론 맛보기 (0) | 2024.02.05 |
[AI Tech] 3주차 16-2차시 Quiz 6 (0) | 2024.02.03 |
[AI Tech] 3주차 16-1차시 딥러닝 학습방법 이해하기 (0) | 2024.02.03 |
[AI Tech] 3주차 15-2차시 경사하강법 연습 (1) | 2024.02.02 |