설명: L1 정규화는 어떻게 자동으로 기능을 선택합니까?

L1(LASSO) 정규화가 수행하는 자동 기능 선택 프로세스를 이해합니다.

특징 선택은 주어진 특징 집합에서 최적의 특징 부분 집합을 선택하는 과정입니다. 최적의 부분 집합이란 주어진 작업에서 모델의 성능을 극대화하는 부분 집합입니다.

특징 선택은 수동 프로세스일 수도 있고, 필터링이나 래핑 방법을 사용하는 명시적 프로세스일 수도 있습니다 . 이러한 방법에서는 예측에 있어 특징의 중요도를 나타내는 고정된 지표 값을 기준으로 특징을 반복적으로 추가하거나 제거합니다. 이러한 지표에는 정보 이득, 분산 또는 카이제곱 통계량이 포함될 수 있으며, 알고리즘은 해당 지표의 고정된 임계값을 기준으로 특징을 수용할지 거부할지 결정합니다. 이러한 방법은 모델 학습 단계의 일부가 아니며 사전에 수행된다는 점에 유의해야 합니다.

L1 정규화는 어떻게 자동으로 기능을 선택합니까?

내장형 기법은 사전 정의된 선택 기준을 사용하지 않고 암묵적으로 특징을 식별 하고 훈련 데이터 자체에서 추출합니다. 이러한 내재적 특징 식별 과정은 모델 훈련 단계의 일부입니다. 모델은 특징을 식별하고 관련 예측을 동시에 수행하는 방법을 학습합니다. 다음 섹션에서는 내재적 특징 식별 과정에서 정규화의 역할, 특히 L1 정규화와 머신러닝 모델 성능 향상에서의 역할에 대해 자세히 설명합니다.

정규화 및 모델 복잡도: 성능 향상을 위한 고급 전략

정규화는 과도한 적합을 피하고 작업에 대한 일반화를 달성하기 위해 모델 복잡도에 페널티를 주는 과정입니다.

여기서 모델의 복잡성은 훈련 데이터의 패턴에 적응하는 능력과 유사합니다. ' x '에 대한 차수 ' d '의 단순 다항식 모델을 가정할 때, 다항식의 차수 ' d ' 가 높을수록 모델은 관측 데이터의 패턴을 포착하는 데 더 유연해집니다. 이러한 유연성 증가는 모델이 실제 패턴을 학습하기보다는 훈련 데이터를 암기하게 만들 수 있으며, 결과적으로 새로운 데이터에 대한 일반화 능력을 저하시킬 수 있습니다.

과적합과 과소적합

잡음이 섞인 3차 다항식에서 파생된 훈련 샘플 집합에 2 차 다항식 모델을 적용하려고 하면 , 모델은 샘플 분포를 제대로 포착하지 못합니다. 이 모델은 3차(또는 그 이상) 다항식으로 생성된 데이터를 모델링하는 데 필요한 유연성 이나 복잡성이 부족하기 때문입니다. 이러한 모델을 훈련 데이터에 과소적합되었다고 합니다 . 과소적합은 모델이 너무 단순하여 데이터에 내재된 패턴을 제대로 포착하지 못한다는 것을 의미합니다.

같은 예시를 다시 사용하여 차수가 d=6 인 모델이 있다고 가정해 보겠습니다. 복잡성이 증가함에 따라 모델은 데이터를 생성하는 데 사용된 원래 3차 다항식을 쉽게 추정할 수 있어야 합니다(예: 지수가 3보다 큰 모든 항의 계수를 0으로 설정). 학습 과정이 제때 종료되지 않으면 모델은 추가적인 유연성을 활용하여 오류를 더욱 줄이고 노이즈 샘플까지 학습하기 시작합니다. 이렇게 하면 학습 오류는 크게 줄어들지만, 모델은 학습 데이터 과부하 문제를 겪게 됩니다 . 노이즈는 실제 환경(또는 테스트 중)에서 변하기 때문에 예측에 기반한 모든 지식이 왜곡되어 테스트 오류가 높아집니다. 과부하란 모델이 너무 복잡해져서 실제 신호 대신 노이즈를 학습하고 있음을 의미합니다.

 

모델의 최적 복잡도를 어떻게 결정하나요?

