-
[이석중의 알기쉬운 인공지능] 과적합(overfitting) 해결 방법: regularization사업계획 2021. 10. 2. 10:02
[과적합 해결방법 : regularization]
머신 러닝을 통해 학습 데이터 뿐 만 아니라 한번도 보지 못한 새로운 데이터나 테스트 데이터까지 척척 잘 인식할 수 있는 모델을 개발하고 싶어하지만, 과적합(overfitting) 문제로 인해 그러지 못한 경우를 종종 목격한다. 지난 연재에서 살펴본 것처럼, 과적합 문제가 발생하는 원인은 학습 데이터 자체가 부족한 경우도 있지만, 너무 학습 데이터에만 특화된 복잡한 모델을 사용하기 때문에 발생하기도 한다.
학습 데이터가 부족한 경우라면, 학습용 데이터를 더 많이 취득하거나 실제 상황과 비슷한 학습 데이터를 증강(data augmentation) 기술을 통해서 인위적으로 늘리는 방식을 사용하여 극복할 수 있다. 하지만 너무 복잡한 모델을 사용하기 때문에 생기는 문제는 보통은 ‘regularization’이라는 기법을 사용하여 해결한다.
머신 러닝 분야에서 regularization이라는 말은 우리 말로는 ‘정규화’, ‘정칙화’와 같은 용어로 번역되어 사용되지만, 무슨 뜻인지 와닿지 않아 왠지 부자연스러운 느낌이다. regularization의 의미는 학습 데이터에만 너무 특화되지 않고 ‘일반화(generalization)’가 가능하도록 일종의 규제(penalty)를 가하는 기법을 말한다.
regularization을 설명할 때 흔히 “암기(memorization)’와 ‘일반화(generalization)’라는 단어가 사용이 된다. 예를 들어, 개와 고양이를 구별할 수 있는 머신 러닝 모델을 개발하고자 하는데, 학습 데이터에 대하여 99% 수준의 높은 정확도를 보이지만, 한번도 보지 못한 새로운 테스트 데이터에 대하여 75% 정도의 정확도를 보였다면, 그 모델은 일반화보다는 암기를 더 잘한 경우라고 볼 수 있다.
문제를 해결할 수 있는 방법이 여러 가지가 나올 수 있는 것처럼, 머신 러닝이나 통계에서도 학습 데이터를 설명할 수 있는 모델이 여러 가지가 있을 수 있는데, 통상적으로는 학습 데이터의 복잡도에 비해서 설명하고자 하는 모델의 복잡도가 더 큰 경우에 이런 과적합 문제가 발생할 수 있다. 학습 데이터 속에 숨어 있는 일반적인 패턴이 아니라, 쓸데없을 정도로 세세하게 학습 데이터 자체만을 설명하고자 하는 경우에 이런 문제가 발생한다. 흔하게 학습 데이터 속에 존재하는 잡음까지 모두 처리하고자 하면 모델은 복잡해질 수 밖에 없다. 이 때 필요한 것이 바로 ‘오캄의 면도날’ 이론처럼 단순하게 만들어주는 regularization 기법이다.정규화 regularization
통상적으로 머신 러닝이나 통계적 추론을 할 때, 이전 연재에서 살펴본 것처럼, 비용 함수(cost function)가 작아지는 방향으로 진행을 하게 된다. 단순하게 그 함수가 작아지는 쪽으로만 진행을 하다 보면, 특정 가중치 값들이 커지면서 일반화를 나쁘게 하는 경우도 있다. 비용 함수 자체는 작아지지만 더 복잡한 모델을 사용하는 쪽으로 진행이 될 수도 있다는 말이다.
이런 경우를 방지하기 위해, 비용 함수에 계수가 많아지는 것에 대한 일종의 규제(penalty)를 추가 하면 된다. 보통은 ‘L1’과 ‘L2’ 항을 비용 함수에 추가 한다. ‘L1 regularization’은 모델에서 사용하는 모든 ‘가중치들의 절대값의 합’을 추가한다. 비용함수가 작아지려면, 0이 되는 가중치들이 많은 쪽으로 최적화가 일어나야 하기 때문에, 자연스레 모델의 복잡도가 줄어들게 된다. ‘L2 regularization’은 ‘가중치 제곱의 합’을 비용함수에 추가한다.
통상적으로 ‘L1’은 0이 아닌 가중치를 최소화 시키는 방향으로 진행이 되어 sparse model 형태를 갖게 되며, ‘L2’는 가중치들의 값을 0 근처로 작게 만들어주는 방향으로 진행이 되기 때문에 ‘가중치 감쇄(weight decay)’라고도 불린다. 이처럼, ‘L1’과 ‘L2’는 추구하는 방향이 다르기 때문에 개발하고자 하는 머신 러닝 모델에 따라서 잘 선택해야 한다.
이번 연재에서는 머신 러닝의 골치거리인 과적합(overfitting) 문제의 해결 기법 중 regularization에 대하여 살펴보았다. 모델이 복잡해지는 방향으로 최적화가 진행되는 것을 방지하기 위해 비교적 ‘L1’과 ‘L2’와 같은 간단한 항을 추가하는 것으로 효과를 거둘 수 있다. 학습 데이터에 대한 맞춰주기(fitting)와 개발된 모델의 일반화(generalization) 사이에는 trade-off 관계가 있음을 늘 기억하면 좋을 것 같다.
출처 : YTIMES청년신문(http://www.ytimes.co.kr)'사업계획' 카테고리의 다른 글
[이석중의 알기쉬운 인공지능] 하이퍼변수(Hyperparameter) 최적화(4) (0) 2021.10.03 [이석중의 알기쉬운 인공지능] 과적합(Overfitting) 해결 방법: 망의 일부를 생략하기(Dropout) (0) 2021.10.02 [이석중의 알기쉬운 인공지능] 머신러닝의 골치거리: 과적합(overfitting) (0) 2021.10.02 [이석중의 알기쉬운 인공지능] 인공 신경망의 학습 방법: 경사 하강법(Gradient Descent, GD) 이해하기 (4) (0) 2021.09.30 [이석중의 알기쉬운 인공지능] 인공 신경망의 학습 방법: 경사 하강법(Gradient Descent, GD) 이해하기 (3) (0) 2021.09.30