숫자 데이터: 정규화

통계 및 시각화 기법을 통해 데이터를 검사한 후에는 모델을 더 효과적으로 학습하는 데 도움이 되는 방식으로 데이터를 변환해야 합니다. 정규화의 목표는 유사한 크기로 변환하는 것입니다. 예를 들어 기능:

  • 지형지물 X은 154~24,917,482 범위에 걸쳐 있습니다.
  • 지형지물 Y은 5~22 범위에 걸쳐 있습니다.

이 두 가지 기능은 매우 다른 범위에 걸쳐 있습니다. 정규화는 XY가 유사한 범위(예: 0~1)를 차지하도록 조작할 수 있습니다.

정규화에는 다음과 같은 이점이 있습니다.

  • 학습 중에 모델이 더 빠르게 수렴하는 데 도움이 됩니다. 서로 다른 특성의 범위가 다르면 경사 하강이 '튀어오르고' 수렴 속도가 느려질 수 있습니다. 하지만 AdagradAdam과 같은 고급 최적화 도구는 시간이 지남에 따라 효과적인 학습률을 변경하여 이 문제를 방지합니다.
  • 모델이 더 나은 예측을 추론하는 데 도움이 됩니다. 서로 다른 지형지물의 범위가 다르면 결과 모델의 예측이 다소 덜 유용할 수 있습니다.
  • 특성 값이 매우 높을 때 'NaN 트랩'을 방지하는 데 도움이 됩니다. NaN은 약어입니다. 숫자가 아닙니다. 모델의 값이 부동 소수점 정밀도 한도를 초과하면 시스템은 값을 숫자가 아닌 NaN로 설정합니다. 모델의 숫자 중 하나가 NaN이 되면 모델도 결국 NaN이 됩니다.
  • 모델이 각 특성의 적절한 가중치를 학습하는 데 도움이 됩니다. 특성을 조정하지 않으면 모델에서 범위가 넓은 특성을 과도하게 중시하고 범위가 좁은 특성을 충분히 중시하지 않습니다.

확연히 다른 범위를 다루는 숫자 특성(예: 연령 및 소득)을 정규화하는 것이 좋습니다. 또한 city population.와 같이 넓은 범위를 다루는 단일 숫자 특성을 정규화하는 것이 좋습니다.

다음 두 가지 기능을 고려하세요.

  • 지형지물 A의 최솟값은 -0.5이고 최댓값은 +0.5입니다.
  • 특성 B의 최저값은 -5.0, 최댓값은 +5.0입니다.

기능 A 및 기능 B의 스팬은 비교적 좁습니다. 하지만 지형지물 B의 범위는 지형지물 A의 범위보다 10배 더 넓습니다. 따라서 날짜는 다음과 같이 계산합니다.

  • 학습 시작 시 모델은 A 특성이 10배라고 가정합니다. 더 '중요' 더 높습니다.B
  • 학습 시간이 예상보다 오래 걸립니다.
  • 결과 모델이 최적이 아닐 수 있습니다.

정규화하지 않아서 발생하는 전반적인 손상은 비교적 작지만 그래도 특성 A와 특성 B를 동일한 크기(예: -1.0~+1.0)로 정규화하는 것이 좋습니다.

이제 범위 차이가 더 큰 두 특성을 살펴보겠습니다.

  • 지형지물 C의 최솟값은 -1이고 최댓값은 +1입니다.
  • 지형지물 D의 최솟값은 +5,000이고 최댓값은 +1,000,000,000입니다.

지형지물 C 및 지형지물 D를 정규화하지 않으면 모델이 최적화되지 않을 수 있습니다. 또한 학습이 이 과정을 완료하는 데 완전히 수렴하지 못하는 경우도 있습니다.

이 섹션에서는 다음과 같은 세 가지 일반적인 정규화 방법을 다룹니다.

  • 선형 확장
  • Z-점수 크기 조정
  • 로그 확장

이 섹션에서는 클리핑: 클리핑은 실제 정규화 기법은 아니지만, 난잡한 숫자 특성을 더 나은 모델을 생성하는 범위로 제어합니다.

선형 조정

선형 크기 조정(일반적으로 크기 조정으로 줄임)은 부동 소수점 값을 자연 범위에서 표준 범위(일반적으로 0~1 또는 -1~+1)로 변환하는 것을 의미합니다.