실제 환경에서는 데이터 생성 과정이나 실제 데이터 분포에 대한 이해가 부족하거나 아예 없는 경우가 많습니다. 과적합이나 과소적합이 발생하지 않는 적절한 복잡도를 가진 최적의 모델을 찾는 것은 매우 어려운 과제입니다. 이를 위해서는 모델 성능을 평가하고 정확도와 일반성 간의 최적의 균형을 이루는 적절한 복잡도를 결정하는 효과적인 방법을 사용해야 합니다. 교차 검증과 같은 적절한 평가 지표와 기법을 사용함으로써, 실무자는 보이지 않는 데이터에서 가장 우수한 성능을 보이는 모델을 찾아 과적합이나 과소적합 문제를 방지할 수 있습니다.

 

한 가지 가능한 방법은 충분히 견고한 모델로 시작한 다음, 특징을 선택하여 복잡성을 줄이는 것입니다. 특징이 적을수록 모델의 복잡성은 줄어듭니다.

이전 섹션에서 논의했듯이, 특성 선택은 명시적(필터링 방법, 합성곱 방법)이거나 암묵적일 수 있습니다. 대상 변수의 값을 결정하는 데 중요하지 않은 중복 특성은 모델이 관련 없는 패턴을 학습하지 않도록 제거해야 합니다. 정규화 또한 유사한 작업을 수행합니다. 그렇다면 정규화와 특성 선택은 최적의 모델 복잡도라는 공통 목표를 달성하는 데 어떤 관련이 있을까요? 머신러닝 모델의 복잡도를 줄이는 것은 성능을 향상시키고 과적합을 방지하는 데 필수적이며, 이는 정규화와 특성 선택 모두에 중점을 두는 부분입니다.

 

특징 결정 요인으로서의 L1 정규화

다항식 모델을 계속해서 살펴보면, 이를 입력값 x , 계수 θ , 차수 d 를 갖는 함수 f로 나타낼 수 있습니다.

다항식 모델의 경우, 입력값 x_i 의 각 거듭제곱은 하나의 특징으로 간주될 수 있으며, 다음과 같은 벡터를 형성합니다.

또한, 우리는 목적 함수를 정의하는데, 이 함수의 축소를 통해 이상적인 매개변수 θ* 를 얻을 수 있으며 , 여기에는 모델의 복잡성에 대한 페널티를 부여하는 정규화 항이 포함됩니다.

이 함수의 최소값을 찾으려면 미분이 0이거나 정의되지 않은 지점, 즉 모든 임계점을 분석해야 합니다.

매개변수 θj 에 대한 편미분은 다음과 같이 나타낼 수 있습니다.

sgn 함수는 다음과 같이 정의됩니다.

참고 : 절댓값 함수의 도함수는 위에서 정의한 부호 함수(sgn)의 도함수와 다릅니다. 원래 도함수는 x=0에서 정의되지 않습니다. 본 논문에서는 x=0에서의 변곡점을 없애고 함수가 전체 정의역에서 미분 가능하도록 정의를 확장합니다. 또한, 머신러닝(ML) 프레임워크는 기본 산술 연산에 절댓값 함수를 사용할 때 이러한 확장된 함수를 활용합니다. 자세한 내용은 PyTorch 포럼의 해당 링크를 참조하십시오.

목적 함수의 단일 계수 θj 에 대한 편미분을 계산하고 이를 0으로 설정함으로써 , θj 의 최적값 과 예측값, 목표값, 특징을 연결하는 방정식을 구성할 수 있습니다.

위 방정식을 살펴보겠습니다. 입력값과 목표값이 평균값을 중심으로 분포되어 있다고 가정하면(즉, 전처리 단계에서 데이터가 표준화되었다고 가정하면), 좌변 항(LHS)은 특징 j번째 요소와 예상값과 목표값의 차이 사이의 분산을 나타냅니다.

 

두 변수 간의 통계적 공분산은 한 변수가 두 번째 변수의 값에 미치는 영향의 정도를 결정합니다(그 반대의 경우도 마찬가지).

