처음부터 SGD 구현

블로그

Stochastic Gradient Descent를 구현하기 전에 Gradient Descent가 무엇인지 이야기합시다.

Gradient Descent Algorithm은 최적화 문제를 해결하는 데 사용되는 반복 알고리즘입니다. 거의 모든 기계 학습 및 딥 러닝 모델에서 기울기 하강법은 알고리즘 학습을 개선하는 데 적극적으로 사용됩니다.

이 블로그를 읽고 나면 Gradient Descent Algorithm이 실제로 어떻게 작동하는지 알게 될 것입니다. 이 블로그의 끝에서 우리는 맞춤형 SGD 구현을 SKlearn의 SGD 구현과 비교할 것입니다.

Mini-Batch SGD에서 매개변수는 훈련 세트의 하위 집합에 대한 오차 기울기를 계산한 후 업데이트됩니다.

Kaggle의 Boston Housing Dataset을 예로 들어 보겠습니다.

먼저 필요한 모든 라이브러리를 가져옵니다.

import warnings warnings.filterwarnings('ignore') from sklearn.datasets import load_boston from random import seed from random import randrange from csv import reader from math import sqrt from sklearn import preprocessing import pandas as pd import numpy as np import matplotlib.pyplot as plt from prettytable import PrettyTable from sklearn.linear_model import SGDRegressor from sklearn import preprocessing from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split

이제 데이터 세트를 로드합니다. 여기서 X는 우리가 가지고 있는 데이터 세트를 포함하고 Y는 예측해야 하는 레이블을 포함합니다.

X = load_boston().data Y = load_boston().target

데이터 누출 문제를 피하기 위해 확장하기 전에 데이터를 분할해야 합니다.

신디케이터를 구입하는 방법
# split the data set into train and test X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=0)

표준 스칼라 함수를 사용하여 데이터 세트를 표준화하십시오. 여기에서는 과적합을 피하기 위해 모델이 이 데이터를 이전에 보는 것을 원하지 않기 때문에 기차 데이터만 적합합니다.

scaler = preprocessing.StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)

팬더를 사용하여 DataFrame 만들기.

X_train = pd.DataFrame(data = X_train, columns=load_boston().feature_names) X_train['Price'] = list(y_train) X_test = pd.DataFrame(data = X_test, columns=load_boston().feature_names) X_test['Price'] = list(y_test)

X_train이 어떻게 생겼는지 봅시다.

X_train.head()

게시물용 이미지

다음은 최소화해야 하는 선형 모델의 손실 함수입니다.

게시물용 이미지

카드스타터 구매 방법

이제 손실 함수 L w.r.t Weight(W) 및 Intercept(b)에 대한 기울기를 계산합니다. 다음은 기울기를 계산하는 방정식입니다.

게시물용 이미지

게시물용 이미지

그래디언트를 계산한 후 가중치를 계속 변경하고 각 반복마다 값을 가로챕니다.

게시물용 이미지

게시물용 이미지

마지막으로 SGD 기능을 구현합니다.

#데이터 과학 #확률적 그라디언트 #기울기 하강법 #머신 러닝 #딥 러닝 #딥 러닝

방향데이터사이언스닷컴

처음부터 SGD 구현

SKlearn 없이 확률적 경사하강법의 사용자 정의 구현. Stochastic Gradient Descent를 구현하기 전에 Gradient Descent가 무엇인지 이야기합시다.