안녕하세요. 지난 포스팅에서는 이산확률분포에서 MLE를 적용하는 방법에 대해서 알아보았습니다. 오늘은 연속확률분포에서 MLE를 적용하는 예시를 보도록 하겠습니다.
1. 단변량 가우시안 분포의 MLE(MLE for the Univariate Gaussian)
연속확률분포하면 역시 가우시안이죠. 그중에서도 단변량 가우시안 분포에 대한 MLE를 계산해보도록 하겠습니다. 간단하게 몇 가지 셋팅을 해보겠습니다! 관측 데이터 $Y$가 평균이 $\mu$이고 표준편차가 $\sigma$인 단변량 가우시안 분포를 따른다고 가정하겠습니다. 즉, $Y \sim \mathcal{N}(\mu, \sigma^{2})$인 것이죠. 그러면 저희의 목표는 $N$개의 관측 데이터 샘플들 $\mathcal{D} = \{y_{n} \mid n = 1, \dots, N\}$이 있을 때 단변량 가우시안 분포의 파라미터 $\theta = (\mu, \sigma)$를 MLE로 추정하는 것 입니다. 지난 포스팅에서 보았지만 이산확률분포와 마찬가지로 NLL을 구하도록 하겠습니다. 증명과정은 아래의 탭을 참고해주세요.
$$\text{NLL}(\mu, \sigma^{2}) = \frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - \mu)^{2} + \frac{N}{2}\log (2\pi\sigma^{2})$$
단변량 가우시안 분포에 대한 NLL을 유도하기 위해 $N$개의 관측 데이터 샘플들 $\mathcal{D} = \{y_{n} \mid n = 1, \dots, N\}$이 I.I.D라고 가정하고 추정하고자 하는 단변량 가우시안 분포의 파라미터를 $\theta = (\mu, \sigma^{2})$이라고 하자. 이때, 단일 표본 $y_{n}$에 대한 단변량 가우시안 분포의 PDF는 다음과 같다.
$$p(y_{n} \mid \mu, \sigma^{2}) = \frac{1}{\sqrt{2\pi\sigma^{2}}} \text{exp} \left( -\frac{(y_{n} - \mu)^{2}}{2\sigma^{2}} \right)$$
이제 전체 데이터 샘플들 $\mathcal{D}$에 대한 우도를 구하도록 한다. I.I.D 가정에 의해 $N$개의 단일 표본에 대한 단변량 가우시안 분포에 대한 우도를 모두 곱해주면 된다.
$$\begin{align} \mathcal{L}(\theta \mid \mathcal{D}) &= \prod_{n = 1}^{N} \frac{1}{\sqrt{2\pi\sigma^{2}}} \text{exp} \left( -\frac{(y_{n} - \mu)^{2}}{2\sigma^{2}} \right) \\ &= \left[ \prod_{n = 1}^{N} \frac{1}{\sqrt{2\pi\sigma^{2}}} \right] \left[ \prod_{n = 1}^{N} \text{exp} \left( -\frac{(y_{n} - \mu)^{2}}{2\sigma^{2}} \right) \right] \\ &= (2\pi\sigma^{2})^{-\frac{N}{2}} \text{exp} \left( -\frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - \mu)^{2} \right) \end{align}$$
다음으로 양변에 로그를 취해 로그 우도를 구합니다.
$$\begin{align} l(\mu, \sigma^{2}) &= \log \mathcal{L}(\theta \mid \mathcal{D}) \\ &= -\frac{N}{2} \log (2\pi\sigma^{2}) - \frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - \mu)^{2} \end{align}$$
마지막 단계로 양변에 음수를 취해 NLL을 정의합니다.
$$\begin{align} \text{NLL}(\mu, \sigma^{2}) &= -l(\mu, \sigma^{2}) \\ &= \frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - \mu)^{2} + \frac{N}{2} \log (2\pi\sigma^{2}) \end{align}$$
NLL을 구했다면 이제는 MLE를 수행하기 위해 $\theta = (\mu, \sigma^{2})$에 대해 각각 미분을 수행한 뒤 0이 되는 지점을 찾으면 됩니다.
$$\begin{cases} &\frac{\partial}{\partial \mu} \text{NLL}(\mu, \sigma^{2}) = 0 \Rightarrow \hat{\mu}_{\text{mle}} = \frac{1}{N} \sum_{n = 1}^{N} y_{n} = \bar{y} \\ &\frac{\partial}{\partial \sigma^{2}} \text{NLL}(\mu, \sigma^{2}) = 0 \Rightarrow \hat{\sigma}^{2}_{\text{mle}} = \frac{1}{N} \sum_{n = 1}^{N} (y_{n} - \hat{\mu}_{\text{mle}})^{2} = s^{2} - \bar{y}^{2} \end{cases}$$
위 식에서 $s^{2} = \frac{1}{N} \sum_{n = 1}^{N} y^{2}_{n}$입니다. 여기서 $\bar{y}$와 $s^{2}$은 충분통계량으로 원시 데이터 $\mathcal{D}$ 전체를 알 필요 없이 두 값만 있다면 MLE 계산 자체에는 문제가 없습니다. 그런데 일반적으로 분산 추정치를 구할 때는 다음과 같이 $N - 1$로 나눈 형태를 많이 사용하곤 합니다.
$$\hat{y}_{\text{unb}} = \frac{1}{N - 1} \sum_{n = 1}^{N} (y_{n} - \hat{\mu}_{\text{mle}})^{2}$$
이것은 편향(bias)이 없는 추정량(unbiased estimator)이지만 MLE는 아님에 주의하셔야합니다.
2. 다변량 가우시안 분포의 MLE(MLE for the Multivariate Gaussian)
자, 이제 조금 더 어렵게 가볼까요? 이번에는 다변량 가우시안 분포에 대한 MLE를 구해보도록 하겠습니다. 차근차근 문제 정의를 해보도록 하겠습니다. 관측 데이터 $Y$가 평균이 $\mu$이고 표준편차가 $\Sigma$인 다변량 가우시안 분포를 따른다고 가정하겠습니다. 즉, $Y \sim \mathcal{N}(\mu, \Sigma)$인 것이죠. 그러면 저희의 목표는 $N$개의 관측 데이터 샘플들 $\mathcal{D} = \{y_{n} \mid n = 1, \dots, N\}$이 있을 때 단변량 가우시안 분포의 파라미터 $\theta = (\mu, \Sigma)$를 MLE로 추정하는 것 입니다. 아까 보았던 단변량 가우시안 분포와 별 차이 없어보입니다! 다만 각 파라미터 및 관측 데이터 샘플들의 차원이 다릅니다.
관측 데이터 $y_{n} \in \mathbb{R}^{D}$는 $D$차원을 가지는 $n$개의 샘플을 의미합니다. 그리고 $\mu \in \mathbb{R}^{D}$와 $\Sigma \in \mathbb{R}^{D \times D}$는 각각 모평균 벡터와 양정치 및 대칭 행렬 조건을 만족하는 공분산 행렬입니다. 그리고 $\Lambda = \Sigma^{-1}$는 정밀도 행렬이라고 하겠습니다.
과정은 단변량 가우시안일 경우와 동일합니다!! 일단 다변령 가우시안 분포에 대한 NLL을 구해보면 다음과 같습니다. 상세한 유도 과정은 아래의 탭을 참고해주세요.
$$\text{NLL}(\mu, \Sigma) = \frac{N}{2} \log |\Lambda| + \frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T}\Lambda(y_{n} - \mu) + \frac{ND}{2} \log (2\pi) $$
하지만 마지막 항은 최적화 단계에서 관여하지 않기 때문에 제외하고 아래와 같이 쓸 수 있습니다.
$$\text{NLL}(\mu, \Sigma) = -\frac{N}{2} \log |\Lambda| + \frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T}\Lambda(y_{n} - \mu) $$
다변량 가우시안 분포에 대한 NLL을 유도하기 위해 $N$개의 관측 데이터 샘플들 $\mathcal{D} = \{y_{n} \mid n = 1, \dots, N\}$이 I.I.D라고 가정하고 추정하고자 하는 다변량 가우시안 분포의 파라미터를 $\theta = (\mu, \Sigma)$이라고 하자. 이때, 단일 표본 $y_{n}$에 대한 다변량 가우시안 분포의 PDF는 다음과 같다.
$$p(y_{n} \mid \mu, \Sigma) = \frac{1}{(2\pi)^{\frac{D}{2}}|\Sigma|^{\frac{1}{2}}} \text{exp} \left( -\frac{1}{2} (y_{n} - \mu)^{T} \Sigma^{-1} (y_{n} - \mu) \right)$$
이제 전체 데이터 샘플들 $\mathcal{D}$에 대한 우도를 구하도록 한다. I.I.D 가정에 의해 $N$개의 단일 표본에 대한 다변량 가우시안 분포에 대한 우도를 모두 곱해주면 된다.
$$\begin{align} \mathcal{L}(\theta \mid \mathcal{D}) &= \prod_{n = 1}^{N} p(y_{n} \mid \mu, \Sigma) \\ &= \prod_{n = 1}^{N} \frac{1}{(2\pi)^{\frac{D}{2}}|\Sigma|^{\frac{1}{2}}} \text{exp} \left( -\frac{1}{2} (y_{n} - \mu)^{T} \Sigma^{-1} (y_{n} - \mu) \right) \\ &= \left[ \prod_{n = 1}^{N} \frac{1}{(2\pi)^{\frac{D}{2}} |\Sigma|^{\frac{1}{2}}} \right] \left[ \prod_{n = 1}^{N} \text{exp} \left( -\frac{1}{2} (y_{n} - \mu)^{T} \Sigma^{-1} (y_{n} - \mu) \right) \right] \\ &= (2\pi)^{-\frac{ND}{2}} |\Sigma|^{-\frac{N}{2}} \text{exp} \left( -\frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T} \Sigma^{-1} (y_{n} - \mu) \right) \end{align}$$
다음으로 양변에 로그를 취해 로그 우도를 구합니다.
$$\begin{align} l(\mu, \Sigma) &= \log \mathcal{L}(\mu, \Sigma \mid \mathcal{D}) \\ &= -\frac{ND}{2} \log(2\pi) - \frac{N}{2} \log |\Sigma| - \frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T} \Sigma^{-1} (y_{n} - \mu) \end{align}$$
마지막 단계로 양변에 음수를 취해 NLL을 정의합니다.
$$\begin{align} \text{NLL}(\mu, \Sigma) &= -l(\mu, \Sigma) \\ &= \frac{ND}{2} \log(2\pi) + \frac{N}{2} \log |\Sigma| + \frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T} \Sigma^{-1} (y_{n} - \mu) \\ &= \frac{ND}{2} \log(2\pi) - \frac{N}{2} \log |\Lambda| + \frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T} \Lambda (y_{n} - \mu) \end{align}$$
다음 단계는 이제 말안해도 아실거 같습니다. 바로 미분을 통해 최저점을 얻을 수 있는 파라미터 $\hat{\theta}_{\text{mle}} = (\hat{\mu}_{\text{mle}}, \hat{\Sigma}_{\text{mle}})$를 얻는 것 이죠!! 하지만 여기서 중요한 점이 있습니다. 이를 위해서는 $\mu$와 $\Sigma$에 대한 미분을 수행해야하는데 이들은 각각 $D$차원의 벡터와 $D \times D$ 크기의 행렬입니다. 이 부분에 유의해서 진행해보도록 하겠습니다.
2.1 평균에 대한 MLE(MLE for the Mean)
제일 먼저 평균 $\mu$에 대한 MLE를 수행해보도록 하겠습니다. 이를 위해 $z_{n} = y_{n} - \mu$라고 치환하도록 하겠습니다. 여기서 추가적으로 사용해야하는 핵심 벡터미분공식인 행렬 $A$가 주어졌을 때 $\frac{\partial}{\partial z} z^{T}Az = (A + A^{T})z$를 활용해야합니다. 이 부분에 대해서는 향후에 더 자세히 증명해보도록 하겠습니다. 그러면 다변량 가우시안 분포에 대한 NLL의 단일 데이터 샘플 $z_{n}$가 주어졌을 때 $\mu$에 대해서 다음과 같이 미분을 할 수 있습니다.
$$\begin{align} \frac{\partial}{\partial \mu} (y_{n} - \mu)^{T}\Sigma^{-1}(y_{n} - \mu) &= \frac{\partial}{\partial z_{n}} z_{n}^{T} \Sigma^{-1} z_{n} \frac{\partial z_{n}}{\partial \mu^{T}} \\ &= -1 (\Sigma^{-1} + \Sigma^{-T})z_{n} \\ &= -2\Sigma^{-1} z_{n} \end{align}$$
여기서 $z_{n} = y_{n} - \mu$이기 때문에 $\frac{\partial z_{n}}{\partial \mu} = -I$이고 공분산 행렬 $\Sigma$은 대칭행렬이기 때문에 $\Sigma^{-1} = \Sigma^{-T}$입니다. 이제 $n$개의 데이터에 대해서 모두 수행하도록 하겠습니다. 여기서 NLL의 첫번째 항은 $\mu$와 관계없는 항이므로 미분 시 없어지게 됩니다.
$$\begin{align} \frac{\partial}{\partial \mu} l(\mu, \Sigma) &= \frac{1}{2} \sum_{n = 1}^{N} -2\Sigma^{-1}(y_{n} - \mu) \\ &= \Sigma^{-1} \sum_{n = 1}^{N} (y_{n} - \mu) = 0 \Rightarrow \hat{\mu}_{\text{mle}} = \frac{1}{N} \sum_{n = 1}^{N} y_{n} = \bar{y} \end{align}$$
어? 다변량 가우시안 분포의 평균에 대한 MLE 역시 단변량 가우시안 분포와 마찬가지로 관측된 값에 대한 평균으로 결정되게 됩니다!!
2.2 공분산에 대한 MLE(MLE for the Covariance Matrix)
이제 평균에 대한 MLE 결과인 $\hat{\mu}_{\text{mle}}$가 알게 되었다고 가정하겠습니다. 다음 단계는 공분산에 대한 MLE를 구해보도록 하겠습니다. 여기서 사용되는 중요한 행렬 트릭인 대각화 트릭(Trace Trick)을 사용해야합니다.
$$x^{T}Ax = \text{tr}(x^{T}Ax) = \text{tr}(xx^{T}A)$$
따라서, 다음과 같이 기존의 NLL 식을 대각화 트릭을 사용해서 다시 작성해보도록 하겠습니다. 대각화 트릭에 대한 증명은 향후에 더 자세히 진행해보도록 하겠습니다.
$$\begin{align} \text{NLL}(\hat{\mu}, \Sigma) &= -\frac{N}{2} \log |\Lambda| + \frac{1}{2} \sum_{n = 1}^{N} (y_{n} - \mu)^{T}\Lambda(y_{n} - \mu) \\ &= -\frac{N}{2} \log |\Lambda| + \frac{1}{2} \sum_{n = 1}^{N} \text{tr}\left[ (y_{n} - \mu)(y_{n} - \mu)^{T}\Lambda \right] \\ &= -\frac{N}{2} \log |\Lambda| + \frac{1}{2} \text{tr} \left[ \mathbf{S}_{\bar{y}} \Lambda \right] \end{align}$$
여기서 $\mathbf{S}_{\bar{y}} = \sum_{n = 1}^{N} (y_{n} - \bar{y})(y_{n} - \bar{y})^{T} = \left( \sum_{n = 1}^{N} y_{n}y_{n}^{T} \right) - N\bar{y}\bar{y}^{T}$이 됩니다. 그리고 $\mathbf{S}_{\bar{y}}$를 산포 행렬(Scatter Matrix)라고 부릅니다. 이때, 산포 행렬 $\mathbf{S}_{\bar{y}}$을 다음과 같이 다시 써볼 수 있습니다.
$$\begin{align} \mathbf{S}_{\bar{y}} &= \tilde{\mathbf{Y}}^{T}\tilde{\mathbf{Y}} \\ &= \mathbf{Y}^{T}\mathbf{C}_{N}^{T}\mathbf{C}_{N}\mathbf{Y} \\ &= \mathbf{Y}^{T}\mathbf{C}_{N}\mathbf{Y} \end{align}$$
이때, $\mathbf{C}_{N} = \mathbf{I}_{N} - \frac{1}{N} 1_{N} 1_{N}^{T}$는 중심 행렬(Centering Matrix)라고 부릅니다. 중심 행렬 $\mathbf{C}_{N}$은 $\mathbf{Y}$를 $\tilde{\mathbf{Y}}$로 변화시키는 선형 연산으로 평균값인 $\bar{y} = \frac{1}{N} \mathbf{Y}^{N} 1_{N}$을 각 행에서 모두 빼주게 됩니다.
드디어 미분할 준비가 끝났습니다! 이제 정밀도 행렬 $\Lambda$에 대한 미분을 수행해보도록 하겠습니다.
$$\begin{align} &\frac{\partial l(\hat{\mu}, \Lambda)}{\partial \Lambda} = \frac{N}{2} \Lambda^{-T} - \frac{1}{2} \mathbf{S}^{T}_{\bar{y}} = 0 \\ \Rightarrow& \Lambda^{-T} = \Lambda^{-1} = \Sigma = \frac{1}{N} \mathbf{S}_{\bar{y}} \\ \Rightarrow& \hat{\Sigma} = \frac{1}{N} \sum_{n = 1}^{N} (y_{n} - \bar{y})(y_{n} - \bar{y}) = \frac{1}{N} \mathbf{Y}^{T} \mathbf{C}_{N} \mathbf{Y} \end{align}$$
이 결과 역시 기존의 단변량 가우시안 분포와 마찬가지로 표본 데이터셋에 대한 공분산이 그대로 MLE로 유도된다는 것을 알 수 있습니다. 어떤 경우에는 공분산을 다음과 같이 표준편차로 정규화하여 상관행렬로 표현하는 경우도 있습니다.
$$\text{corr}(\mathbf{Y}) = \left( \text{diag}(\Sigma) \right)^{-\frac{1}{2}} \Sigma (\text{diag})^{-\frac{1}{2}}$$
여기서 $\text{diag} (\Sigma)^{-\frac{1}{2}}$는 대각 행렬로 각 대각성분이 $\frac{1}{\sigma_{i}}$인 행렬을 의미합니다. 하지만, 다변량 가우시안 분포에 대한 MLE는 샘플 수 $N$이 차원 수 $D$보다 충분히 크지 않을 때 과적합되거나 수치적으로 불안정할 수 있습니다. 전체 공분산 행렬 $\Sigma$는 총 $\mathcal{O}(D^{2})$의 파라미터를 가지기 때문에 신뢰도 높은 추정을 위해서는 많은 데이터를 필요로 합니다. 특히, 공분산 전체를 자유롭게 추정하기 위해서는 최소한 $\frac{D(D + 1)}{2}$개의 독립정보를 필요로 하지만 관측치는 $ND$개뿐이라 데이터가 희소하다면 과적합이 필연적입니다. 또한, 중간에 포함되는 역행렬 및 로그행렬식을 위해서는 총 $\mathcal{O}(D^{3})$의 복잡도가 요구되기에 매우 부담스럽습니다. 이러한 문제를 해결하기 위해 다양한 기법들이 사용되기는 합니다. 대표적으로 릿지 정규화, 희소 표현법, 저차원 표현 방식등이 있죠. 이는 향후에 더 자세히 알아보도록 하겠습니다.
3. 선형 회귀의 최대우도추정(MLE for Linear Regression)
마지막 예시로 선형 회귀에서의 MLE를 알아보도록 하겠습니다. 일단, 저희의 모델이 단변량 가우시안 분포를 기반으로 설계했다고 가정하면 다음과 같이 작성해볼 수 있습니다.
$$p(y \mid x, \theta) = \mathcal{N}(y \mid w^{T}, x, \sigma^{2})$$
여기서 $\theta = (w, \sigma^{2})$이고 편의를 위해 표준편차 $\sigma$는 이미 알려져있다고 가정하겠습니다. 따라서, 저희의 목표는 가중치 $w$를 추정하는 것이 됩니다. 단계는 똑같습니다! 일단 NLL을 구하면 다음과 같습니다. 상세한 유도 과정은 아래의 탭을 참고해주세요.
$$\text{NLL}(w) = -\sum_{n = 1}^{N} \log \left[ \left( \frac{1}{2\pi\sigma^{2}} \right)^{\frac{1}{2}} \text{exp} \left( -\frac{1}{2\sigma^{2}} (y_{n} - w^{T}x_{n})^{2} \right) \right]$$
단변량 가우시안 분포를 가지는 선형 회귀에 대한 NLL을 유도하기 위해 $N$개의 관측 데이터 샘플들 $\mathcal{D} = \{y_{n} \mid n = 1, \dots, N\}$이 I.I.D라고 가정하고 추정하고자 하는 단변량 가우시안 분포의 파라미터를 $\theta = (w, \sigma^{2})$이라고 하자. 이때, 단일 표본 $y_{n}$에 대한 선형 모델의 식은 다음과 같다.
$$\begin{align} p(y_{n} \mid x_{n}; w, \sigma^{2}) &= \mathcal{N}(y_{n} \mid w^{T}x_{n}, \sigma^{2}) \\ &= \frac{1}{\sqrt{2\pi\sigma^{2}}} \text{exp} \left[ -\frac{1}{2\sigma^{2}} (y_{n} - w^{T}x_{n})^{2} \right] \end{align}$$
이제 전체 데이터 샘플들 $\mathcal{D}$에 대한 우도를 구하도록 한다. I.I.D 가정에 의해 $N$개의 단일 표본에 대한 선형 모델에 대한 우도를 모두 곱해주면 된다.
$$\begin{align} \mathcal{L}(w) &= \prod_{n = 1}^{N} p(y_{n} \mid x_{n}; w, \sigma^{2}) \\ &= (2\pi\sigma^{2})^{-\frac{N}{2}} \text{exp}\left[ -\frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - w^{T}x_{n})^{2} \right] \end{align}$$
다음으로 양변에 로그를 취해 곱을 합 연산으로 바꾼다
$$\begin{align} l(w) &= \log \mathcal{L}(w) \\ &= -\frac{N}{2} \log (2\pi\sigma^{2}) - \frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - w^{T}x_{n})^{2} \end{align}$$
마지막으로 양변에 음수를 취해 NLL을 구한다.
$$\begin{align} \text{NLL}(w) &= -l(w) \\ &= \underbrace{\frac{1}{2\sigma^{2}} \sum_{n = 1}^{N} (y_{n} - w^{T}x_{n)^{2}}_{\text{(1) Data Dependent Term}} + \underbrace{\frac{N}{2} \log(2\pi\sigma^{2})}_{(2) Constant} \end{align}$$
여기서 두번째 항은 $w$의 최적화와 관련없는 항이기 때문에 생략해도 됩니다. 따라서, 중요한 것은 첫번째 항이겠죠. 첫번째 항은 잔차 제곱합(RSS)·MSE·RMSE와 같이 다양한 이름으로 불립니다. 다음과 같이 쓸 수 있죠.
$$\begin{cases} &\text{RSS} (w) = \sum_{n = 1}^{N} (y_{n} - w^{T}x_{n})^{2} = ||Xw - y||_{2}^{2} \\ &\text{MSE}(w) = \frac{1}{N} \text{RSS}(w) \\ &\text{RMSE}(w) = \sqrt{MSE(w)} \end{cases}$$
RSS, MSE, RMSE 모두 동일한 결과를 제공하기 때문에 무엇을 쓰든 상관은 없습니다. 저희는 오늘 RSS를 중심으로 계산해보도록 하죠. 즉, $\nabla_{w} \text{RSS}(w) = 0$이 되는 $w$를 찾아야합니다.
$$\begin{align} &\nabla_{w} \text{RSS}(w) = 2X^{T}(Xw - y) = 0 \\ \Rightarrow& X^{T}Xy = X^{T}y \\ \Rightarrow& \hat{w}_{\text{mle}} = (X^{T}X)^{-1}X^{T}y \end{align}$$
위 식은 일반적으로 $X^{T}X$가 가역행렬(Invertible Matrix)인 경우에만 역행렬 계산할 수 있습니다. 이 식을 일반 최소제곱해(Ordinary Least Squares; OLS)라고 부릅니다. 그렇다면 $X^{T}X$가 비가역행렬인 경우에는 어떻게 계산할까요?? 이 부분도 나중에 더 자세히 알아보도록 하겠습니다.