규제 적용 로지스틱 회귀에 규제를 적용해보자. 앞에서 만들어 놓은 SingleLayer 클래스에 L1 규제와 L2 규제를 적용하자. def __init__(self): self.w = None self.b = None self.losses = [] self.val_losses = [] self.w_history =[] self.lr = learning_rate self.l1 = l1 self.l2 = l2 l1, l2 변수를 만들었다. def fit(self, x, y, epochs=100, x_val=None, y_val=None): self.w = np.ones(x.shape[1])#가중치 초기화 self.b = 0#절편 초기화 self.w_history.append(self.w.copy())#가중치..
L2
규제 과대 적합을 해결하는 대표적인 방법 중 하나가 가중치 규제(regularization)이다. 가중치 규제란 말 그대로 가중치의 값이 커지지 않도록 제한하는 기법이다. 가중치를 규제하면 모델의 일반화 성능이 올라간다. 두 그래프 모두 점들을 잘 표현하고 있다. 그러면 둘 중 어떤 그래프의 성능이 더 좋을까?? 이 경우에서는 기울기가 완만한 그래프가 성능이 좋다. 박스 표시된 점까지 잘 표현하였기 때문이다. 몇 개의 데이터에 집착하면 새로운 데이터에 적응하지 못하므로 성능이 좋지 않다. 이럴 때 규제를 사용한다. 대표적인 규제 L1 규제와 L2 규제를 알아보자. L1 규제 손실 함수에 가중치의 절댓값인 L1 노름(norm)을 추가한다. w는 벡터를 의미한다. 로지스틱 손실 함수에 L1 규제를 적용해보자..