L1 Norm : 미분시 기울기가 0이 되므로

정의

  • L1 Norm은 벡터의 각 원소들의 절댓값 합으로 계산됩니다.

특징

  1. 희소성(Sparsity):
    • 벡터에서 많은 원소가 0인 경우를 선호합니다.
    • 값이 작은 원소를 완전히 0으로 만드는 경향이 있어, 특성 선택(feature selection)에 유리합니다.
    • 머신러닝에서 Lasso Regression(L1 규제)에서 사용됩니다.
  2. 기하학적 의미:
    • L1 Norm은 직선 공간(맨해튼 거리, Manhattan Distance)에서의 거리로 해석됩니다.
  3. 사용 사례:
    • 데이터가 희소하거나, 희소성을 유지하고 싶을 때 사용됩니다.
    • 예: 텍스트 분석, 이미지 처리 등.

import numpy as np

# 데이터 정의
x1 = np.array([1, 2, 3])  # 단일 특성 값
y = np.array([3, 5, 7])   # 목표값
w1 = 1.0  # 초기 가중치
lmbda = 0.5  # 정규화 강도

# 손실 함수 계산
def loss(w1, x1, y, lmbda):
    residuals = y - w1 * x1
    return np.sum(residuals**2) + lmbda * abs(w1)

# 손실 함수 미분
def loss_gradient(w1, x1, y, lmbda):
    residuals = y - w1 * x1
    grad = -2 * np.sum(residuals * x1)
    if w1 > 0:
        grad += lmbda
    elif w1 < 0:
        grad -= lmbda
    return grad

# 초기 손실과 미분 계산
initial_loss = loss(w1, x1, y, lmbda)
gradient = loss_gradient(w1, x1, y, lmbda)

initial_loss, gradient
# 학습률 정의
learning_rate = 0.01

# 업데이트 과정
num_iterations = 10  # 예제 시뮬레이션 반복 횟수
w1_values = [w1]  # 가중치 추적
loss_values = [initial_loss]  # 손실 값 추적

for _ in range(num_iterations):
    # 기울기 계산
    grad = loss_gradient(w1, x1, y, lmbda)
    
    # 가중치 업데이트
    w1 -= learning_rate * grad
    
    # 손실 계산
    current_loss = loss(w1, x1, y, lmbda)
    
    # 값 저장
    w1_values.append(w1)
    loss_values.append(current_loss)

w1_values, loss_values

L2 Norm

정의

  • L2 Norm은 벡터의 각 원소들의 제곱 합의 제곱근으로 계산됩니다.

특징

  1. 부드러운 변화(Smoothness):
    • 벡터의 원소들을 0에 가깝게 줄이지만, 완전히 0으로 만들지는 않습니다.
    • 값이 큰 원소를 더 강하게 억제하는 경향이 있습니다.
    • 머신러닝에서 Ridge Regression(L2 규제)에서 사용됩니다.
  2. 기하학적 의미:
    • L2 Norm은 유클리드 거리(Euclidean Distance)로 해석됩니다.
    • 점과 점 사이의 직선 거리를 측정합니다.
  3. 사용 사례:
    • 데이터가 희소하지 않고, 모든 피처가 모델에 기여할 가능성이 있을 때 사용됩니다.
    • 예: 회귀 분석, 신경망 가중치 정규화 등.

비교

특징 L1 Norm L2 Norm
계산 방식 각 원소의 절댓값 합 각 원소의 제곱 합의 제곱근
기하학적 의미 맨해튼 거리 (Manhattan Distance) 유클리드 거리 (Euclidean Distance)
희소성 유지 희소성을 더 잘 유지 희소성 유지가 덜함
규제의 효과 일부 특성을 완전히 0으로 만듦 특성을 0에 가깝게 줄임
머신러닝 응용 Lasso Regression, 희소 모델 Ridge Regression, 신경망 정규화
선호 상황 희소 데이터나 특성 선택이 필요한 경우 모든 특성을 고려해야 할 경우

결론

  • L1 Norm은 특성을 줄이거나 희소성을 강조하고 싶을 때 유용하며,
    L2 Norm은 모든 특성을 부드럽게 규제하며 안정적인 모델링에 적합합니다.
  • 목적에 따라 적합한 Norm을 선택하여 데이터 전처리나 정규화에 활용하면 됩니다.

Lasso Regression과 Ridge Regression은 모두 선형 회귀 모델을 기반으로 한 정규화(regularization) 기법으로, 모델이 과적합(overfitting) 되는 것을 방지하고 더 일반화된 성능을 제공하는 방법입니다. 이 두 기법은 회귀 분석에서 중요한 역할을 하며, 각각 L1 정규화L2 정규화를 사용합니다.


1. Lasso Regression (Least Absolute Shrinkage and Selection Operator)

  • LassoL1 정규화를 사용한 회귀 기법입니다. L1 정규화는 모델의 회귀 계수 중 일부를 0으로 만들 수 있게 해줍니다.
  • Lasso는 변수 선택(variable selection)을 도와주는 특징이 있습니다. 즉, 불필요한 변수의 회귀 계수를 0으로 만들어서 해당 변수를 제외하는 효과가 있습니다.
  • 수학적으로 Lasso의 비용 함수는 다음과 같습니다.

  • 장점: Lasso는 변수 선택을 통해 모델의 단순화가 가능하고, 중요한 변수만 남기게 됩니다.
  • 단점: λ값이 너무 크면 과소적합(underfitting)이 발생할 수 있습니다.

2. Ridge Regression

  • RidgeL2 정규화를 사용한 회귀 기법입니다. L2 정규화는 회귀 계수들이 커지는 것을 방지하지만, 계수를 0으로 만드는 대신 계수들의 크기를 줄이는 방식입니다.
  • Ridge 회귀는 모든 변수를 포함시켜서, 각 변수의 영향력을 균형 있게 반영합니다.
  • 수학적으로 Ridge의 비용 함수는 다음과 같습니다. 

  • 장점: Ridge는 모든 변수에 대해 회귀 계수를 조금씩 축소시켜서 모델의 복잡도를 줄이고, 과적합을 방지합니다.
  • 단점: Lasso와 달리 불필요한 변수의 계수를 0으로 만들지 않기 때문에, 모델이 좀 더 복잡해질 수 있습니다.

차이점

  • Lasso는 불필요한 변수의 계수를 0으로 만들어서 변수 선택을 수행하는 반면, Ridge는 모든 변수에 대해 계수를 축소하지만 0으로 만들지 않습니다.
  • Lasso는 변수 선택에 유리하고, Ridge는 모든 변수의 영향을 균형 있게 반영하는 데 유리합니다.

사용 예

  • Lasso는 변수 선택이 중요한 경우, 즉 변수의 개수가 많고 중요한 변수만 선택하려는 경우에 유용합니다.
  • Ridge는 변수 간의 상관관계가 높거나 모든 변수를 고려하고 싶을 때 유리합니다.

 

+ Recent posts