기본 콘텐츠로 건너뛰기

선형 회귀 이해

선형 회귀 이해

1 소개

회귀 분석 과정을 다음 세 단계로 간단하게 정리할 수 있습니다.
  1. 훈련 데이터 세트 (x, y)를 준비합니다. 여기서 x는 독립 변수, y는 종속 변수입니다.
  2. 훈련 데이터 세트를 표현할 수 있는 모델을 만들고 가장 근접한 결과를 보여 주는 파라미터를 찾습니다.
  3. 새로운 데이터의 x값이 주어질 때 앞에서 얻은 모델을 사용하여 y값을 예측합니다.
모델을 만들 때 종속 변수 y를 독립 변수 x의 일차식으로 표현하면 이를 선형 회귀라고 말합니다. 그리고 x가 하나의 변수이면 일변량 선형 회귀, 둘 이상의 변수이면 다변량 선형 회귀라고 합니다.
이 문서를 작성하면서 사용하는 주요 용어들은 다음과 같습니다.
  • hypothesis - 모델을 나타내는 함수 식
  • feature - 독립 변수 x의 개별 요소
  • cost function - 훈련 데이터 세트의 종속 변수 y와 모델의 예측값의 차이를 나타내는 함수 식

2 일변량 선형 회귀

2.1 Hypothesis와 cost function

훈련 데이터의 feature가 한 개일 때 hypothesis는 다음과 같이 표현할 수 있습니다.
hθ(x)=θ0+θ1x1 { h }_{ \theta }(x)={ \theta }_{ 0 }+{ \theta }_{ 1 }{ x }_{ 1 }
위의 식에서 xx는 데이터의 feature들이고 θ\theta는 찾고자 하는 파라미터들입니다. x0=1x_0=1라고 하면 위의 식을 다음과 같은 형태로 표현할 수 있습니다.
hθ(x)=xTθ h_\theta(x)=x^T\cdot\theta
x=(x0,x1),θ=(θ0,θ1) x=(x_0,x_1), \theta=(\theta_0,\theta_1)
데이터의 개수가 mm일 때 cost function은 다음과 같이 표현할 수 있습니다. yy는 데이터의 결과값이고 (i)(i)ii번째 데이터임을 의미합니다.
J(θ)=12mi=1m(hθ(x(i))y(i))2 J(\theta )=\frac { 1 }{ 2m } \sum _{ i=1 }^{ m }{ { \left( { h }_{ \theta }({ x }^{ (i) })-{ y }^{ (i) } \right) }^{ 2 } }
hypothesis를 대입하여 위 식을 전개하면 cost function은 각각의 파라미터에 대하여 아래로 볼록한 2차 함수가 됩니다.
J(θ)=12mi=1m(θ02+θ12x1(i)2+y(i)2+2θ0θ1x1(i)2θ1x1(i)y(i)2y(i)θ0) J(\theta )=\frac { 1 }{ 2m } \sum _{ i=1 }^{ m }{ \left( { \theta }_{ 0 }^{ 2 }+{ \theta }_{ 1 }^{ 2 }{ x }_{ 1 }^{ (i)2 }+{ y }_{ }^{ (i)2 }+2{ \theta }_{ 0 }{ \theta }_{ 1 }{ x }_{ 1 }^{ (i) }-2{ \theta }_{ 1 }{ x }_{ 1 }^{ (i) }{ y }_{ }^{ (i) }-2{ y }_{ }^{ (i) }{ \theta }_{ 0 } \right) }
이 cost function이 최소값을 가지도록 하는 파라미터 θ\theta를 찾는 방법은 3 다변량 선형 회귀 단원에서 다루겠습니다.

3 다변량 선형 회귀

3.1 Hypothesis와 cost function