선형 확장은 다음 조건을 모두 충족하는 경우에 적합합니다.

  • 데이터의 하한과 상한이 시간이 지남에 따라 크게 변경되지 않습니다.
  • 특성에 이상점이 거의 없거나 전혀 없으며 이러한 이상점은 포함되지 않습니다. 극단적일 수 있습니다.
  • 지형지물은 범위 전체에 걸쳐 대략적으로 균일하게 분포되어 있습니다. 즉, 히스토그램은 대부분의 값에 대해 대략적으로 균일한 막대를 표시합니다.

인간의 age이 특성이라고 가정해 보겠습니다. 선형 조정은 모델 학습에 사용할 수 있는 age의 기법입니다. 그 이유는 다음과 같습니다.

  • 대략적인 하한 및 상한은 0에서 100 사이입니다.
  • age에는 상대적으로 적은 비율의 이상점이 포함됩니다. 전체 중 약 0.3% 에 불과하며 인구가 100명이 넘습니다.
  • 특정 연령대가 다른 연령대보다 다소 더 잘 반영되기는 하지만 대규모 데이터 세트에는 모든 연령대의 충분한 예시가 포함되어야 합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

연습문제: 이해도 확인

모델에 여러 사람의 순자산을 보유하는 net_worth라는 특성이 있다고 가정해 보겠습니다. 선형 확장이 좋은 정규화인가요? net_worth 기법 그 이유는 무엇인가요?

Z-점수 조정

Z-점수는 값이 평균에서 얼마나 차이가 나는지 나타내는 표준 편차의 수입니다. 예를 들어 평균보다 표준편차 2만큼 값의 Z 점수는 +2.0입니다. 다음보다 작은 1.5 표준 편차 값 평균의 Z-점수는 -1.5입니다.

Z-점수 크기 조정으로 특성을 나타내는 것은 특성 벡터에 특성의 Z-점수를 저장하는 것을 의미합니다. 예를 들어 다음 그림은 두 개의 히스토그램을 보여줍니다.

  • 왼쪽은 기존 정규 분포입니다.
  • 오른쪽은 Z-점수 조정으로 정규화된 동일한 분포입니다.
그림 4. 두 개의 히스토그램: 모두 동일한 분포를 갖는 정규 분포를 보여줍니다. 원시 데이터가 포함된 첫 번째 히스토그램의 평균은 200이고 표준 편차는 30입니다. 두 번째
           히스토그램에는 첫 번째 히스토그램의
           평균이 0이고 표준편차가 1인 경우를 나타냅니다.
그림 4. 정상 데이터 (왼쪽)와 Z-점수 (오른쪽) 비교 배포되었습니다.

Z-점수 크기 조정은 대략적으로 정규 분포만 있는 다음 그림과 같은 데이터에도 적합합니다.

그림 5. 모양이 동일한 두 개의 히스토그램으로, 각각은 고원에 이르는 가파른 상승과 그다음의 비교적 빠른 하강, 그리고 점진적인 감소를 보여줍니다. 한 히스토그램은 원시 데이터의 분포를 보여주고 다른 히스토그램은 Z-점수 크기 조정을 통해 정규화된 원시 데이터의 분포를 보여줍니다.
            두 히스토그램의 X축 값이 매우 다릅니다.
            원시 데이터 히스토그램은 도메인 0~29,000에 걸쳐 있지만,
            Z-점수 척도 히스토그램 범위는 -1에서 약 +4.8까지입니다.
그림 5. 원시 데이터 (왼쪽)와 Z-점수 조정 (오른쪽) 모델을 학습시켰습니다.

Z-점수는 데이터가 정규 분포를 따르거나 정규 분포와 다소 비슷하다고 볼 수 있습니다.

일부 분포는 대부분의 범위 내에서 정상이지만 극단적인 외부값을 포함할 수 있습니다. 예를 들어 net_worth 지형지물의 거의 모든 지점이 3개의 표준 편차에 정확하게 들어맞을 수 있지만, 이 지형지물의 몇 가지 예는 평균에서 수백 표준 편차 떨어져 있을 수 있습니다. 이러한 상황에서는 Z-점수 척도와 이 상황을 처리하기 위해 다른 형태의 정규화 (일반적으로 클리핑)를 사용합니다.

연습문제: 이해도 확인

모델이 1,000만 명의 성인 여성의 신장을 보유한 height라는 특성으로 학습한다고 가정해 보겠습니다. Z-점수 조정이 좋은 정규화일까요? height 기법 그 이유는 무엇인가요?

