출처
* 보충 필요
Regularization 정의
특성 교차(Feature Cross)
과적합(Overfitting)
최적화(Regularization)
두 개 이상의 특성을 곱하여(교차하여) 구성되는 합성 특성이다. 여러 특성을 교차하면 특성을 개별로 예측하는 것보다 좋은 성능을 기대할 수 있다.
과적합(Overfitting)
훈련 데이터를 통해 모델을 만들면서, 훈련 데이터에만 지나치게 적응하면 생기는 현상이다.
Overfitting하게 되면, 훈련 데이터가 아닌 다른 데이터에는 제대로 반응하지 못하게 된다. 주로 아래와 같은 경우에 발생한다.
Overfitting하게 되면, 훈련 데이터가 아닌 다른 데이터에는 제대로 반응하지 못하게 된다. 주로 아래와 같은 경우에 발생한다.
- 매개변수가 많고 표현력이 높은 모델인 경우
- 훈련 데이터가 적은 경우
최적화(Regularization)
성능을 높이기 위해 특성 교차를 생성하면 더 많은 차원이 발생한다. 이 때, 차원의 개수가 많아지만 모델의 크기도 커지며 그로 인해 엄청난 양의 RAM이 필요해진다. 모델의 크기가 커지기 때문에 과적합 문제도 나타나게 된다.
그렇다면 이런 문제를 해결하기 위해서는 어떻게 해야할까?
최적화(Regularization)을 통해 이를 해결할 수 있다.
너무 fitting 된 모델을 범용성을 갖도록 처리하는 방법이다.
그렇다면 이런 문제를 해결하기 위해서는 어떻게 해야할까?
최적화(Regularization)을 통해 이를 해결할 수 있다.
너무 fitting 된 모델을 범용성을 갖도록 처리하는 방법이다.
Regularization 방법
모델의 크기, RAM을 어떤 방법으로 줄일 수 있을까?
몇몇 가중치를 0으로 만들어 feature의 개수를 줄이면 된다. 이 때, 아무 feature를 없애면 모델의 성능이 떨어지게 되므로 모델의 성능을 떨어뜨리는 noise가 심한 feature를 없애면 알맞게 최적화를 할 수 있다.
Regularization은 가중치를 0으로 만들거나 줄이는 방법에 따라 나눌 수 있다.
몇몇 가중치를 0으로 만들어 feature의 개수를 줄이면 된다. 이 때, 아무 feature를 없애면 모델의 성능이 떨어지게 되므로 모델의 성능을 떨어뜨리는 noise가 심한 feature를 없애면 알맞게 최적화를 할 수 있다.
Regularization은 가중치를 0으로 만들거나 줄이는 방법에 따라 나눌 수 있다.
L0
가중치를 0으로 하여, feature의 값을 완전히 없애버린다. 이 방법은 cost function이 볼록 함수의 모양이 아니기 때문에 최소화하는 값을 찾기가 어렵다.
L1, Lasso Regression
모델의 비용 함순에 norm(가중치 각 요소 절대값의 합)을 패널티로 부과한다. 대부분의 요소값이 0인 sparse feature에 의존한 모델에서 L1 Regularization은 불필요한 feature에 대응하는 가중치들을 정확히 0으로 만들어 해당 feature를 모델이 무시하도록 한다. feature selection에 효과를 볼 수 있다. L1 Regularization은 아래의 수식으로 표현할 수 있다.
weight 값 자체를 줄이는 것이 아니라 w의 부호에 따라 상수 값을 빼주는 방식으로 regularization을 수행한다.
weight 값 자체를 줄이는 것이 아니라 w의 부호에 따라 상수 값을 빼주는 방식으로 regularization을 수행한다.
L2, Ridge Regression
모델의 비용 함수에 norm(가중치 각 요소의 제곱들의 합)을 패널티로 부과한다. L2 Regularization은 아래의 수식으로 표현할 수 있다.
학습의 방향이 단순하게 C_0 값이 작아지는 방향으로만 진행되는 것이 아니라, w 값들 역시 최소가 되는 방향으로 진행하게 된다.
학습의 방향이 단순하게 C_0 값이 작아지는 방향으로만 진행되는 것이 아니라, w 값들 역시 최소가 되는 방향으로 진행하게 된다.
L1 / L2 Regularization의 차이점과 선택 기준
L1 Regularization은 통상적으로 상수 값을 빼주도록 되어 있기 때문에 작은 가중치들은 거의 0으로 수렴이 되어, 몇 개의 중요한 가중치들만 남게 된다.
그러므로 몇 개의 의미있는 값을 끄집어내고 싶은 경우에는 L1 Regularization이 효과적이기 때문에 "sparse model(coding)"에 적합하다. 단, 미분이 불가능한 점이 있기 때문에 gradient-based learning에 적용할 때는 주의가 필요하다.
그러므로 몇 개의 의미있는 값을 끄집어내고 싶은 경우에는 L1 Regularization이 효과적이기 때문에 "sparse model(coding)"에 적합하다. 단, 미분이 불가능한 점이 있기 때문에 gradient-based learning에 적용할 때는 주의가 필요하다.
Dropout
다른 Regularization 기법들과(L1, L2, maxnorm) 상호 보완적인 방법으로 알려져 있다. 드롭아웃은 각 계층마다 일정 비율의 뉴런을 임의로 정해 drop 시켜 나머지 뉴런들만 학습하도록 하는 방법이다.
댓글 없음:
댓글 쓰기