2025. 5. 27. 00:16ㆍML
Linear Regression(선형 회귀)는 독립 변수와 종속 변수 사이의 관계를 직선 형태로 모델링 하는 기법이다.
y = wx + b
- w: (weight)
- b: (bias)
기본 식은 위와 같다고 볼 수 있지만, feature의 수가 늘어나면 다차원 형태의 식이 될 수도 있다.
weight는 각각의 feature의 importance에 따라 값이 달라지기 때문에 feature의 값 만큼 weight의 개수도 달라진다.
여기서 우리는 최적의 weight 값을 찾는 것을 목표로 모델 학습을 진행한다.
그렇다면 Linear Regression을 어디에 쓸 수 있을까?
예를 들면 공부 시간과 내 시험 점수, 집 평수에 따른 월세 가격, 나이에 따른 실업률 추정 등등이 Linear Regression의 예시가 될 수 있다.
그래프로 보았을때, 저 빨간점들과 파란선(예측선)의 차이가 최소가 되는 직선을 찾는것이 Linear Regression 모델 이다.
저 예측선은 w(weight)값을 조정하여 변화시킬 수 있고, 최적의 w값을 찾는것이 모델 학습의 목적이라고 볼 수 있다.
그럼 최적의 weight값을 어떻게 찾을까?
여기서 우리는 RSS와 MSE에 대해서 알고 넘어가야 한다.
RSS
RSS는 잔차 제곱 합을 뜻하며, 쉽게 말해 오류 값의 제곱을 구한 다음, 더해주는 방식이다.
당연히 RSS 값이 최소가 되는 방향으로 weight 값을 찾는게 모델링의 목적이다.
MSE
MSE는 평균제곱오차 를 뜻하며, RSS를 학습 데이터의 수로 나눠준 것을 의미한다.
회귀에서는 MSE를 비용 함수(Cost function) 또는 손실 함수(Loss function)이라고 한다.
이 비용함수를 최소화 하는 것을 목표로 한다.
그럼 MSE를 최소화 하는 방법이 뭘까?
그건 바로 미분이다.
선형 회귀에서의 weight(가중치)는 feature(입력 변수)의 수에 따라 w1, w2, w3, ... 형태로 벡터로 존재하게 된다.
MSE를 최소화하기 위해서는, 이 각각의 가중치 w에 대해 MSE를 편미분한 값이 0이 되도록 만드는 것이다.
즉, 전체 MSE 함수에 대해 모든 가중치에 대한 gradient(기울기)가 0이 되는 지점을 찾는 것이 곧, MSE를 최소화하는 최적의 weight 값을 찾는 것이다.
그 방법 중 가장 널리 쓰이는게 바로 Gradient Descent Method(경사 하강법)이다.
MSE가 크면 클수록 다음 weight는 작은 쪽으로 보내야 하고, 작으면 작을 수록 weight는 큰 쪽으로 보내야 한다.
이때, learning rate는 가중치를 얼마나 크게 또는 작게 업데이트 할지를 결정하는 파라미터 값이다.
이 값이 클 수록 변화폭은 더 커지게 된다.
그럼 learning rate의 값을 처음부터 크게 줘서 바로 0을 찾아가게 만들면 안되나? 라는 생각이 들 수도 있다.
하지만 너무 큰 값을 주게 되면 최솟값을 지나쳐서 멀리 가버릴 수도 있다. 그렇게 되면 Loss가 오히려 증가하는 경우도 생긴다.
반대로, 너무 작은 값을 주게 되면 학습 속도가 매우 느려서 오랜 시간 학습을 했지만, 최솟값에 도달하지 않는 결과를 초래할 수 있다.
그렇기 때문에 우리는 적절한 learning rate의 값을 잘 찾아서 입력을 해주어야 한다.
이 파라미터가 매우 중요하기 때문에 learning rate의 값을 찾기 위한 여러가지 방법들이 존재한다.
일반적으로는 큰 값부터 넣은 후, 값을 조금씩 감소 시키면서 실험을 해보는 방법을 사용한다.
https://arxiv.org/abs/1506.01186
Cyclical Learning Rates for Training Neural Networks
It is known that the learning rate is the most important hyper-parameter to tune for training deep neural networks. This paper describes a new method for setting the learning rate, named cyclical learning rates, which practically eliminates the need to exp
arxiv.org
위 논문에서는 Cyclical learning rates (순환학습률, CLR) 이라는 방법을 소개하고 있다.
최대 학습률과 최저 학습률 사이 값을 순환하게 하는 방법이다.
대표적인 3가지 모드를 소개하자면,
1. triangular
- 가장 기본적인 형태: learning rate가 base ↗ max ↘ base 형태로 반복
- 일정한 높이의 삼각형 패턴을 반복함
2. triangular2
- triangular와 동일하지만, 반복할수록 amplitude를 절반으로 감소시킴
3. exp_range
- 반복할 때마다 max_lr를 지수적으로 감소시킴
- 주기 안에서는 증가/감소를 반복하되, 전체적으로는 감소함
Cyclical learning rates의 장점은 따로 learning rate를 찾지 않아도 돼서, 하이퍼파라미터 튜닝 시간을 단축 시켜주고, 수렴이 빠르다.
그리고 overfitting을 방지할 수 있다는 장점도 있다.
'ML' 카테고리의 다른 글
[ML] Azure 클라우드 기반 머신러닝 실습 - 다중 선형 회귀 (0) | 2025.05.16 |
---|---|
[ML] 머신러닝 모델 검증을 위한 레코드 분할 (0) | 2025.05.07 |