-
Cost Function with Regularization (비용함수와 정규화) | Supervised Machine Learning: Regression and ClassificationMachine Learning/Stanford ML Specialization 2023. 11. 7. 00:02
가장 기본적으로 Regularization할 수 있는 방법은 높은 차항을 가진 변수의 parameter를 아주 작게 설정하는것이다. 예를 들어 4차항의 수식이라고 한다면, 1, 2차항은 기존과 같은 Cost Function을 이용하고, 3, 4차항은 아주 작은 숫자를 이용해서 아주 미세하게 input을 주지만 많은 영향을 주지는 않게 해서 overfitting을 피할 수 있다.
https://youtu.be/NIiZZY7nlfU 위에서 보여준대로, w3과 w4를 Regularization을 할 수 있다. 이런식으로 어떤 Parameter에 패널티를 줌으로써 Overfit 문제를 해결할 수 있다. 하지만 Feature가 많을때는 어떻게 할까?
https://youtu.be/NIiZZY7nlfU 여기서 바로 람다(λ)가 등장한다. Lambda(λ)는 Regularization Parameter로, 0보다 큰 어떤 값으로 곱해주는것인데, 어떤 Feature가 중요한지 모른다고 가정을 하면, 위 설명처럼 모든 Features들에 패널티를 부여할 수 있고, 그 패널티는 람다를 이용해서 원래보다 작은 Parameter를 줘서 모든 차항에 값들을 작게 만들 수 있다. 이렇게 정규화를 통해서 Overfitting을 방지할 수 있다.
https://youtu.be/NIiZZY7nlfU 정규화에 대해 정리해보자. Cost Function을 위와같이 다시 써볼 수 있다. 여기서 왼쪽 부분은 Mean Squared Error로, 우리가 그린 모델이(곡선/직선)이 얼마나 테스팅 데이터들에 잘 맞는지를 보여주는 지표이고, 오른쪽은 얼마나 w값들을 작게 책정했는지 이다. 우리의 목표는 이 두 파트의 적절한 Balance를 찾는것이다. 예를 들어, 만약 Lambda(λ)가 0이라면, 오른쪽 부분은 0이 되고, 모델은 데이터들에 정확하게 선들이 지나가는것에만 집중이 될 것이다. 그렇게 되면, 왼쪽의 하늘색 라인처럼, 모델이 Overfitting(과적합)된다. 또한, 만약 람다가 엄청 큰 숫자라면 (예시에서는 10의 10제곱을 보여주고 있다), 학습 알고리즘은 w값들을 모두 0에 가까운 숫자를 선택하게 되고, 그렇게 되면 결국 b만 남는다. 이렇게 되면 왼쪽 그래프에서 보이듯 거의 수평선의 직선이 그려지고, 이는 데이터들과 많이 떨어진 Underfitting(과소적합)이 된다. 그렇기 때문에 이 두가지를 적당히 만족시키는 선을 그리는 모델을 찾기 위해, 적당한 Lambda(λ)값을 찾는것이 중요하다.
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글