(2022.03.30~04.01)
기계학습 들으면서 정리하기 7탄
Lecture4_ML 내용정리-1
예측선 긋기: 선형회귀 -----> 오차 수정하기: 경사하강법
(오차를 줄이는 방향으로 함수의 계수를 최적화함)
회귀 Regression
: 회귀 분석은 대표적인 지도학습 알고리즘
선형회귀: 독립변수 x를 사용하여 종속변수 y의 움직임을 예측하고, 설명하는 작업. 예측선을 긋는 일
- 단순 선형회귀: 하나의 x값으로 y값 설명이 가능할 때
- 다중 선형회귀: x값이 여러 개 필요할 때
- 선형회귀의 모델은 선형 방정식, 동작을 결정하는 파라미터는 직선의 기울기(w)와 y절편(b)
- 선형회귀의 오차함수(손실함수,비용함수)의 예로는 평균제곱오차가 있음
- 선형회귀에서의 학습은 손실함수인 MSE를 최소로 만드는 파라미터를 찾는 것임
일단 예측선을 그리고 조금씩 수정해나가는 것이 기본적인 흐름이다.
그린 예측선을 실제 값과 비교하며, 오차가 어느정도인지 오차를 평가하는 오차 평가 알고리즘이 필요하다.
오차 평가 알고리즘을 보통 손실함수라고 한다.
--> 오차 평가 알고리즘 중 가장 많이 사용되는 것이 바로 평균제곱오차 (MSE: Mean Square Error)
(평균 제곱오차, 평균 절대오차 등등 있음)
(평균 절대 오차는 그래프가 미분이 불가능한 경우가 많아서 잘 안쓰임. 반면, 평균 제곱오차는 그래프가 미분가능함.)
즉, 선형회귀란 임의의 직선을 그어 이에 대한 평균제곱오차를 구하고, 이 값을 가장 작게 만들어주는 기울기(a)와 y절편(b)를 찾아가는 작업 이라고 말할 수 있다! (기울기 a와 y절편 b는 파라미터라고 이야기한다)
다변량 회귀분석
: 입력변수 x가 하나가 아닌 여러개일 경우
- 다변량 회귀분석은 특징벡터 x가 임의의 차원을 가질 수 있는 것을 의미한다.
- n차원 공간의 초평면이 되는 것!!
선형회귀에서 최적의 파라미터를 찾는 3가지 방법
1. 최소 제곱법 (least squares approximation)
- 최소 제곱법 공식을 알면, 일차 함수의 기울기와 y절편을 구할 수 있다.
- 최소 제곱법은 주어진 x의 값이 하나일 때 적용이 가능하다.
- 여러 개의 x가 주어질 경우에는 경사하강법을 이용한다.
2. 경사 하강법 (gradient descent)
- 오차를 줄이면서, 새로운 선을 그어야하는데 이 오차를 줄이는 방법이 경사하강법
- 오차를 제곱하여, 오차 곡면의 기울기를 따라 내려가서 기울기가 0인 극소 지점을 찾는 것
- 경사하강법에서 중요한 것이 learning rate(학습률)
- 딥러닝에서 학습률을 적절히 바꾸면서 최적의 학습률을 찾는 것은 중요한 최적화 과정 중 하나임
3. 정규 방정식
- 오차의 기울기를 따라 최적의 파라미터를 찾는 방법(경사하강법)이 아닌 다른 방법이다.
- 마찬가지로, 최적의 파라미터를 찾는 수식
파라미터 벡터로 표현했을 때의 예측값 (y_hat)을 잘 봐두자.
손실함수 MSE 도 파라미터 벡터로 표현해서 나타내면 위와 같다.
이제 이를 바탕으로 정규 방정식을 풀어볼 수 있는데
상당히 이해가 안간다. 이해가 간듯 안간듯 어렵다.
파라미터 벡터로 표현한 손실함수 MSE 에 대해서 파라미터(세타)에 대해 편미분을 한다.
편미분의 결과값이 0이 되는 파라미터의 값을 파라미터_hat이라고 두면, 파라미터_hat을 아래의 식과 같이 표현할 수 있다.
이렇게 정규방정식을 유도해보았다.
+ 경사하강법과 정규방정식의 차이
경사하강법과 정규방정식의 차이점은 최적해를 구하기까지의 횟수라고 할 수 있다.
경사하강법은 학습률을 기반으로하여 점진적으로 최적해를 구하는 반면,
정규방정식은 MSE를 유도하여 도출해낸 것으로 한 번에 최적해를 구한다.
그런데, 이렇게 보면 정규방정식이 더 좋아보일 수 있지만
경사하강법은 기본적으로 시간이 소모되기는 하나, 일정시간 안에 최적해를 구해낼 수 있지만
정규방정식은 한번의 최적해를 구해내는 데에 상당한 시간이 소요되며, 특징값 벡터의 원소가 많을 경우 나쁜 성능을 보여 주로 경사하강법을 이용한다.
경사하강법은 대표적인 최적화 알고리즘 중 하나이다!!
참고 블로그: https://gooopy.tistory.com/127
참고 도서: https://book.naver.com/bookdb/book_detail.nhn?bid=16215446
'Computer Science > Machine Learning' 카테고리의 다른 글
[ML] 선형회귀 실습 - 경사하강법, 정규방정식 (0) | 2022.04.02 |
---|---|
[ML] 다변량 선형 회귀 분석 - 정규화 & 표준화 (0) | 2022.04.02 |
[ML] Pandas 활용 (0) | 2022.03.26 |
[ML] Numpy 활용 (0) | 2022.03.26 |
[ML] 과적합 & 과소적합 (0) | 2022.03.26 |