운동하는 공대생
[수업] 기계학습 - Linear Regression (2) 본문
이전까지 이제 hypothesis function을 구성하는 parameter들을 MSE(Mean Squared Error)를 통해서 Error를 구하고 Cost Function 또 구성하는 parameter를 Least Square 방식을 통해서 구하는 거에 대하여 공부했다. 이번에는 Gradient Descent 방식을 통해서 구하는 것에 대하여 정리하겠다.
1. Gradient Descent
기본적인 프로세스는 cost function에서 일정 파라미터에 대하여 특정 시작점을 지정하고 점점 이동하면서 목표로 하는 지점까지 이동하는 방식이다. 한국어로 해석하면 경사하강법이라고 이야기를 한다.


식을 통해서 알 수 있듯이 파라미터의 값을 일정 gradient 값과 알파 값을 곱한 값을 빼서 파라미터를 업데이트한다. 이기서 생기는 의문은 왼쪽이던 오른쪽이던 값은 방식으로 적용이 된다는 것인데 그림을 보면 왼쪽에서 값이 업데이트된다고 하면 gradient 값이 음수임으로 결국 더해지게 되고 오른쪽에서 시작하면 gradient 값은 양수임으로 값이 줄어든다. 결국 왼쪽이든 오른쪽이든 같은 방식으로 적용이 가능하다.
Iteration : Iteration은 파라미터가 업데이트되는 횟수를 말한다.
ª : 알파값은 learning rate라고도 이야기하고 학습되는 정도를 이야기하며 파라미터가 조정되는 정도를 지정된다.


이제 파라미터를 업데이트할 때는 Iteration을 반복하여 0에 가까워질 때까지 반복한다. 여기서 파라미터값이 여러 개 있다면 각각의 파라미터에 대하여 partial derivative 편미분을 통해서 각각의 파라미터를 업데이터 해준다. 이때 업데이트는 각각 따로 하는 게 아니라 동시에 업데이트시켜 준다. 이 방식은 미리 지정한 일정 임계값(threshold) 보다 작아질 때까지 반복한다.
2. Gradient Descent Types


- Batch Gradient Descent
데이터셋의 전부를 탐색하는 방식으로 정확한 방향을 찾는 게 가능하지만 조금 느리고 Local Minimum 문제가 발생하기 쉽다.
- Stochastic Gradient Descent
한 개 한 개 탐색하는 방식으로 데이터를 한 개씩 탐색을 하기 때문에 정확하게 탐색하기 힘들다
- Mini-Batch Gradient Descent :
가장 많이 쓰이는 방식으로 일정량의 데이터로 분할하여 탐색하는 방식이다. 용어를 정리하자면 Batch는 분할한 데이터 샘플을 말하고 Iteration은 그 데이터를 통해서 파라미터를 학습한 횟수를 말한다. 그리고 Epoch는 이런 한 프로세스를 반복한 횟수를 말한다.
2. Local Minimum

Local Minimum 이란 Gradient Descent 방식을 사용하면 발생하는 문제로 Cost function에 대한 값이 최소가 되는 부분을 찾아 나가는 과정에서 전체적인 최소가 아닌 부분적인 최소에 빠지는 부분이 발생한다. 이것을 미분값을 사용하여 0에 가까운 값이 될 때까지 파라미터를 업데이트를 하는데 이 부분이 전체적으로 보았을 때 최소가 아닐 수 있다는 것이다.
3가지 요소로 발생한다
- Starting point
- Too small learning rate
- Batch Gradient Descent
해결 방법
- Light direction
이 방식은 방향의 변화에 제한을 두는 방식으로 물리학에서의 모멘텀 방식을 이용하였다. SGC 방식에서 주로 사용한다.

위 그림에서 첫번째 타임의 방향으로 진행되고 있었다 하고 그다음 iteration에서 방향을 지정할 때 기존의 방향을 momentum이라고 하고 Gradient를 얻어서 나온 이동 방향이라고 했을 때 실제 방향을 두 방향의 내적으로 방향을 지정한다.
아래는 ADAM(ADAptive Moment estimation) 방식에 대한 알고리즘 방식이다. 여기서 식을 보면 1 번에서 gradient 값을 가지고 오고 그 값을 2번에서 이전 모멘텀 값과 베타의 비율을 통해서 값을 지정한다.

정리하자면 SGD 방식을 통해 전체적 탐색을 진행하고 SGD의 문제인 방향이 많이 바뀌는 문제를 momentum 방식을 통해서 제한하여 학습을 진행한다.
- Proper step size

이 방법은 그림과 같이 두가지 파라미터를 학습하는데 한 파라미터는 학습이 잘 되었다고 하지만 1 번째 파라미터 같은 경우에는 잘 학습되지 않았다. 이렇게 step 사이즈에 따라 파라미터가 학습되는 것이 다를 수 있다 그래서 적당한 step 사이즈를 지정하는 게 중요하다.
'수업' 카테고리의 다른 글
[수업] 기계학습 - Linear Regression (1) (0) | 2023.10.07 |
---|---|
[수업]패턴인식 - Supervised learning(7) (0) | 2023.09.30 |
[수업] 패턴인식 - Supervised learning(4&5) (0) | 2023.09.30 |
[수업] 패턴인식 - Supervised learning(3) (0) | 2023.09.29 |
[수업] 패턴인식 - Supervised learning(2) (0) | 2023.09.29 |