사실 정규화의 본질은 매우 간단합니다. 특정 목적을 달성하기 위해 특정 문제에 선험적으로 제한이나 제약을 가하는 수단이나 작업입니다. 알고리즘에서 정규화를 사용하는 목적은 모델이 과적합되는 것을 방지하는 것입니다. 정규화라고 하면 많은 학생들이 흔히 사용하는 L1 규범과 L2 규범을 떠올릴 수도 있습니다. 요약하기 전에 먼저 LP 규범이 무엇인지 살펴보겠습니다.
norm은 단순히 벡터 공간에서 거리를 표현하는 데 사용되는 것으로 이해될 수 있으며, 거리의 정의는 매우 추상적이며, 비음수, 반사적, 삼각형 부등식을 만족하는 한 거리라고 부를 수 있습니다.
LP 노름은 노름이 아니라 다음과 같이 정의되는 노름의 집합입니다.
p의 범위는 [1,무한대)입니다. p는 삼각형 부등식을 위반하므로 (0,1) 범위의 노름으로 정의되지 않습니다.
pp의 변화에 따라 노름도 다르게 변합니다. P 노름의 고전적인 변화 다이어그램을 빌려보면 다음과 같습니다.
위 그림은 p가 0에서 양의 무한대로 변할 때 단위 공(단위 공)이 변경됩니다. P 노름에 따라 정의된 단위 공은 볼록 집합이지만, 0
그럼 질문은 L0 표준이 무엇인지입니다. L0 노름은 벡터에서 0이 아닌 요소의 수를 나타내며 다음과 같은 수식으로 표현됩니다.
L0 노름을 최소화하여 최적의 희소 특성항을 찾을 수 있습니다. 그러나 불행하게도 L0 노름의 최적화 문제는 NP 하드 문제입니다(L0 노름도 비볼록형입니다). 따라서 실제 응용에서는 L0의 볼록 완화를 수행하는 경우가 많습니다. 이론적으로 L1 노름이 L0 노름의 최적 볼록 근사임이 입증되었으므로 L0 노름을 직접 최적화하는 대신 L1 노름을 사용하는 경우가 많습니다.
LP 노름의 정의에 따르면 L1 노름의 수학적 형태를 쉽게 얻을 수 있습니다.
위 공식에서 볼 수 있듯이 L1 노름은 절대값의 합입니다. "희소 정규화 연산자"(올가미 정규화)라고도 알려진 벡터의 각 요소에 대한 설명입니다. 그래서 질문은 왜 우리가 희소화를 원하는가 하는 것입니다. 희소화에는 많은 이점이 있으며 가장 직접적인 두 가지 이점은 다음과 같습니다.
L2 Norm이 가장 친숙하며 유클리드 거리이며 공식은 다음과 같습니다.
L2 표준에는 많은 이름이 있습니다. 어떤 사람들은 회귀를 "능선 회귀"라고 부르고 다른 사람들은 "Weight Decay"라고 부릅니다. 정규화 항으로 L2 규범을 사용하면 조밀한 솔루션을 얻을 수 있습니다. 즉, 각 기능에 해당하는 매개변수 ww는 매우 작아서 0에 가깝지만 0은 아닙니다. 또한 정규화 항으로 L2 규범을 사용하면 모델이 훈련 세트에 맞춰 너무 복잡하면 과적합이 발생하여 모델의 일반화 능력이 향상됩니다.
아래 그림과 같이 L1과 L2 규범의 차이를 설명하기 위해 PRML의 고전적인 다이어그램을 소개합니다.
위 그림에 표시된 것처럼 파란색 원은 문제의 풀이 가능 범위를 나타내며, 주황색은 정규항의 풀이 가능 범위를 나타냅니다. 전체 목적 함수(원래 문제 + 정규 항)는 두 해 범위가 접하는 경우에만 해를 갖습니다. 위 그림을 보면 L2 노름의 해 범위가 원이므로 접선점이 좌표축 상에 없을 가능성이 높으며, L1 노름은 마름모(꼭지점이 볼록함)이므로 접선점이 접선점은 좌표축에 있을 가능성이 높으며, 좌표축 상의 점은 하나의 좌표성분만 0이 아니고 나머지 좌표성분은 0인, 즉 희소(sparse)되는 특성을 갖는다. 따라서 다음과 같은 결론을 내릴 수 있습니다. L1 규범은 희소 솔루션으로 이어질 수 있고 L2 규범은 조밀한 솔루션으로 이어질 수 있습니다.
베이지안 사전 관점에서 볼 때 모델을 훈련할 때 현재 훈련 데이터 세트에만 의존하는 것만으로는 충분하지 않습니다. 더 나은 일반화 기능을 달성하려면 사전 항을 추가해야 하는 경우가 많으며 일반 항을 추가하는 것은 다음과 같습니다. 선험적으로 추가되었습니다.
아래 그림과 같이:
Dropout은 딥러닝에서 자주 사용되는 정규화 방법입니다. 그 접근 방식은 단순히 DNN의 훈련 과정에서 확률 p로 일부 뉴런을 버리는 것으로 이해될 수 있습니다. 즉, 버려진 뉴런의 출력은 0입니다. Dropout은 아래 그림과 같이 인스턴스화할 수 있습니다.
Dropout의 정규화 효과를 두 가지 측면에서 직관적으로 이해할 수 있습니다.
Batch Normalization은 엄밀히 말하면 정규화 방법으로 주로 네트워크 수렴을 가속화하는 데 사용되지만 어느 정도 정규화 효과도 있습니다.
다음은 Wei Xiushen 박사의 Zhihu 답변에서 공변량 이동에 대한 설명을 참조한 것입니다.
참고: 다음 내용은 Wei Xiushen 박사의 Zhihu 답변에서 인용되었습니다. 통계 기계 학습의 고전적인 가정은 "소스 공간(소스 도메인)과 대상 공간(대상 도메인)의 데이터 분포(분포))"라는 것입니다. 일관성이 있다”. 일관성이 없으면 전이 학습/도메인 적응 등과 같은 새로운 기계 학습 문제가 발생합니다. 공변량 이동은 불일치 분포를 가정하는 분기 문제입니다. 이는 소스 공간과 대상 공간의 조건부 확률이 일치하지만 한계 확률이 다르다는 것을 의미합니다. 잘 생각해 보면, 실제로 신경망의 각 레이어의 출력은 레이어 내 연산을 거쳤기 때문에 그 분포가 각 레이어에 해당하는 입력 신호의 분포와 명백히 다르다는 것을 알 수 있습니다. 네트워크의 깊이가 커질수록 차이는 커지지만, "표시"할 수 있는 샘플 레이블은 변경되지 않고 유지되며 이는 공변량 이동의 정의를 충족합니다.
BN의 기본 아이디어는 실제로 매우 직관적입니다. 비선형 변환 전 신경망의 활성화 입력 값(X=WU+B, U가 입력)이 네트워크의 깊이가 깊어짐에 따라 분포가 점차 이동하기 때문입니다. 또는 변경(즉, 위에서 언급한 공변량 이동). 훈련이 느리게 수렴되는 이유는 일반적으로 전체 분포가 비선형 함수의 값 범위의 상한과 하한에 점차 접근하기 때문입니다(시그모이드 함수의 경우 활성화 입력 값 X=WU+B가 큰 음수 또는 양수 값), 이는 역전파 중에 하위 신경망의 기울기가 사라지게 하며, 이것이 심층 신경망의 훈련이 점점 더 느리게 수렴되는 근본적인 이유입니다. BN은 특정 표준화 방법을 사용하여 신경망의 각 계층에 있는 모든 뉴런의 입력 값 분포를 평균이 0이고 분산이 1인 표준 정규 분포로 다시 강제로 분포시킵니다. 활성화 기능. 따라서 BN의 역할이 공변량 이동을 완화하는 것이라고 말하는 것보다 BN이 기울기 분산 문제를 완화할 수 있다고 말하는 것이 더 좋습니다.
이전에 정규화에 대해 언급했지만 여기서는 정규화와 표준화에 대해 간략하게 언급합니다. 정규화: 정규화의 목표는 원본 데이터를 [a, b] 구간에 매핑하기 위한 특정 매핑 관계를 찾는 것입니다. 일반적으로 a와 b는 [-1,1], [0,1]의 조합을 사용합니다. 일반적으로 두 가지 적용 시나리오가 있습니다.
일반적으로 사용되는 최소-최대 정규화:
표준화: 사용 데이터를 표준 정규 분포로 변환하는 큰 숫자의 정리 표준화 공식은 다음과 같습니다.
간단히 다음과 같이 설명할 수 있습니다. 정규화 스케일링은 간격(극단값에 의해서만 결정됨)으로 "평탄화"되는 반면, 정규화 스케일링은 더 "탄력적"이며 "동적"은 전체 표본의 분포와 큰 관계가 있습니다. 참고:
위 내용은 기계 학습 필수 사항: 과적합을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!