우변의 부호 함수는 좌변의 분산이 -1, 0, 1 세 가지 값만 갖도록 합니다. 만약 특징 j 가 불필요하고 예측에 영향을 미치지 않는다면, 분산은 0에 가까워지고, 이에 해당하는 계수 θj*는 0이 됩니다. 결과적으로 해당 특징은 모델에서 제거됩니다. 이 과정을 통해 모델의 복잡성을 줄이고 성능을 향상시킬 수 있습니다.

 

신호 함수를 물에 의해 깎인 협곡이라고 생각해 보세요. 협곡(즉, 강바닥)을 따라 걸을 수는 있지만, 협곡에서 빠져나오려면 거대한 장벽이나 가파른 경사면을 만나게 됩니다. L1 정규화는 손실 함수의 그래디언트와 유사한 "임계값" 효과를 생성합니다. 그래디언트는 장벽을 돌파하거나 1이 될 만큼 충분히 강해야 하며, 결국 매개변수 값은 XNUMX이 됩니다.

좀 더 현실적인 예를 들어, 직선에서 추출된 샘플(2-모수 모델)에 약간의 노이즈가 추가된 데이터 세트를 생각해 보겠습니다. 최적의 모델은 두 개 이하의 매개변수를 가져야 하며, 그렇지 않으면 다항식의 자유도/강도에 따라 데이터의 노이즈에 적응하게 됩니다. 다항식 모델에서 더 높은 강도의 매개변수를 변경해도 목표값과 모델 예측값의 차이에는 영향을 미치지 않으므로, 특성값과의 분산이 줄어듭니다.

학습 과정에서 손실 함수의 기울기에 고정된 스텝을 더하거나 뺍니다. 손실 함수의 기울기(MSE - 평균 제곱 오차)가 고정된 스텝보다 작으면 계수는 결국 0에 도달합니다. 아래 방정식은 경사 하강법을 사용하여 계수가 업데이트되는 방식을 보여줍니다.


위의 파란색 부분이 λα 보다 작으면 (λα 자체는 매우 작은 값임), Δθj 는 대략 λα의 상수 단계가 됩니다 . 이 단계의 부호(빨간색 부분)는 sgn(θj) 에 따라 달라지며, sgn(θj)의 출력은 θj 에 따라 달라집니다 . θj 값이 양수, 즉 ε 보다 크면 sgn(θj)는 1이 되므로 Δθj는 대략 -λα 가 되어 0에 가까워집니다.

매개변수를 0으로 만드는 상수 단계(빨간색 부분)를 억제하려면 손실 함수의 기울기(파란색 부분)가 단계 크기보다 커야 합니다. 손실 함수의 기울기를 더 크게 하려면 특성 값이 모델의 출력에 상당한 영향을 미쳐야 합니다.

이는 모델 출력과 관련이 없는 특성, 또는 더 정확히 말하면 해당 매개변수가 학습 중에 L1 정규화에 의해 1으로 설정되는 방식입니다.

 

추가 자료 및 결론

  • 이 주제에 대한 더 많은 통찰력을 얻기 위해 Reddit r/MachineLearning에 질문을 게시했습니다.후속 조치 여러분이 읽어보고 싶어할 만한 다양한 해석이 담겨 있습니다.
  • 마디야르 아이트바예프도 흥미로운 블로그 동일한 질문을 다루지만 공학적인 설명이 포함되어 있습니다.
  • 블로그 브라이언 킹은 확률적 관점에서 조직을 설명합니다.
  • النقاش 그는 CrossValidated 웹사이트에서 L1 기준이 왜 희소 모델을 장려하는지 설명하고 있습니다. 블로그 Mukul Ranjan이 쓴 자세한 기사에서는 L1 규범이 거래량을 2으로 만드는 반면 LXNUMX 규범은 그렇지 않은 이유를 설명합니다.

"L1 정규화는 특징을 선택한다"는 간단한 설명은 대부분의 머신러닝 학습자들이 동의하는 내용이지만, 그 내부 작동 원리에 대해서는 깊이 파고들지 않는 경우가 많습니다. 이 블로그는 제가 이해하고 있는 개념과 모델을 공유하여 독자들이 이 질문에 직관적으로 답할 수 있도록 돕고자 합니다. 의견이나 질문이 있으시면 제 웹사이트 에서 이메일 주소를 확인하실 수 있습니다 . 계속 배우시고 좋은 하루 보내세요!

 

댓글이 닫혔습니다.