통계 및 시각화 기법을 통해 데이터를 검사한 후에는 모델을 더 효과적으로 학습하는 데 도움이 되는 방식으로 데이터를 변환해야 합니다. 정규화의 목표는 유사한 크기로 변환하는 것입니다. 예를 들어 기능:
- 지형지물
X
은 154~24,917,482 범위에 걸쳐 있습니다. - 지형지물
Y
은 5~22 범위에 걸쳐 있습니다.
이 두 가지 기능은 매우 다른 범위에 걸쳐 있습니다. 정규화는 X
및 Y
가 유사한 범위(예: 0~1)를 차지하도록 조작할 수 있습니다.
정규화에는 다음과 같은 이점이 있습니다.
- 학습 중에 모델이 더 빠르게 수렴하는 데 도움이 됩니다. 서로 다른 특성의 범위가 다르면 경사 하강이 '튀어오르고' 수렴 속도가 느려질 수 있습니다. 하지만 Adagrad 및 Adam과 같은 고급 최적화 도구는 시간이 지남에 따라 효과적인 학습률을 변경하여 이 문제를 방지합니다.
- 모델이 더 나은 예측을 추론하는 데 도움이 됩니다. 서로 다른 지형지물의 범위가 다르면 결과 모델의 예측이 다소 덜 유용할 수 있습니다.
- 특성 값이 매우 높을 때 '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-점수 조정으로 정규화된 동일한 분포입니다.
Z-점수 크기 조정은 대략적으로 정규 분포만 있는 다음 그림과 같은 데이터에도 적합합니다.
Z-점수는 데이터가 정규 분포를 따르거나 정규 분포와 다소 비슷하다고 볼 수 있습니다.
일부 분포는 대부분의 범위 내에서 정상이지만 극단적인 외부값을 포함할 수 있습니다. 예를 들어 net_worth
지형지물의 거의 모든 지점이 3개의 표준 편차에 정확하게 들어맞을 수 있지만, 이 지형지물의 몇 가지 예는 평균에서 수백 표준 편차 떨어져 있을 수 있습니다. 이러한 상황에서는 Z-점수 척도와
이 상황을 처리하기 위해 다른 형태의 정규화 (일반적으로 클리핑)를 사용합니다.
연습문제: 이해도 확인
모델이 1,000만 명의 성인 여성의 신장을 보유한height
라는 특성으로 학습한다고 가정해 보겠습니다. Z-점수 조정이 좋은 정규화일까요?
height
기법 그 이유는 무엇인가요?
로그 조정
로그 배율은 원시 값의 로그를 계산합니다. 이론적으로는 대수는 임의의 밑이 될 수 있습니다. 실제로 로그 확장은 일반적으로 자연 로그 (ln)입니다.
로그 확장은 데이터가 멱의 법칙 분포를 준수할 때 유용합니다. 가볍게 말하면 멱의 법칙 분포는 다음과 같습니다.
X
값이 낮으면Y
값이 매우 높습니다.X
값이 증가하면Y
값이 빠르게 감소합니다. 따라서X
값이 클수록Y
값이 매우 낮습니다.
영화 평점은 지수 분포의 좋은 예입니다. 다음에서 그림, 참고:
- 일부 영화에는 사용자 평점이 많습니다.
X
값이 낮으면Y
값이 높습니다. - 대부분의 영화에는 사용자 평점이 거의 없습니다. (
X
값이 클수록Y
값은 작습니다.)
로그 확장은 분포를 변경하므로 더 정확한 예측을 할 수 있습니다.
두 번째 예로, 도서 판매는 다음과 같은 이유로 멱법 분배를 준수합니다.
- 출판된 대부분의 책은 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)를 따르는 것을 보여줍니다. 하지만 이 기능에는
극단적인 몇 가지 이상점은 다음과 같습니다.
이러한 극단적인 이상치의 영향을 최소화하려면 어떻게 해야 하나요? 히스토그램은 균등 분포, 정규 분포 또는 지수 분포가 아닙니다. 단순히 입력 시퀀스의 최댓값을 제한하거나 클립하면
roomsPerPerson
를 임의의 값으로 설정(예: 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$로 설정합니다. |
특성에 극단적인 이상점이 포함된 경우 |
연습문제: 배운 내용 테스트하기
데이터 센터의 데이터 세트를 예측하는 모델을 개발한다고
데이터 센터 내부에서 측정된 온도에 따라 생산성이 향상됩니다.
데이터 세트의 거의 모든 temperature
값은 15~30도(섭씨) 사이이지만 다음은 예외입니다.
- 일 년에 한두 번, 매우 더운 날에는
31과 45는
temperature
에 기록됩니다. temperature
의 1,000번째 포인트마다 1,000으로 설정됩니다. 실제 온도가 아닙니다.
temperature
에 적절한 정규화 기법은 무엇인가요?
1,000은 실수이므로 있습니다.
31~45 사이의 값은 유효한 데이터 포인트입니다. 이 값에는 자르기를 사용하는 것이 좋습니다. 데이터 세트에 이 온도 범위에 있는 충분한 예시가 포함되어 있지 않아 좋은 예측을 하도록 모델을 학습시킬 수 있습니다. 그러나 추론하는 동안 따라서 잘린 모델은 예측의 45도, 35도 할 수도 있습니다.