훈련 데이터의 feature가 nn개일 때 hypothesis는 다음과 같이 표현할 수 있습니다. xx는 데이터의 feature들이고 θ\theta는 찾고자 하는 파라미터들입니다.
hθ(x)=θ0+θ1x1+θ2x2++θnxn { h }_{ \theta }(x)={ \theta }_{ 0 }+{ \theta }_{ 1 }{ x }_{ 1 }+{ \theta }_{ 2 }{ x }_{ 2 }+\cdots +{ \theta }_{ n }{ x }_{ n }
데이터의 개수가 mm일 때 cost function은 다음과 같이 표현할 수 있습니다. yy는 데이터의 결과값이고 (i)(i)ii번째 데이터임을 의미합니다.
J(θ)=12mi=1m(hθ(x(i))y(i))2 J(\theta )=\frac { 1 }{ 2m } \sum _{ i=1 }^{ m }{ { \left( { h }_{ \theta }({ x }^{ (i) })-{ y }^{ (i) } \right) }^{ 2 } }

3.2 Gradient descent

cost function의 편미분을 사용하여 cost를 최소화하는 파라미터 θ\theta를 찾을 수 있습니다. 다음은 gradient descent 방식을 나타내는 알고리즘입니다.
repeat{θj:=θjαJ(θ)θj} repeat \quad \{ \quad \quad \quad \quad \quad \quad \quad \quad \\ { \theta }_{ j }:={ \theta }_{ j }-\alpha \frac { \partial J(\theta ) }{ \partial { \theta }_{ j } } \\ \} \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad
J(θ)θj=1mi=1m(hθ(x(i))y(i))xj(i) \frac { \partial J(\theta ) }{ \partial { \theta }_{ j } } =\frac { 1 }{ m } \sum _{ i=1 }^{ m }{ \left( { h }_{ \theta }({ x }^{ (i) })-{ y }^{ (i) } \right) { { x }_{ j } }^{ (i) } }
위의 식에서 α\alpha는 학습률(learning rate)입니다.

3.3 방정식의 해

아래로 볼록한 함수의 경우 기울기가 00일 때 최소값을 가지므로 다음 방정식을 풀어서 cost를 최소가 되게 하는 θ\theta를 구할 수도 있습니다.
J(θ)θj=1mi=1m(hθ(x(i))y(i))xj(i)=0 \frac { \partial J(\theta ) }{ \partial { \theta }_{ j } } =\frac { 1 }{ m } \sum _{ i=1 }^{ m }{ \left( { h }_{ \theta }({ x }^{ (i) })-{ y }^{ (i) } \right) { { x }_{ j } }^{ (i) } } = 0
위 방정식을 θ\theta에 대해서 풀면 아래의 결과를 얻습니다.
θ=(XTX)1XTy \theta ={ \left( { X }^{ T }\cdot X \right) }^{ -1 }\cdot { X }^{ T }\cdot y
여기서 XXyy는 다음과 같습니다.
X=[x0(1)x1(1)x2(1)x0(2)x1(2)x2(2)x0(3)x1(3)x2(3)],y=[y(1)y(2)y(3)] X=\begin{bmatrix} { x }_{ 0 }^{ (1) } & { x }_{ 1 }^{ (1) } & { x }_{ 2 }^{ (1) } & \cdots \\ { x }_{ 0 }^{ (2) } & { x }_{ 1 }^{ (2) } & { x }_{ 2 }^{ (2) } & \cdots \\ { x }_{ 0 }^{ (3) } & { x }_{ 1 }^{ (3) } & { x }_{ 2 }^{ (3) } & \cdots \\ \vdots & \vdots & \vdots & \ddots \end{bmatrix}, \quad y=\begin{bmatrix} { y }^{ (1) } \\ { y }^{ (2) } \\ { y }^{ (3) } \\ \vdots \end{bmatrix}
하지만 이 방식은 몇 가지 단점을 가지고 있습니다.
  • 행렬 XTX{ { X }^{ T }\cdot X }에 대한 역행렬이 존재하지 않을 수도 있습니다.
  • nn이 커짐에 따라 계산 비용이 gradient descent 방식보다 빠른 속도로 증가합니다.
Written with StackEdit.

댓글

이 블로그의 인기 게시물

Windows에 AMP와 MediaWiki 설치하기

