Commit 39c28eaa authored by KangMin An's avatar KangMin An
Browse files

Update : 일부 주석 추가 및 수정.

parent edecea14
...@@ -48,7 +48,7 @@ class LinearRegression: ...@@ -48,7 +48,7 @@ class LinearRegression:
def cost_MAE(self, x, y, w, b): def cost_MAE(self, x, y, w, b):
''' '''
### 비용 함수 ### 비용 함수
- MAE (Mean Square Error) : 1/n * sigma|y_i - y_hat_i| - MAE (Mean Absolute Error) : 1/n * sigma|y_i - y_hat_i|
''' '''
y_predict = self.predict(x, w, b) y_predict = self.predict(x, w, b)
n = y_predict.shape[1] n = y_predict.shape[1]
...@@ -81,6 +81,14 @@ class LinearRegression: ...@@ -81,6 +81,14 @@ class LinearRegression:
return w_grad, b_grad return w_grad, b_grad
def gradientDescent(self): def gradientDescent(self):
'''
### 경사 하강법
- Linear Regression Class의 주요 동작 함수 입니다.
- 가중치와 편향을 비용함수에 넘겨준 뒤 손실을 계산합니다.
- 가중치와 편향의 각각의 편미분 값을 계산합니다.
- 편미분 값들과 학습률을 이용해 가중치와 편향 값을 갱신 합니다.
- 위의 과정을 주어진 손실 값 이하가 되거나 3000번 반복 할 때 까지 반복합니다.
'''
iteration = 0 iteration = 0
...@@ -88,11 +96,11 @@ class LinearRegression: ...@@ -88,11 +96,11 @@ class LinearRegression:
b = self.bias b = self.bias
while iteration <= 3000: while iteration <= 3000:
loss = self.cost_MSE(self.train_x, self.train_t, w, b)
grad_w, grad_b = self.gradient( grad_w, grad_b = self.gradient(
self.train_x, self.train_t, self.delta, w, b) self.train_x, self.train_t, self.delta, w, b)
loss = self.cost_MSE(self.train_x, self.train_t, w, b)
if iteration % 100 == 0: if iteration % 100 == 0:
print(iteration, " iters - cost :", loss) print(iteration, " iters - cost :", loss)
print("Gradients - W :", grad_w, ", b : ", grad_b) print("Gradients - W :", grad_w, ", b : ", grad_b)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment