본문 바로가기
  • Deep dive into Learning
  • Deep dive into Optimization
  • Deep dive into Deep Learning
Deep dive into Deep learning

Deep dive into deep learning part (17) : Regularization(2) -Updated

by Sapiens_Nam 2023. 5. 7.

 

 

모바일 앱 환경에서는 latex 수식이 깨져 나타나므로, 가급적 웹 환경에서 봐주시길 바랍니다.

 

지난 글에서는 Regularization이 필요한 이유와 이 기술의 목표에 대한 이야기를 하였고, 오늘은 대표적인 Regularization 중 하나인 L1-norm, L2-norm regularization에 대해 이야기하고자 한다.

이것은 현재의 딥러닝 뿐만이 아닌, 통계, 머신러닝에서 과거부터 많이 쓰여온 기술로서 지금까지 적지 않게 쓰이고 있다.

 

L1-norm, L2-norm Regularization은 손실함수를 다음과 같이 바꾸는 것을 의미한다.

 

여기서 $\mathcal{L}_{S} (w)$ 는 train loss function을 의미하고, $\Omega(w)$가 regularization term을 의미한다.

$\alpha$는 regularization의 크기 / 강도를 조절하는 Hyperparameter이다.

또한, $\frac{1}{2}$는 미분했을 때, 식이 간단하게 나오게 하기 위함이며, 위 최적화 문제의 'solution'에는 영향을 미치지 않는다. 즉, $\frac{1}{2}$가 있든 없든, 위 문제의 optimal solution이 바뀌지 않는다.

 

먼저, 벡터의 L1-norm과 L2-norm의 정의를 간단하게 리뷰해보자.

 

L2-norm에 대한 Regularization term이 붙은 손실함수를 최소화하는 '회귀' (regression) 문제를 ridge-regression, L1-norm에 대한 Regularization term이 붙은 손실함수를 최소화하는 '회귀' (regression) 문제를 Lasso-regression이라고 부르기도 한다.

 

그렇다면 위 손실함수를 최소화하면 ($\mathcal{L}(w)$) 어떻게 학습이 진행될까?

가장 간단한 gradient descent 알고리즘을 사용할 경우를 살펴보도록 하자.

 

L2-norm regularization부터 먼저 살펴보자.

loss function의 gradient는 다음과 같이 유도된다.

$\nabla \mathcal{L}_S(w) + \alpha w$

 

그렇다면 parameter update는 다음과 같이 될 것이다.

$w_{t+1} = w_t - \eta_t (\nabla \mathcal{L}_S(w) + \alpha w_t)$

$w_{t+1} = (1 - \eta_t \alpha) w_t - \eta_t \nabla \mathcal{L}_S(w)$

 

원래 regularization term이 없을 떄와의 차이점을 비교해보면, $w_t$에서 $(1 - \eta_t \alpha) w_t$로 $w_t$의 크기가 작아졌다. (일반적으로 $\eta_t, \alpha_t$ 모두 1보다 많이 작은 양수를 쓰므로, $1 - \eta_t \alpha_t$는 1보다 작은 양수이다)

한 번의 step에서 파라미터 업데이트 과정에서는 파라미터가 작아지는 형태로 바뀐다. 

그렇다면 이러한 변화가 누적되어져 전체 학습 과정에서는 어떻게 바뀌게 될까?

 

위의 그림에서 $\lambda$가 우리의 수식에서 $\alpha$이고 좌측 그림은 L1-norm regularization, 우측 그림은 L2-norm regularization term이 추가된 loss function을 최소화하는 상황이다.

결국, 원래 regularization term이 없었다면, 즉, 맨 처음 수식에서 $\mathcal{L}_S(w)$만 최소화했더라면 그림의 $w$로 수렴했을 테인데, 우리는 $\mathcal{L}_S(w) + \alpha \Omega(w)$를 최소화했기 때문에 위 그림에서 $w^{\prime}$으로 수렴하게 되는 것이다. 

(물론 neural network의 contour graph는 위 그림과 같이 깔끔하고 단순한 원에 가까운 모형이 아니므로 위와 같이 단순하게 결론 내리긴 힘들지만 기본 원리는 비슷하다.)

 

이를 좀 더 자세하게 살펴보자. constrained problem 관점에서 살펴볼 수 있는데 아래 내용은 이해가 잘 안된다면 아래로 넘어가도 괜찮다.


다시 한 번 objective function을 살펴보자.

 

여기서 $\Omega(w)$를 최소화한다는 것은 결국 $w$의 크기를 규제하는 것이다. 즉, 가중치의 크기가 매우 커지지 않도록 범위를 제한하는 것으로 볼 수 있다.

그렇다면 $\Omega(w) \le k$ (이 때 $k$는 constant이다.)를 만족하는 constrained optimization problem으로 문제를 생각할 수 있다. 이를 수식으로 표현하면 아래와 같다.

 

 

 

이를 라그랑주 함수로 표현하면 다음과 같다. 

 

여기서 표기상의 혼동이 있을 수 있어 말하자면, $L(w, \alpha)$는 loss function이 아닌 Lagrangian function이다.

$\mathcal{L}(w)$가 loss function이며, 우리는 $\Omega(w) \le k$ 제약이 있는 $\min_w \mathcal{L}_S(w)$를 unconstrained optimization problem으로 바꾸기 위해 Lagrangian function으로 바꿔 문제를 표현한 것이다.

 