로그 조정

로그 배율은 원시 값의 로그를 계산합니다. 이론적으로는 대수는 임의의 밑이 될 수 있습니다. 실제로 로그 확장은 일반적으로 자연 로그 (ln)입니다.

로그 확장은 데이터가 멱의 법칙 분포를 준수할 때 유용합니다. 가볍게 말하면 멱의 법칙 분포는 다음과 같습니다.

  • X 값이 낮으면 Y 값이 매우 높습니다.
  • X 값이 증가하면 Y 값이 빠르게 감소합니다. 따라서 X 값이 클수록 Y 값이 매우 낮습니다.

영화 평점은 지수 분포의 좋은 예입니다. 다음에서 그림, 참고:

  • 일부 영화에는 사용자 평점이 많습니다. X 값이 낮으면 Y 값이 높습니다.
  • 대부분의 영화에는 사용자 평점이 거의 없습니다. (X 값이 클수록 Y 값은 작습니다.)

로그 확장은 분포를 변경하므로 더 정확한 예측을 할 수 있습니다.

그림 6. 원시 데이터와 원시 데이터의 로그를 비교하는 두 그래프
            원시 데이터 그래프에는 상단에 많은 사용자 평점이 표시되고 그 뒤에 롱테일이 이어집니다. 로그 그래프는 더 균등하게 분포되어 있습니다.
그림 6. 원시 분포를 로그와 비교합니다.

두 번째 예로, 도서 판매는 다음과 같은 이유로 멱법 분배를 준수합니다.

  • 출판된 대부분의 책은 1~200권 정도만 판매됩니다.
  • 일부 도서는 수천 부가 판매됩니다.
  • 극히 일부의 베스트셀러만이 백만 권 이상을 판매합니다.

선형 모델을 학습시켜 데이터 차원의 예를 들면 책 표지 판매로 이어집니다. 원시 값에 대해 학습하는 선형 모델은 백만 부를 판매하는 책의 표지에 관한 정보를 찾아야 함 이는 100권만 판매하는 책 표지보다 10,000권 더 강력한 제품입니다. 그러나 모든 판매 수치를 로그 스케일링하면 작업을 훨씬 더 쉽게 실행할 수 있습니다. 예를 들어 100의 로그는 다음과 같습니다.

  ~4.6 = ln(100)

1,000,000의 로그는 다음과 같습니다.

  ~13.8 = ln(1,000,000)

따라서 1,000,000의 로그는 100의 로그보다 약 3배 더 큽니다. 베스트셀러 도서 표지가 판매량이 적은 도서 표지보다 어떤 면에서든 약 3배 더 강력하다고 생각할 수 있습니다.

클립

클리핑은 극단적 이상점의 영향을 최소화합니다. 간단히 말해 클리핑은 일반적으로 특정 최대 값으로 특이값의 값을 제한(줄입니다). 클립은 매우 효과적일 수 있습니다.

예를 들어 roomsPerPerson라는 특성이 포함된 데이터 세트를 가정해 보겠습니다. 이는 방의 수 (총 회의실 수를 여러 주택에 대해)를 계산할 수 있습니다. 다음 그래프는 특성 값의 99% 이상이 정규 분포(대략 평균 1.8, 표준 편차 0.7)를 따르는 것을 보여줍니다. 하지만 이 기능에는 극단적인 몇 가지 이상점은 다음과 같습니다.

그림 7. roomsPerPerson 도표에서 거의 모든 값이 0~4 범위에 클러스터링되어 있지만 인당 방 17개까지 꼬리가 매우 길게 늘어져 있는 모습
그림 7. 대체로 정상이지만 완전히 정상은 아닙니다.

이러한 극단적인 이상치의 영향을 최소화하려면 어떻게 해야 하나요? 히스토그램은 균등 분포, 정규 분포 또는 지수 분포가 아닙니다. 단순히 입력 시퀀스의 최댓값을 제한하거나 클립하면 roomsPerPerson를 임의의 값으로 설정(예: 4.0?)

roomsPerPerson 도표에서 모든 값이 0~4.0 범위에 놓인 모습 도표가 종 모양이지만 4.0 지점에 비정상 언덕이 있음
그림 8. 4.0에서 특성 값을 클립합니다.

