Note

경사 하강법 본문

Machine Learning/Regression

경사 하강법

알 수 없는 사용자 2021. 6. 14. 23:28
728x90

1. 경사 하강법

경사 하강법을 위한 w0, w1 업데이트하는 함수 만들기

초기 w0, w1을 설정하고 w1은 행렬 곱(np.dot)을 위해 w1.T를 사용하고, 예측 값의 차이를 나타내는 diff 생성

경사 하강법을 수행하기 위한 함수 설정이 끝이다.

경사 하강법을 실행하면 w1 : 3.968, w0 : 6.222의 계수를 구할 수 있다.

그래프를 그리면 위와 같은 그림으로 나타낼 수 있다.

2. 미니 배치 확률적 경사 하강법

전체 데이터가 클수록 경사 하강법 연산에 대한 시간이 오래 걸리기 때문에 미니 배치를 통한 샘플링으로 빠르게 경사 하강법을 수행할 수 있다.

전체 X, y 데이터에서 랜덤 하게 batch_size만큼 데이터 추출하여 sample_X, sample_y로 저장하고 랜덤 하게 batch_size만큼 추출된 데이터 기반으로 w1_update, w0_update 계산 후 업데이트한다.

*np.random.permutation(X.shape[0])은 100개의 랜덤 순열을 만드는 것이다.

미니 배치를 통한 샘플링 경사 하강법의 결과이다.

w1 : 3.991, w2 : 6.202의 계수를 구할 수 있다. 위의 값과 거의 유사한 값이 도출된 것을 볼 수 있다.

'Machine Learning > Regression' 카테고리의 다른 글

규제 선형 회귀  (0) 2021.07.02
Underfitting vs Overfitting  (0) 2021.07.02
선형 회귀  (0) 2021.06.14
Comments