운동하는 공대생
[수업] 기계학습 - Linear Regression (1) 본문
Linear Regression에서 기본적인 프로세스는 1. Hypothesis를 지정 2. Model train 3. 예측 이렇게 구성이 된다. 모델에 대한 함수를 지정하고 데이터를 기반으로 함수에 대한 파라미터를 정해나가는 방식이라고 생각할 수 있다.
1. 용어 정리
먼저 데이터의 구성이 1차원이라고 가정을 한다면
x : input feature(입력 데이터)
y : target variable(목표 변수)
(x, y) : 훈련 데이터
(x(i), y(i)) : i번째 훈련 데이터
2. Error
Error 란 모델이 예측한 값과 실제값의 차이를 Error 혹은 Cost라고 한다. 그리서 이런 값들을 최소화하는 게 모델 훈련의 목적이라고 이야기를 할 수 있다. 그렇다면 이런 Error를 구하는 방식은 Cost function(J)에 의하여 정해진다. Cost function은 input은 모델의 파라미터값을 통해서 구해지며 J(𝝧0, 𝝧1)라고 표시한다. 이런 함수들의 예시로 MSE(Mean Squared Error), Cross-entropy 등등이 있다.
3. Mean Squared Error
MSE는 말 그대로 Error의 제곱의 평균이다. 식을 보자면 먼저 Hypothesis function h 를 이야기한다. 기존에 정했던 예측 모델 함수를 input 값 x를 통해서 현제 모델의 예측값이 나오고 실제 target데이터와의 차이를 구한다. 그리고 이것을 음수 양수 관계없이 사용하기 위해서 제곱을 하며 이것을 모들 input 데이터에서 구하고 이것의 평균을 구하는 것이 MSE의 방식이다. 여기서 2로 나눠주는 이유는 자웅에 계산을 편하게 하기 위해서인데 변화량을 구하려고 미분을 추가적으로 수행하기 때문이다.
그래서 결국에는 이런 Cost function의 값의을 최소화 하는 파라미터 값을 찾는 게 모델 훈련의 과정이 된다. 이것을 Recall이라고 한다.
4. Learning Algorithms
4.1 Least Square
이제 Error값을 계산하는 함수인 Cost function에서 최솟값이 되도록 하는 파라미터 값을 구하기 위해서는 어떻게 해야 하는지 알아보겠다. 먼저 일반적으로 생각하면 Cost function을 표현한 위의 오른쪽 그림을 보면 그래프의 모양이 아래로 볼록한 모양이다. 그러니 이건 Convex 한 모양이라고 할 수 있다. 반대는 Concave 하다고 한다. 그렇다면 이런 함수적 특성을 본다면 값이 최소가 되려면 기울기가 0 인 즉 미분하여 값이 0이 되는 부분이 최소가 된다고 생각을 할 수 있다. 그래서 나온 첫 번째 방식이 편미분을 통해서 각각의 함수가 최소가 되는 파라미터의 값을 찾는 방법이다. 그 이외에도 matrix를 이용한 방법, non-linear 한 방법으로 구하는 방식이 있다.
4.1.1 Partial derivative
먼저 cost function 이 있다고 가정하면 각각 파라미터 𝝧0, 𝝧1에 대하여 각각 편미분을 통해서 식을 전개한다. 그래서 이 계산 과정에서 생기는 식을 통해서 아래의 방식으로 전개한다. (그리고 여기서 2를 나눈 이유가 나온다.) ( argmin 은 어떤 함수를 최소로 만드는 변수를 말한다.)
편미분 한 식에서 convex 함수의 최솟값을 구하기 위해서 미분값의 0 이 되는 미지수의 값을 구해야 한다. 그래서 이 값이 Error 가 최소가 되는 두 파라미터가 된다.
4.1.2 Matrix( Normal Equation)
Normal Equation 은 선형대수를 사용하여 최적 x에 대한 공식을 유도하는 방식입니다.
hypothesis function 을 matrix 형식으로 계수를 표현하면 위와 같이 표현이 가능하다. hypothesis function에서 단순히 1차 함수고 y 절편(bias)이 없는 상태이니 이것을 그냥 1로 채우고 matrix로 식을 쓰면 위의 행렬과 같다.
Ax=b 인 상황에서 A^T 즉 A 행렬의 transpose 한 값을 양변에 곱하고 그걸 다시 묶어서 invertible를 또 양변에 해주면 구하고자 했던 파라미터 값을 구하는 식이 완성된다.
Gradient
gradient 를 이제 적용을 하려면 matrix에 대한 편미분을 해야 한다. 여기서 바로 위에서 구한 식으로 편미분을 진행하려면 아래의 식의 방식이 필요하다.
함수의 미분은 각각 변수에 대하여 모두 미분하여 matrix를 지정하는 게 matrix 미분 방식이다.
Least Square Applying
∥Ax-b∥₂² 를 먼저 설명하자만 Ax 는 기존의 hypothesis 함수를 말하고 b는 실제 데이터를 말한다. 그래서 이것을 뺀 것은 기존에 말했던 Error를 표시한 것이다. ∥∥ 는 norm을 의미한다. 그리고 2를 표시한 것을 아래의 2는 각각의 요소들을 전부 제곱을 해준다는 의미고 이것을 제곱을 해준다. 그래서 이것을 기존에서 MSE 방식에서 error의 제곱을 전부 더하는 부분과 같다.
하지만 , matrix에서는 단순히 ∥x∥²₂ = x^T * x로 표시하는 게 가능하다. 이렇게 MSE를 Matrix 구성에서 구하는 방식은 아래와 같아.
이렇게 식을 풀면 Error 값을 전부 더한게 구해지는 첫 번째 식에서 알 수 있다. 그래서 이 식은 Cost function의 역할을 한다.
이제 이 값을 최소를 구하기 위해서는 미분한 값이 0이 되는 값을 찾야 한다. 그래서 미분하는 방식을 이전에 공식으로 미분을 한다면 결국에는 Ax=b 값으로 풀이가 되고 처음에 Normal equation 방식을 통해서 x 값을 구한다.
한계
normal equation 에서 10,000 개의 데이터보자 작은 잡업을 수행하는데 여기서 많은 수행 시간이 필요하지 않다. 하지만 간혹 Normal Equation을 이용하다 보면 non-invertible 문제가 발생하기도 한다. 이런 문제는 보통 중복된 feature 가 존재할때와 데이터의 총 양보다 feature의 양이 너무 많을 때 발생한다. 이런 문제를 해결하기 위해서는 feature를 중복된 feature를 제거하거나 regularization을 통해서 문제를 해결한다.
'수업' 카테고리의 다른 글
[수업] 기계학습 - Linear Regression (2) (0) | 2023.10.08 |
---|---|
[수업]패턴인식 - 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 |