위 Lagrangian function 문제는 $w$에 대해서는 최소화해야 하고, $\alpha$에 대해서는 최대화해야 한다.

따라서, 위 문제의 optimal solution은 다음과 같이 주어진다.

 

만약 우리가 KKT condition 등을 이용해서, 최적의 $\alpha^*$를 찾았다면, optimal solution은 다시 이렇게 바뀐다.

 

이는 맨 앞에서 우리가 정의했던 optimization problem 상황과 동치이다.

즉, 우리는 결국 parameter norm의 크기에 규제를 두는 상황으로서 "constrained optimization problem"으로서

L2-norm, L1-norm regularization을 이해할 수 있다.

 

그리고 이는 아래의 그림을 통해서도 표현된다.

 

 

즉, $\lVert w \rVert_1$, $\lVert w \rVert_2^2$의 크기에 대한 규제가 있는 상황에서 우리는 목적함수 $J$를 최소화하고 싶은 것이고 이는 원래의 optimal solution $w$가 아닌, 새로운 optimal solution $w^{\prime}$으로 파라미터가 수렴하게 만든다.

그리고 그림에서 $\lambda_1, \lambda_2$는 이 규제의 힘을 결정하는 Hyper-parameter이다.

만약 $\lambda$가 크다면 위 도형 또는 norm ball은 크기가 줄어들 것이고, $\lambda$가 작으면 norm ball의 크기는 증가할 것이다. (바꿔 말하면 feasible region, constraint area의 크기는 $\lambda$의 크기에 반비례한다.)


마지막으로 다음과 같은 관점으로 regularization term이 있는 optimization problem을 바라보도록 하자.

 

loss function $\mathcal{L}(w) := \mathcal{L}_S(w) + \alpha \Omega(w)$의 optimal solution $w^*$에서 talyor approximation을 사용해보자. 

 

$\mathcal{L}(w) \approx \mathcal{L}(w^*) + \frac{1}{2} (w - w^*) H (w - w^*)$

 

이때 $H$는 $w^*$에서의 hessian matrix이다.

위 식에서 1차 미분 term이 없는 이유는 $\nabla \mathcal{L}(w^*) = 0$이기 때문이다.

또한, $w^*$는 $\mathcal{L}(w)$의 local minima (또는 global minima)이므로 Hessian matrix가 Positive (Semi)-definite 행렬이다. 

위 2차 근사 함수가 최소가 되는 지점에서의 gradient는 다음과 같다.

$\nabla \mathcal{L}(w) = H(w - w^*)$

 

$w = w^*$ 일 때 최소이므로, local minima (또는 global minima)에서의 기울기는 0이다.

위 gradient에 regularization term에 대한 gradient를 더해서 그것이 최소가 되는 지점에 대해 유도해보자.

$\alpha w + H(w - w^*) = 0$

$(H + \alpha I) w = H w^*$

$w = (H + \alpha I)^{-1} H w^*$

 

$\alpha$가 작을수록 $w$는 $w^*$에 근접한다.

그런데 $\alpha$가 커질수록, 어떻게 변화가 일어날까? Hessian matrix는 symmetric matrix이므로, orthogonal eigenvector와 real number eigenvalue를 가진다.

Eigen-decomposition을 수행하여 다음과 같이 얻는다고 해보자. $H = Q D Q^T$

여기서 $Q$는 column vector가 서로 orthorgonal한 eigenvector인 matrix이고, $D$는 diagonal element가 eigenvalue인 diagonal matrix이다.

이를 위 식에 대입하면 다음과 같이 나온다.

$w = Q(D + \alpha I)^{-1}D Q^T w^*$ 

 

결국 H의 eigenvector들로 정의된 축에 대해서 'rescling' 효과를 가지게 된다.

결론적으로, H의 eigenvalue들이 비교적 클 때, ($\alpha$보다 클 때) regularization 효과는 상대적으로 작아지고, H의 eigenvalue들이 비교적 작을 때, ($\alpha$보다 작을 때) regularization 효과는 상대적으로 커지게 된다.

 

 

선형회귀 관점에서 이를 다시 한 번 살펴보자.

$y = Xw$

 

여기서 $y$는 label을 나타내는 vector이고, $X$는 머신러닝에서  design matrix (row는 각 sample들이며 column은 각 data의 feautre) $w$가 parameter vector라고 해보자.

그리고 objective function을 다음과 같이 제곱 형태로 정의해보자.

$\mathcal{L}(w) = (Xw - y)^T (Xw - y)$

 

위 식을 최소화하는 $w^*$는 다음과 같이 나온다.

$w^* = (X^T X)^{-1}X^T y$

 

만약 위 objective function에 L2-norm regularization term ($\frac{1}{2} \alpha \lVert w \rVert_2^2$)이 붙었다면 $w^*$는 어떻게 될까?

$w^*$는 다음과 같이 나오게 될 것이다.

$w^* = (X^TX + \alpha I)^{-1} X^T y$

 

$X^TX$가 $(X^TX + \alpha I)$로 바뀌게 된다.이 행렬은 원래의 행렬에 주대각성분들에 $\alpha$를 더한 것이고, 이는 분산을 증가시키는 효과를 가져온다.

(Design matrix $X$의 내적 행렬 $X^TX$에서 diagonal entry들은 variance를 나타낸다.)

728x90

댓글