특성 값을 4.0으로 잘라낸다고 해서 모델이 모든 값이 4.0보다 큰지 확인하세요. 오히려 4.0보다 컸던 모든 값이 이제 4.0이 된다는 의미입니다. 이는 4.0 지점의 독특한 언덕을 설명해 줍니다. 그 언덕에도 불구하고 확장된 지형지물 세트는 이제 원본 데이터보다 더 유용합니다.

잠시만요! 모든 이상치 값을 임의의 상위 기준점으로 줄일 수 있나요? 모델을 학습할 때는 그렇습니다.

다른 형태의 정규화를 적용한 후에 값을 자를 수도 있습니다. 예를 들어 Z-점수 크기 조정을 사용하지만 일부 이상치의 절대 값이 3보다 훨씬 크다고 가정해 보겠습니다. 이 경우 다음을 수행할 수 있습니다.

  • 3보다 큰 Z-점수를 클립하여 정확히 3이 되도록 합니다.
  • Z 점수가 -3 미만이면 정확히 -3으로 자릅니다.

클리핑을 사용하면 모델이 중요하지 않은 데이터에 오버인덱싱하는 것을 방지할 수 있습니다. 하지만 일부 이상치는 실제로 중요하므로 값을 신중하게 클립하세요.

정규화 기법 요약

정규화 기법수식사용하기 적합한 경우
선형 조정 $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ 특성이 여러 영역에 균일하게 분포된 경우 고정 범위입니다.
Z-점수 조정 $$ x' = \frac{x - μ}{σ}$$ 특성 분포에 극단적인 이상점이 포함되지 않은 경우
로그 조정 $$ x' = log(x)$$ 지형지물이 지수 법칙을 따르는 경우
클립 $x > max$인 경우 $x' = max$로 설정합니다.
$x < min$인 경우 $x' = min$로 설정합니다.
특성에 극단적인 이상점이 포함된 경우

연습문제: 배운 내용 테스트하기

다음 중 특성을 정규화하는 데 가장 적합한 기법은 무엇인가요? 어떻게 해야 할까요?

0에서 0 사이의 값을 가진 데이터 클러스터를 보여주는 히스토그램
          200,000명입니다. 범위 내의 데이터 포인트 수가 점진적으로 증가합니다.
          0에서 100,000으로 감소했다가 점차 100,000에서 100,000으로 줄입니다.
          200,000명입니다.

Z-점수 크기 조정
데이터 포인트는 일반적으로 정규 분포를 따르므로 Z-점수 크기 조정은 데이터 포인트를 –3~+3 범위로 강제합니다.
선형 조정
이 페이지에서 정규화 기법에 관한 설명을 검토한 후 다시 시도하세요.
로그 조정
이 페이지에서 정규화 기법에 관한 설명을 검토한 후 다시 시도하세요.
클립
이 페이지에서 정규화 기법에 관한 설명을 검토한 후 다시 시도하세요.

데이터 센터의 데이터 세트를 예측하는 모델을 개발한다고 데이터 센터 내부에서 측정된 온도에 따라 생산성이 향상됩니다. 데이터 세트의 거의 모든 temperature 값은 15~30도(섭씨) 사이이지만 다음은 예외입니다.

  • 일 년에 한두 번, 매우 더운 날에는 31과 45는 temperature에 기록됩니다.
  • temperature의 1,000번째 포인트마다 1,000으로 설정됩니다. 실제 온도가 아닙니다.

temperature에 적절한 정규화 기법은 무엇인가요?

31과 45 사이의 이상점 값을 자르고 값 1,000

1,000은 실수이므로 있습니다.

31~45 사이의 값은 유효한 데이터 포인트입니다. 이 값에는 자르기를 사용하는 것이 좋습니다. 데이터 세트에 이 온도 범위에 있는 충분한 예시가 포함되어 있지 않아 좋은 예측을 하도록 모델을 학습시킬 수 있습니다. 그러나 추론하는 동안 따라서 잘린 모델은 예측의 45도, 35도 할 수도 있습니다.

모든 이상치를 클립합니다.
이 페이지에서 정규화 기법에 관한 설명을 검토한 후 다시 시도하세요.
모든 이상값 삭제
이 페이지에서 정규화 기법에 관한 설명을 검토한 후 다시 시도하세요.
31과 45 사이의 이상점 값을 삭제하되 이상점을 나타냅니다.
이 페이지에서 정규화 기법에 관한 설명을 검토한 후 다시 시도하세요.