L1 와 L2 loss & regularization

머신러닝, 딥러닝을 할 때 누구나 들어본 내용이고 유명한 내용이지만 헷갈릴 수도 있는 개념이다.

참고자료는 다음을 보면 잘 정리되어 있다.

두 번째 링크의 마지막을 보면 다음과 같이 정리되어 있다.

간략히 설명해보자면

■ L1은 두 벡터의 차이의 절댓값이다. L2는 차이의 제곱의 loss식을 가진다.
- 그렇다면 L1은 미분이 안되는 것 때문에 gradient-based 학습할 때는 일반적으로 L2을 사용하는 것 같다.
■ Unstable solution
- 또한 outlier가 있으면 loss는 L2에서 더 크게 작용이 되기 때문에 이상치가 빠르게 적용된다.
- 반면 L1은 outlier을 어느 정도만(L2보다 적게) 반영하기 때문에 모델이 일관적인 예측 능력이 떨어진다고하여 불안정하다고 한다.
■ solution
- L1은 벡터 구성이 달라도 같은 norm을 가질 수 있다.
- L2도 물론 그럴 수는 있지만 제곱이기 때문에 그럴 가능성은 낮다는 것 같다. (실제로 학습하는 과정에서는 only one에 가깝다는 듯)
- 따라서 L1은 norm이 같아도 vector가 다를 수 있고 L2는 only one solution이다.
■ Sparse solution & feature selection
- 이 부분이 중요할 수 있는데 loss식을 미분을 해보면 L1은 parameter에 계속해서 상수값을 뺴주게 된다.
- L2는 parameter을 일정 비율로 줄이게 된다. 즉 L1은 중요하지않은 parameter은 0으로 가고 L2는 작아지는 결과를 낸다.
- L1은 즉 파라미터의 일부분이 0으로 가기 때문에 feature selection 하는 효과가 있다. (남은 feature만 사용하는 것이기 때문)


댓글