CS/인공지능

[인공지능] 기계학습 ( 경사하강알고리즘 )

IT록흐 2021. 12. 13. 16:39
반응형
 

[인공지능] 기계학습 (선형회귀)

지도학습이란? 과거의 정보를 가지고 모델을 만들어, 현재 데이터를 기반으로 미래를 예측하는 패턴을 추출하는 학습방법이다. ( 번호판 인식, 날씨 예측, 시장 예측 ) 지도학습에서 모델은 회

lordofkangs.tistory.com

 

 

지난 포스팅에서는

선형회귀를 다루어 보았다.

 

선형회귀는 특징공간(입력값, x)이

하나였다. (1차원)

 

MNIST 인식하는 딥러닝 모델의 경우

784차원의 특징공간을 갖는다. 

 

이처럼

특징공간이 무수히 클 때

손실함수의 최소값을 구하려면

편미분을 해야한다.

 

 

경사하강알고리즘

 

 

1) 목적

 

머신러닝의 목적은 손실을 줄이는 것이다. 손실이란, 실제 결과값과 예측값 사이의 차이를 의미한다. 주어진 데이터를 예측모델(퍼셉트론)에 입력했을 때, 출력된 예측값이 실제 결과와 얼마나 차이가 있는지를 알아야 예측모델의 신뢰도가 결정된다. 예측모델의 신뢰도를 높이려면 손실을 줄여야 한다. 머신러닝이란 손실을 줄이는 방향으로 예측모델을 변형해가는 과정이다.

 

출력값(예측값)은 여러 입력값에 의해 결정된다. 수능등급을 예측한다고 가정하면 입력값으로 학생의 모의고사 성적, 수면패턴, 공부시간 등등이 존재한다. 각각의 입력값은 출력값에 영향을 주는 정도가 모두 다르다. 영향을 주는 정도를 x라 할 때, x에 어떤 값을 부여하느냐에 따라 출력값이 달라진다. 그러므로 x를 이동시키며 손실을 최소로 하는 모델을 찾아야 한다. 경사하강법은 x가 이동하는 방법을 다루는 알고리즘이다.

 

 

2) 원리

 

입력값은 여러 개이므로 x1, x2, x3,... 가 있다. x에 따른 손실을 나타내는 함수를 f(x1, x2, x3...)라 해보자. 이 함수를 Y라 하겠다. Y를 최소로 만드는 x1, x2, x3...를 구하기 위해 x값을 이동시켜야 한다. x의 변화에 따른 y의 변화량이 기울기이다. 기울기는 x가 얼마나 Y에 영향을 주는지를 나타낸다.

 

기울기가 음수이면 x보다 큰 값에 최소손실이 있음을 나타낸다. 기울기가 양수이면 x보다 작은 값에 최소손실이 있음을 나타낸다. 기울기가 0이면 현재값이 최소손실임을 의미한다. 입력값 별 최소손실을 구하기 위해 편미분을 이용한다. x0이 아니면 x의 편미분한 값만큼 이동한다.

 

 

3) 계산 과정

 

무작위로 x1 값 하나를 선택한다.

 

 

x13일 때, 편미분값은 음수이다. x1|𝜕𝑌/𝜕𝑥1|만큼 오른쪽으로 이동한다.

 

 

오른쪽으로 이동할수록 기울기는 작아져 점차 기울기는 0에 가까워진다.

 

 

기울기가 0이 되면 𝑥1 = 𝑥1 𝜕𝑌/𝜕𝑥1𝑥1 = 𝑥1이 되어 동일해진다. x1값이 이전과 동일하면 최소손실지점을 찾았다고 판단한다.

 

하지만 한 가지 문제가 있다. 지역최소문제가 발생할 수 있다.

 

 

x1은 기울기가 0인 지점을 최소손실지점이라 판단하지만 최소손실지점은 따로 있다. 지역최소문제를 방지하기 위해 러닝레이트(Learning Rate)’를 추가한다.

 

 

x1은 기울기의 a배수만큼 이동한다. 러닝메이트를 추가함으로써 x의 이동이 한 지역에 국한되지 않도록 만들 수 있다.

 

 

이와같이, x에 따른 손실 정도를 나타내는 함수의 경사를 이용하여, 점차 하강하며 최소손실지점을 찾아가는 알고리즘이 경사하강법이다.

 

 

 

 

반응형