← 이전 글로   다음 글로 →


3장 서론

선형회귀분석이 데이터 분석과 딥러닝에서 가지는 의미와 손실 함수 와 경사하강법을 간단하게 배우고 실습할 수 있다.

선형회귀분석

선형회귀분석_wikipedia

선형회귀분석은 간단히 설명하면 주어진 데이터를 가장 잘 설명하는 직선 하나를 찾는 것이다.

데이터 분포들(Data points)에 적합한 선형을 찾는 과정

선형은 y=wx+b 로 표현할 수 있다.

1차 방정식에서는 w는 기울기, b는 y 절편이다.

선형회귀분석에서는 w(Weight, 가중치), b(bias, 편차)로 표현한다.

손실 함수

학습 과정을 통해 선형회귀에 필요한 적절한 선형을 찾는다.

학습은 더 나은것을 찾아가는 과정으로 서, 값의 비교가 필요하다.

여기서 비교값은 wb로 가능하다

주어진 데이터값 ywx+b를 통해 알 수 있고

예측값 y^또한 예측한 y,b를 통해 알 수 있다.

하지만 무작정 예측(random value)를 통해 유추하기는 모든 경우의 수의 반복이 필요하여 비효율적이게 된다.

여기서 우리는 평균제곱오차, MSEmean squared error를 사용한다.

MSE=1ni=1n(y^y)2

평균제곱오차를 사용하여 예측값과 주어진 데이터값의 최소값을 얻기 위해서는 손실함수, loss function 또는 비용함수, cost function를 사용한다.

Error=1ni=1n(wx+by)2

위 식을 통해 얻은 값을 최소화 시키는 방향으로 w,b를 조정한다.

경사하강법

위의 MSE의 식을 전개하여 풀기이는 데이터 크기가 커질수록 복잡도가 크게 증가하여 비효율적이다.

따라서 경사하강법gradient descent 을 사용하여 w를 구한다.

경사하강법 경사하강법[1]

방정식의 미분을 통해 순간 기울기를 얻을 수 있다.

지속적인 기울기, w 업데이트를 통해 오차의 극소값 찾을 수 있다.

wt+1=wtgradient×learningrate

여기서 학습률learning rate 이란 변수 w를 얼만큼 업데이트할지 결정하는 수치이다.

학습이 진행됨에 따라 최종적으로 오차를 최소화하는 w로 수렴하게 된다.

pytorch로 경사하강법 구현

https://github.com/maizer2/First-step-on-the-Pytorch/blob/master/Chapter3_Linear_Regression/%EC%84%A0%ED%98%95%ED%9A%8C%EA%B7%80%EB%B6%84%EC%84%9D.ipynb


참고문헌

1. 경사 하강법에서 마이너스, ICHI.PRO, 2022.04.05 방문, https://ichi.pro/ko/gyeongsa-hagang-beob-eseo-maineoseu-54562797399893