1. 들어가기     AMP는 Apache + MySQL +  Perl/PHP/Python에 대한 줄임말이다. LAMP (Linux + AMP)라고 하여 Linux에 설치하는 것으로 많이 소개하고 있지만 Windows에서도 간편하게 설치하여 사용할 수 있다.       이 글은 Windows 7에 Apache + MySQL + PHP를 설치하고 그 기반에서 MediaWiki를 설치하여 실행하는 과정을 간략히 정리한 것이다. 2. MySQL     * 버전 5.6.12     1) 다운로드         http://dev.mysql.com/downloads/installer/         MySQL Installer 5.6.12         Windows (x86, 32-bit), MSI Installer         (mysql-installer-web-community-5.6.12.0.msi)     2) 다운로드한 MSI 파일을 더블클릭하여 설치를 진행한다.           설치 위치:                   C:\Program Files\MySQL               선택 사항:                       Install MySQL Products             Choosing a Se...

MATLAB Rutime 설치하기

MATLAB Rutime 설치하기 미설치시 에러 MATLAB Runtime 을 설치하지 않은 환경에서 MATLAB 응용프로그램이나 공유 라이브러리를 사용하려고 하면 아래와 같은 에러 메시지가 표시될 것입니다. 처리되지 않은 예외: System.TypeInitializationException: 'MathWorks.MATLAB.NET.Utility.MWMCR'의 형식 이니셜라이저에서 예 외를 Throw했습니다. ---> System.TypeInitializationException: 'MathWorks.MATLAB.NET.Arrays.MWArray'의 형식 이니셜라이저에서 예외를 Throw했습니다. ---> System.DllNotFoundException: DLL 'mclmcrrt9_3.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) 위치: MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) 위치: MathWorks.MATLAB.NET.Arrays.MWArray..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR.processExiting(Exception exception) 해결 방법 이 문제를 해결하기 위해서는 MATLAB Runtime 을 설치해야 합니다. 여러 가지 방법으로 MATLAB Runtime 을 설치할 수 있습니다. MATLAB 이 설치되어 있는 경우에는 MATLAB 설치 폴더 아래에 있는 MATLAB Runtime 설치 프로그램을 실행하여 설치합니다. ...

Wi-Fi 카드 2.4GHz로만 동작시키기

Wi-Fi 카드 2.4GHz로만 동작시키기 별도의 Wi-Fi AP 장치를 두지 않고 아래와 같은 기기들로만 Wi-Fi 네트워크를 구성하고자 할 때 주변 기기들이 2.4GHz만 지원하기 때문에 PC에서 실행하는 AP가 항상 2.4GHz를 사용하도록 Wi-Fi 카드를 설정해 주어야 합니다. 기기 Wi-Fi 카드 주파수 대역 Wi-Fi Direct 지원 PC (Windows 10) 2.4GHz, 5GHz O 주변 기기들 2.4GHz X Wi-Fi 카드별 주파수 대역 선택 방법 Windows 시작 메뉴에서 설정 을 클릭합니다. Windows 설정 화면에서 네트워크 및 인터넷 을 클릭합니다. 설정 화면의 왼쪽 메뉴바에서 Wi-Fi 를 클릭합니다. 화면 오른쪽 관련 설정 구역에 있는 어댑터 옵션 변경 을 클릭합니다. 설정을 바꾸고자 하는 Wi-Fi 카드 항목을 선택하고 마우스 오른쪽을 누른 다음 속성 메뉴를 클릭합니다. 대화상자의 네트워킹 탭 화면에 있는 구성 버튼을 클릭합니다. 장치 속성 대화상자의 고급 탭 화면으로 이동합니다. 제시되는 속성 항목들은 제품별로 다르며 자세한 사항은 아래의 제품별 설명을 참고하여 값을 설정하시기 바랍니다. Intel Dual Band Wireless-AC 7265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 선택합니다. Wireless Mode 1. 802.11a => 5GHz 4. 802.11b/g => 2.4GHz (이 항목 선택) 6. 802.11a/b/g => 2.4GHz, 5GHz Intel Dual Band Wireless-AC 8265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 ...