ganjiron / ganpython

0 stars 0 forks source link

L1,L2 Norm #24

Open ganjiron opened 8 months ago

ganjiron commented 8 months ago

정규화(Regularization)에서 사용되는 L1 norm과 L2 norm은 모델의 과적합을 방지하는 데 도움을 주는 기술입니다. 이들은 모델의 복잡성을 제한하고, 더 일반화된 모델을 생성하기 위해 손실 함수(loss function)에 추가되는 항목입니다. 다양한 norm들은 모델 파라미터의 크기를 제한하는 방식이 다릅니다.

L1 Norm (Lasso Regularization)

•   정의: L1 norm은 파라미터의 절대값의 합으로 정의됩니다.
•   수학적 표현: , 여기서 는 정규화 파라미터, 는 모델 파라미터입니다.
•   특징:
•   파라미터의 일부를 정확히 0으로 만들어, 특성 선택(feature selection) 효과를 낼 수 있습니다.
•   결과적으로 모델이 더 간단해지고 해석하기 쉬워집니다.

L2 Norm (Ridge Regularization)

•   정의: L2 norm은 파라미터의 제곱의 합으로 정의됩니다.
•   수학적 표현: 
•   특징:
•   파라미터를 완전히 0으로 만들지는 않지만, 가중치를 줄여 과적합을 방지합니다.
•   모델이 데이터의 노이즈에 덜 민감하게 만듭니다.

기타 Norms

•   Elastic Net: L1과 L2 정규화를 결합한 형태입니다. L1은 특성 선택을, L2는 파라미터 값의 축소를 도와줍니다.
•   Max Norm: 파라미터의 최대값을 제한합니다.

정규화의 적용

정규화는 머신러닝과 딥러닝 모델에서 과적합을 방지하고, 모델의 일반화 능력을 향상시키기 위해 사용됩니다. 예를 들어, 딥러닝에서는 Keras 라이브러리를 사용하여 각 층의 가중치에 정규화를 적용할 수 있습니다:

from keras.layers import Dense from keras.regularizers import l1, l2

L1 Regularization

model.add(Dense(64, activation='relu', kernel_regularizer=l1(0.01)))

L2 Regularization

model.add(Dense(64, activation='relu', kernel_regularizer=l2(0.01)))

이러한 정규화 기법들은 모델이 훈련 데이터에 지나치게 최적화되는 것을 방지하고, 새로운 데이터에 대한 모델의 성능을 향상시키는 데 도움을 줍니다.

Lasso (Least Absolute Shrinkage and Selection Operator)와 Ridge는 선형 회귀 모델의 과적합을 방지하고 일반화 성능을 향상시키기 위해 사용되는 정규화(regularization) 기법입니다. 이들은 선형 회귀 모델의 손실 함수에 추가적인 제약 조건을 부과하여, 모델의 복잡도를 줄이는 데 목적이 있습니다.

Lasso (L1 Regularization)

•   수학적 정의: Lasso는 손실 함수에 파라미터의 절대값의 합(L1 norm)을 추가합니다. 수학적으로 Lasso의 손실 함수는 다음과 같이 표현됩니다:

여기서 ( \beta )는 모델 파라미터, ( x_{ij} )는 특성, ( y_i )는 목표 변수, ( n )은 데이터 포인트의 수, 는 특성의 수, 는 정규화 강도를 조절하는 매개변수입니다. • 특징: • Lasso는 일부 파라미터를 정확히 0으로 만들 수 있어 특성 선택의 효과가 있습니다. • 이로 인해 결과 모델이 더욱 해석하기 쉬워지며, 불필요한 특성이 제거됩니다.

Ridge (L2 Regularization)

•   수학적 정의: Ridge는 손실 함수에 파라미터의 제곱의 합(L2 norm)을 추가합니다. 수학적으로 Ridge의 손실 함수는 다음과 같이 표현됩니다:

여기서 각 기호의 의미는 Lasso와 동일합니다. • 특징: • Ridge는 모든 파라미터 값을 작게 유지하도록 합니다. 이는 과적합을 방지하고, 모델이 노이즈에 덜 민감하게 만듭니다. • 파라미터 값이 0이 되지는 않아 모델이 여전히 모든 특성을 사용합니다.

Lasso와 Ridge의 선택

•   Lasso: 변수 선택이 중요하거나 몇몇 중요한 변수만이 출력 변수에 영향을 미칠 것으로 예상될 때 유용합니다.
•   Ridge: 대부분의 변수가 출력 변수에 영향을 미칠 것으로 예상되거나, 다중 공선성(multicollinearity) 문제를 해결할 필요가 있을 때 유용합니다.

정규화 강도 조절

•    값은 모델의 정규화 강도를 조절합니다. 가 크면 정규화가 강해지고, 가 작으면 정규화 효과가 줄어듭니다.
•   의 최적값은 교차 검증(cross-validation)과 같은 방법으로 결정될 수 있습니다.
ganjiron commented 8 months ago

IMG_0947 ![Uploading IMG_0947.jpeg…]()