모델 검증 전 또는 모델 검증 내에서 기능 정규화를 수행합니까?


52

머신 러닝의 일반적인 모범 사례는 예측 변수의 특징 정규화 또는 데이터 표준화를 수행하는 것입니다. 즉, 평균을 빼고 데이터를 중심에두고 분산 (또는 표준 편차도)으로 나누어 정규화하는 것입니다. 자립과 이해를 위해 두 가지 주요 목표를 달성하기 위해이 작업을 수행합니다.

  1. 수치 적 안정성을 위해 작은 모델 중량을 피하십시오.
  2. 컨쥬 게이트 그라디언트 (Conjugate Gradient)와 같은 최적화 알고리즘의 빠른 수렴을 보장하여 다른 하나의 예측 변수 차원이 큰 수렴으로 인해 수렴이 느려지지 않도록합니다.

우리는 일반적으로 데이터를 교육, 검증 및 테스트 세트로 분할합니다. 문헌에서 우리는 일반적으로 피쳐 정규화를 수행하기 위해 전체 예측 변수 세트에 대한 평균 및 분산 (또는 표준 편차)을 취합니다. 내가 여기서 볼 수있는 큰 결함은 실제로 그렇게한다면 미래 예측 정보를 훈련 예측 변수, 즉 평균과 분산에 포함 된 미래 정보에 도입한다는 것입니다.

따라서 훈련 데이터에 대한 정규화 기능을 수행하고 평균과 분산을 저장합니다. 그런 다음 훈련 평균과 분산을 사용하여 유효성 검증 및 테스트 데이터 세트의 예측 변수에 기능 정규화를 적용합니다. 이것에 근본적인 결함이 있습니까? 누구든지 더 나은 대안을 추천 할 수 있습니까?


답변:


46

당신의 접근 방식은 전적으로 정확합니다. 데이터 변환은 종종 "전처리"로 과소 평가되지만 모델 성능을 최적화하기 위해 변환이 모델 구축 프로세스의 일부로 취급 될 수 있고 충분히 강조 될 수는 없습니다.

추론 : 보이지 않는 데이터에 모델을 적용해야합니다.이 데이터는 일반적으로 모델을 구축 할 때 사용할 수 없습니다. 유효성 검사 프로세스 (데이터 분할 포함)가이를 시뮬레이션합니다. 따라서 모형 품질 (및 일반화 검정력)을 제대로 추정하려면 정규화 매개 변수 (평균 및 분산) 계산을 훈련 세트로 제한해야합니다.

왜 이것이 문학에서 항상 이루어지지 않는지 추측 할 수 있습니다. 평균과 분산의 계산이 작은 데이터 변동에 민감하지 않다는 주장이있을 수 있습니다 (그러나 기본 표본 크기가 충분히 크고 데이터가 일반적으로 극단적 인 특이 치없이 분포 된 경우에만 해당됨).


나는 이것을 약간 혼란스럽게 생각한다. OP는 검증 및 테스트 데이터 세트에서 기능 정규화를 수행하고 있다고 말합니다. 귀하의 답변은 먼저 그의 접근 방식이 정확하다고 말합니다. 그런 다음 "정규화 매개 변수의 계산을 훈련 세트로 제한해야합니다"라고 말하고 있습니다. 따라서 귀하의 답변은 자신이하고있는 일이 옳은지 말한 후 달리 제안함으로써 모순됩니다. 내가 여기서 무엇을 놓치고 있습니까?
mahonya

4
OP가하는 일은 그의 마지막 단락에 설명되어 있으며 이것이 바로 내가 말한 것입니다. 물론 트레이닝 세트에 적용된 정규화는 테스트 / 유효성 검증 세트에 적용됩니다. 중요한 점은이 정규화의 매개 변수가 전체 데이터 세트가 아니라 훈련 데이터에 대해서만 계산되었다는 것입니다. 도움이 되었기를 바랍니다.
steffen

아, 고마워 나는 당신의 대답을 오해했습니다. 나는 당신이 훈련 세트에만 정규화의 '적용'을 제안하고 있었지만, 그것은 당신이 제안한 것이 아닙니다.
mahonya

2

기능 정규화는 동일한 규모로 다른 기능을 만드는 것입니다. 스케일링은 하나 이상의 기능이 나머지보다 훨씬 더 큰 값을 취할 때 필요한 많은 추가 반복을 피함으로써 그라디언트 하강 속도를 높입니다 (스케일링없이 시각화 된 비용 함수는 큰 비대칭 성을 보여줍니다).

테스트 데이터가 올 때 훈련 세트의 평균과 var를 사용하는 것이 합리적이라고 생각합니다. 그러나 데이터 크기가 크면 교육 및 유효성 검사 세트를 대략 정규 분포로 볼 수 있으므로 평균과 var를 대략적으로 공유합니다.


1
데이터 정규화가 그라디언트 하강 속도를 높일 수있는 이유는 정규화가 없으면 rss에 타원형 윤곽이 있으므로 고정 학습 속도가 주어지면 그라디언트 하강이 수렴하기 위해 더 많은 반복이 필요할 수 있기 때문입니다. 스케일링과 함께 rss에는 원형 윤곽 (대칭)이 있으므로 그래디언트 디센트는 빠르게 수렴됩니다. 내가 맞아?
아보카도

1

당신이 묘사 한 방법론은 다른 사람들이 말한 것처럼 건전합니다. 훈련 세트의 기능에서와 마찬가지로 테스트 세트 기능에서 동일한 변환을 수행해야합니다.

기능 정규화의 또 다른 이유는 특정 변수의 규모와의 차이에 민감한 특정 프로세스의 성능을 향상시키는 것입니다. 예를 들어, 주성분 분석 (PCA)은 가장 큰 비율의 분산을 포착하는 것을 목표로하며, 그 결과 피쳐 정규화가 초기에 수행되지 않으면 가장 큰 분산을 나타내는 변수에 더 많은 가중치를 부여합니다.


아주 좋은 지적입니다! 가져와 주셔서 감사합니다. PCA를 계산하기 전에 항상 입력 행렬을 정규화하는 연구에서 기억합니다.
SkyWalker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.