Goal of Machin Learning
- 주어진 데이터를 가장 잘 설명하는 모델을 찾아라
Steps of Machine Learning
- Step 1: 여러 종류의 모델 중에서 하나를 선택
- Step 2: 함수가 주어진 데이터에 가장 잘 부합하도록 가중치를 잘 조정한다.
가장 잘 설명하는 모델이란?
- 주어진 데이터와 오류를 최소화하는 함수
- 오류는 오차, RSS, ...
가장 잘 설명하는 모델을 찾는 방안
- 주어진 데이터와 오류를 최소화하는 함수를 임의로 정한다.
- Residual Sum of Square 꼴로 변환한다.
- 모든 가중치 축으로 편미분한 값이 0이 되는 가중치를 찾는다.
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from numpy as np
x = np.array([[0, 1, 1, 2]]).T
y = np.array([0, 1, 2, 1])
poly_regressor = PolynomialFeatures(degree = 2)
X_poly = poly_regressor.fit_transform(X)
poly_regressor.fit(X_poly, y)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
print(lin_reg.coef_)
Gradient Descent Method
- Step
- Randomly chose an initial solution, W
- Repeat
- 예시)
# 가중치 임의로 생성
w2 <- 2
w1 <- 1
w0 <- 0
# 에타를 0.01로 설정
etha <- 0.01
# 반복횟수는 10000회!
n <- 10000
run_time <- 0
while (run_time < n) {
run_time = run_time + 1
new_w0 <- w0 - (etha * (8 *w0 + 8 *w1 + 12*w2 - 8)) # E'/w0' 사용
new_w1 <- w1 - (etha * (12*w1 + 20*w2 + 8 *w0 - 10)) # E'/w1' 사용
new_w2 <- w2 - (etha * (36*w2 + 20*w1 + 12*w0 - 14)) # E'/w2' 사용
w0 <- new_w0
w1 <- new_w1
w2 <- new_w2
print(paste0(run_time, " ", w2," ", w1," ", w0))
}
# 가중치 반올림하여 출력
round(w2,2)
round(w1,2)
round(w0,2)
'DataScience > DeepLearning' 카테고리의 다른 글
[딥러닝 필기] week6. CNN Basics: Convolution (0) | 2022.03.27 |
---|---|
[딥러닝 필기] week6. Deep Learning-Various Technique: Batch Normalization (0) | 2022.03.27 |
[딥러닝 필기] week6. Deep Learning-Various Technique: Dropout (0) | 2022.03.27 |
[딥러닝 필기] week3. Neural Networks - Learning Algorithm (0) | 2022.03.05 |
[딥러닝 필기] week2. Neural Networks Overview (0) | 2022.03.01 |