선형 회귀의 수식
이제 그럼 앞서 그림을 통해 설명한 선형 회귀의 학습 방법을 수식으로 표현해보고자 합니다. 앞서 언급했던 대로 우리는 N개의 n차원의 입력 벡터와 m차원의 타겟 출력 벡터의 쌍을 데이터로 수집합니다.
\[\begin{gathered} \mathcal{D}=\{(x_i, y_i)\}_{i=1}^N, \\ \text{where }x_{1:N}\in\mathbb{R}^{N\times{n}}\text{ and }y_{1:N}\in\mathbb{R}^{N\times{m}}. \end{gathered}\]그럼 우린 이 벡터들을 행렬로 나타낼 수 있고, 그것은 아래와 같이 표현될 수 있습니다.
\[\begin{gathered} x_{1:N}=\begin{bmatrix} x_{1,1} & \cdots & x_{1,n} \\ \vdots & \ddots & \vdots \\ x_{N,1} & \cdots & x_{N,n} \end{bmatrix} \\ \\ y_{1:N}=\begin{bmatrix} y_{1,1} & \cdots & y_{1,m} \\ \vdots & \ddots & \vdots \\ y_{N,1} & \cdots & y_{N,m} \end{bmatrix} \end{gathered}\]이제 우리는 다음의 수식과 같이 모델의 출력과 실제 정답의 차이가 최소화되도록 손실 함수를 정의하고, 손실 함수를 최소화시키는 입력인 모델의 가중치 파라미터를 찾아야 합니다.
\[\begin{gathered} \hat{\theta}=\underset{\theta\in\Theta}{\text{argmin}}\sum_{i=1}^N{\|y_i-f_\theta(x_i)\|}_2^2, \\ \text{where }\theta=\{W,b\}\text{ and }f_\theta(x)=x\cdot{W}+b. \end{gathered}\]이때 우리는 예전 선형 계층을 설명했을 때처럼, 각각의 샘플을 따로 계산하는 대신 행렬로 한꺼번에 계산할 수 있습니다.
\[\begin{gathered} \hat{y}_{1:N}=x_{1:N}\cdot{W}+b, \\ \text{where }W\in\mathbb{R}^{n\times{m}}\text{ and }b\in\mathbb{R}^m. \end{gathered}\]선형 회귀의 손실 함수는 주로 MSE 손실 함수를 활용하게 되고, 다음과 같이 전개 될 것입니다.
\[\begin{gathered} \begin{aligned} \mathcal{L}(\theta)&=\sum_{i=1}^N{\|y_i-\hat{y}_i\|_2^2} \\ &=\sum_{i=1}^N{ \sum_{j=1}^m{ (y_{i,j}-\hat{y}_{i,j})^2 } } \\ &=\sum_{i=1}^N{ \sum_{j=1}^m{ y_{i,j}^2-2y_{i,j}\cdot\hat{y}_{i,j}+\hat{y}_{i,j}^2 } }, \end{aligned} \\ \text{where }\hat{y}_{i,j}=\sum_{k=1}^n{ x_{i,k}\times{W}_{k,j} }+b_j. \end{gathered}\]선형 계층의 가중치 파라미터 $\theta$ 를 경사하강법을 통해 업데이트 하는 것은, $W$ 와 $b$ 로 각각 손실 함수를 편미분 한 후 경사하강법을 통해 업데이트 하는 것과 같습니다.
\[\begin{gathered} \theta\leftarrow\theta-\eta\nabla_\theta\mathcal{L}(\theta) \\ \downarrow \\ W\leftarrow{W}-\eta\nabla_{W}\mathcal{L}(\theta) \\ b\leftarrow{b}-\eta\nabla_{b}\mathcal{L}(\theta) \\ \downarrow \\ W_{k,j}\leftarrow{W}_{k,j}-\eta\cdot\frac{\partial \mathcal{L}(\theta)}{\partial W_{k,j}} \\ b_{j}\leftarrow{b}_{j}-\eta\cdot\frac{\partial \mathcal{L}(\theta)}{\partial b_{j}} \end{gathered}\]이와 같은 경사하강법을 통해 우리는 점차 손실 값을 줄여나갈 수 있으며, 더이상 손실 값이 줄어들지 않을 때 경사하강법을 통한 파라미터 업데이트를 중지합니다. 이렇게 얻어진 가중치 파라미터를 통해 정의되는 함수 $f_\theta$ 는 $f^*$ 를 근사한다고 할 수 있습니다.