-
정규화(Regularization) (2) | 패스트캠퍼스 챌린지 26일차딥러닝 2022. 2. 18. 21:00
지난 시간에 이어 정규화의 방법을 좀 더 살펴보았다.
우선, early-stopping은 매우 직관적인 정규화 방법이다. Validation Error는 감소하다가 증가하는 추세를 보이는데, 이 점을 활용하여 validation이 증가하면 훈련을 중지하는 방법이다. 이 방법은 결과적으로는 L2(ridge) 정규화와 같다. 즉, L2 정규화처럼 값을 특정 영역에 가두어 과적합하는 값 까지 않도록 하는 것이다. 다만, L2 정규화는 여러번의 훈련을 통해 최적의 parameter를 찾는 과정이 필요하다면, early stopping은 한 번의 훈련 만으로 이를 이룰 수 있다는 점에서 장점이다.
Early stopping과 관련해서 고민해 볼 만한 지점이 Deep double descent라 최근에 알려진 현상이다. 이 현상은 엄청 큰 모델과 엄청 많은 데이터와 엄청 많은 에폭 수를 가지고 있으면 overfitting 구간에서도 error가 다시 떨어진다는 현상이다. 아직까지 왜 이런 일이 일어나는지는 이론상으로 밝히지 못했다고 한다. 이는 overfitting이 일어났다고 판단해 훈련을 중단한 지점이 꼭 최적의 지점이 아닐 수 있다는 것이 되어, 주어진 데이터와 자원으로 과연 최고의 훈련이 이루어졌는지 의문을 가지게 하는 현상이다. 다만, 뒤에 나올 데이터 증강과 같은 정규화 방식을 거치면 double descent가 완화된다는 점도 알려졌기 때문에 정규화를 적용해야 할 이유가 더더욱 크다.
파라미터 공유는 사전 정보를 통한 정형화로, 여러 데이터가 같은 파라미터를 공유해, 즉 같은 과정으로 처리해도 된다는 것이 알려져 있으면 파라미터, 즉 가중치를 공유한다는 개념이다. 이는 CNN에서 살펴볼 수 있다. CNN은 이미지를 나누어 각 부분에서 feature를 뽑아 처리하는 방식인데, 통계적으로 특정 두 영역을 같은 방식으로 처리해도 된다는 것이 밝혀지면, 그 부분의 가중치를 공유시킬 수 있다. 이는 연산 성능에 영향을 주지 않으면서 학습할 파라미터수를 줄이기 때문에 학습의 효율성에 도움을 준다. RNN의 경우 은닉층이 다시 은닉층으로 가는 식으로 이해할 수 있는데, 이는 time step마다 같은 변형을 취하면 된다는 가정을, 즉 파라미터가 공유된다는 점을 뜻한다.
다중 작업 학습은 여러 task를 통해 학습시키는 방식이다. 이는 데이터를 증강시키는 듯한 효과를 불러 일으키며, focusing 효과를 주고, '엿듣기 효과'를 통해 다른 task를 통해 쉽게 학습되는 feature를 학습하고, 다른 task도 선호하는 representation이 나오도록 bias가 세팅되어 일반화에 도움이 되는 방식이다.
적대적학습은 나날이 주목받는 분야로 알고 있는데, 이는 적대적 데이터를 포함시켜 학습시켜 모델을 더욱 robust 하게 하는 것을 뜻한다. 적대적 데이터란 모델이 제대로 예측하는 데이터에 사람에게는 사소한 변화를 주어 모델이 제대로 예측하지 못하는 데이터를 뜻한다. 가령, 이미지의 경우, 사람은 추가해도 상관 없는 약간의 노이즈를 레이어로 추가해서(이 떄 노이즈는 옛날 TV의 지지직 거리는 화면을 생각하면 된다) 모델이 제대로 분류하지 못하게 되는 경우를 적대적 데이터라 볼 수 있다. 쉽게 이야기하면, 완벽한 줄 알았는 모델이 자율주행과 같은 실제 상황에 놓이고 보니 오답을 내놓는 경우가 많아서, 이 오답을 가지고 일종의 오답노트를 만들어 추가적으로 훈련을 시키는 것이다.
마지막으로 데이터증강은 데이터를 추가로 수집하기 어려우므로 데이터를 임의로 만들어 증강시키는 기법을 말한다. 이미지의 경우 color filtering, mixing, erasing 등을 진행할 수 있다. 또한, 이미지나 텍스트나 생성 모델이 있다면 이 생성모델을 통해 데이터를 증강시키는 것도 방법인데, 이 생성모델이라는게 그렇게 복잡할 필요는 없는 것 같다. 최근 논문을 보아도 template 기반의 생성 "모델"을 가지고 데이터를 증강시키는 경우를 볼 수 있는데, template 기반의 생성 "모델"이란 (모델이라고 부르기도 애매한데) 문장에 단어가 들어갈 칸을 비워 둔 template을 통해 문장을 만드는 것이다. 이런 모델로 문장을 생성해도 상식 추론 등의 영역에서 유의미한 결과 차이를 보일 수 있다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXiC
'딥러닝' 카테고리의 다른 글
최적화(Optimization) (2) | 패스트캠퍼스 챌린지 28일차 (0) 2022.02.20 최적화(Optimization) (1) | 패스트캠퍼스 챌린지 27일차 (0) 2022.02.19 정규화(Regularization) (1) | 패스트캠퍼스 챌린지 25일차 (0) 2022.02.17 순방향 네트워크 (3) | 패스트캠퍼스 챌린지 24일차 (0) 2022.02.16 순방향 네트워크 (2) | 패스트캠퍼스 챌린지 23일차 (0) 2022.02.15