CS/딥러닝

[딥러닝] 비선형 회귀 분석(1)

nowkoes 2023. 9. 25. 16:48

Non-linear Regression

개요

 지난 시간에는 데이터를 선형적으로 모델링하는 선형 회귀의 기본 개념과 그 적용 방법에 대해 다루었다. 선형 회귀는 많은 상황에서 유용하게 쓰이지만, 현실 세계의 데이터는 종종 복잡한 패턴과 비선형 관계를 가질 때가 많다. 선형 회귀만으로는 이런 복잡한 관계를 정확하게 포착하기 어렵다.

 이번 시간에는 선형 모델의 한계를 극복하기 위해 도입되는 비선형 회귀 분석을 중점적으로 다루어 보겠다. 비선형 회귀는 데이터의 복잡한 패턴을 더 정밀하게 잡아내는 데 효과적이다. 그리고 비선형 현상을 선형적으로 근사하는 여러 방법과 원리도 함께 살펴볼 것이다. 이를 통해 데이터의 복잡한 구조를 더욱 깊게 이해하고, 더 정확한 예측과 분석을 수행할 수 있는 기초를 다질 수 있을 것이다.


본문

출처: 위키피디아

 

 위의 그래프에 존재하는 비선형적인 데이터를 그대로 회귀 분석을 한다고 가정해 보자. 비선형 모델은 데이터의 복잡한 패턴을 일률적으로 설명할 순 있지만, 이로 인해 훈련 데이터에 과도하게 적용되는 경우, 과적합(Overfitting)이 발생하여 새로운 데이터에 대한 예측 성능 저하를 초래할 수 있다. 또한 선형 회귀 모델에 비해 파라미터가 더 많을 수 있어, 최적화 문제의 해를 찾기 위한 계산 복잡도가 높을 수 있으며, 해석하기 어려울 수 있다.

 

 이러한 문제점들을 극복하기 위해 비선형 입력을 다른 공간으로 보내거나, 커널 함수를 이용하여 선형적으로 근사하는 방법이 있다. 이번 시간에는 높은 차원의 특징 공간으로 데이터를 직접 매핑하는 대신, 그 공간에서의 내적을 계산하는 커널(Kernel) 함수를 사용하여 데이터의 비선형 관계를 파악해 보도록 하겠다.

 

커널 함수

출처: 위키피디아

 

 앞서 설명했듯이, 커널 함수는 기본적으로 두 벡터 간의 유사도를 측정하는 함수다. 이 함수는 두 데이터 포인트를 더 높은 차원의 공간에 매핑한 후, 해당 공간에서의 내적을 계산하는 것과 동일한 연산을 수행한다. 이러한 매핑은 종종 묵시적으로 이루어지기 때문에, 실제로 높은 차원의 공간에 데이터를 매핑하는 연산을 수행하지 않고도 그 효과를 얻을 수 있다. 이를 커널 트릭(Kernal trick)이라고 한다. 즉, 데이터를 명시적으로 높은 차원으로 변환하지 않고도 그 효과를 얻을 수 있게 해 준다.

 

주어진 데이터

 

 비선형 회귀 분석을 진행할 때 주로 사용하는 커널 함수는 Gaussian 함수를 여러 개 합친 RBF 커널(Radial Basis Function), 시그모이드(Sigmoid) 커널, 뉴럴 커널 등이 있다. 예를 들어 다음과 같은 데이터를 설명하는 비선형 함수가 있다고 해보자. 이 그래프는 해당 데이터를 잘 설명하지만, 과적합이 일어날 수 있으므로 적절하지 않은 그래프다. 

 

가우시안 함수와 그 가우시안 함수의 합

 

 가우시안 함수는 각 데이터 포인트 주변에서 특정 영향을 나타낸다. 복수의 가우시안 함수를 합치면, 중첩되는 영역에서 함수의 값이 증가한다. 이로 인해 데이터 포인트가 밀집된 영역은 더 높은 값을 가지게 되며, 오른쪽 그래프와 같은 부드러운 곡성 형태를 형성하게 된다.

 

커널 함수를 매핑한 그래프

 

 커널 함수를 사용하여 데이터를 매핑하면, 위의 그래프처럼 원래의 복잡한 비선형 구조를 더 단순한 형태로 변환할 수 있다. 이렇게 매핑된 데이터는 선형 분리가 용이해진다. 

 

과적합과 L2 norm

 커널 함수를 설명할 때 잠깐 나왔던 오버피팅에 대해 알아보자. 과적합은 비선형성이 너무 높을 때 주로 일어나는데, 학습된 데이터에 너무 적합하여 조금 다른 입력이 들어오면 전혀 다른 결과가 나온다. 따라서 우리는 해당 문제, 즉 파라미터의 급격한 변화를 해결하기 위해 L2 정규화(norm)를 사용한다.

 

 L2 norm은 선형 회귀, 로지스틱 회귀 등의 모델에서 가중치의 제곱합을 손실 함수에 추가함으로써 모델의 가중치가 너무 큰 값을 갖는 것을 제한한다. 이로 인해 모델의 복잡도가 제한되어 과적합을 방지하는 효과가 있는 것이다. 

 

손실 함수 수식(좌)과 정규항이 적용된 수식(우)

 

 즉, L2 norm은 가중치(w)를 제곱하고 정규화 강도( λ )를 조절하는 파라미터를 곱한 항이다. 람다 값이 크면 정규화의 효과가 강해져 모델의 복잡도가 더 크게 제한되며, 람다 값이 작으면 정규화의 효과가 약해진다. 따라서 우리는 이 손실 함수를 최소화하기 위한 w를 찾아야 한다. 

 

  • 여기서 아래 첨자는 L2 norm의 제곱을 의미하므로 벡터의 내적 형태 ||Xw-y||^2_2 = (Xw-y)^T(Xw-y)를 의미한다. 

 

 이러한 수식을 찾기 위해선 이 손실 함수를 최소화하기 위한 w를 찾아야 한다. 따라서 해당 함수를 w에 대해 미분하고, 그 미분 값이 0이 되는 w를 값을 찾아야 한다. 만약 해당 과정이 궁금하다면 아래 접은 글을 참고하자.

 

접은 글

더보기

해당 함수를 w에 대해 미분하면

 

 

이 된다. 이 식을 풀면 

 

 

이 되고, 해당 식을 재배열하면 

 

 

이 된다. 이를 다시 쓰면

 

 

이 되고, 위의 식을 w에 대해 풀면 Ridge Regression의 해를 얻을 수 있다. 이때 람다와 단위행렬을 곱한 항은 X^TX가 역행렬이 존재하지 않을 때, 이를 해결하기 위해 곱해주었다.  

 해당 내용을 코드로 구현한 것은 다음 챕터에서 마저 설명하도록 하겠다.

반응형

'CS > 딥러닝' 카테고리의 다른 글

[딥러닝] Data Clustering  (0) 2023.10.09
[딥러닝] 선형 판별 분석(LDA)  (2) 2023.10.04
[딥러닝] 주성분 분석(PCA)  (2) 2023.09.30
[딥러닝] 비선형 회귀 분석(2)  (0) 2023.09.26
[딥러닝] 머신러닝과 1차 선형 회귀  (0) 2023.09.11