티스토리 뷰

Early Stopping


 - 위의 모델들의 epoch에 따른 training set과 testing set의 모델변화 추이를 봐보자.

 - 우측으로 갈 수록 training set에 대해 정확하다 못해 너무 지엽적이게 된다.

 - 우리는 적절한 일반화가 잘 된 모델을 찾는것이 목표이기 때문에

 - 맨 우측 모델은 너무 세부적이라 일반화에 실패한 모델이 되어버린다.

 - 이는 testing set을 적용시켜봤을때 하나도 들어맞는것이 없게 되며

 - 마치 training set을 단순 암기 한 모델정도 뿐이다.

 - 따라서 우리의 목표는 Training Error도 적고, Testing Error도 적은 지점을 찾는것이다.



 - 모델 복잡도 그래프를 봐보면 특징이 있다. 

 - Testing error의 경우 기울기가 급변하며 하향하다 상향하는 곡선을 그린다.

 - 따라서 우리는

 - Testing error가 감소를 멈추고 증가할 때 까지 점점 epoch를 늘려나가며 (degrade in descent)

 - goldilocks point라 불리는 저 지점에 도달하면 학습을 멈출것이다.

 - 이를 Early stopping 이라 부르고 머신러닝에서 neural networks를 학습하는데 널리 쓰이는 알고리즘 중 하나이다.






Regularization


 - 위의 두 solution중 어떤것이 더 나은 모델일까?



 - 둘 다 같은 그래프를 그린다. 즉 그래프의 모양이 동일하다.

 - 하지만 계수(weights)가 다르므로 sigmoid연산시 리턴하는 값이 달라진다.

 - sigmoid 연산을 수행해보면 확실히 아래 모델이 0 과 1에 더 근접하므로

 - 더 나은 모델이라 판단할 수 있다.

 - 하지만, 바로 직전에 우리는 overfitting의 개념에 대해 다뤘었고 이를 바탕으로 다시 생각해보자.



 - prediction의 값을 고려하더라도 첫번째 모델이 왜 우리가 추구해야하는 방향인지를 설명해보면,

 - 우리는 여지껏 네트워크를 설계할 때 항상 사용하였던 방법이 gradient descent이다.

 - 왼쪽 모델은 적절한 기울기의 변화로 gradient descent를 통한 방향설정이 수월하다.

 - 그러나 오른쪽 모델은 기울기의 변화가 급격한 나머지 

 - gradient descent를 이용하여 error를 최소화 해 나가는데에 제약이 따른다.

 - 또한 앞선 예제에서 봤듯, 일반화(generalization)가 어려워지게 된다.



- 따라서 계수가 커짐에 따라 overfitting model이 될 여지가 더 많다는것을 바탕으로

 - 우리는 weights에 패널티를 주는 방식으로 최적의 모델을 찾아 나갈것임

 - L1 Error Function 에서는 마지막에 전체 weights의 절대값의 합에 람다를 곱해줘서 패널티를 주고

 - L2 Error Function 에서는 제곱값의 합에 람다를 곱해줘 패널티를 준다.

 - 두 모델 모두 매우 유명하기 때문에 우리가 구현하려는 모델의 특징에 맞게 적절하게 선택하여야 한다.




 - L1을 적용 할 때 우리는 0과 1로 구성된 벡터로 끝나는 경향이 있다.

 - 즉, 작은 가중치는 0이되는 경향이 있기 때문에, 

 - 가중치 weights의 수를 줄이고 작은 set으로 만들려면 L1을 사용하는 편이 적절하다. 

 - 이는 feature selections의 상황에도 유용하고 

 - 때로는 features가 매우 많은 상황에서 문제가 발생한 경우 

 - L1 정규화(L1 regularization)는 중요한 것을 선택하는 데 도움이되며 덜 중요한 나머지는 0으로 바뀐다.


 - 반면 L2 정규화(L2 regularization)는 모든 weights를 일률적으로 작게 만든다.

 - 따라서 이 방법이 최적의 모델을 찾아가는데에 있어 더 적합하므로, 주로 이 방법을 사용하여 정규화한다.

 - 왜 L2 정규화는 모든 weights를 일률적으로 작게 만드는지에 대해 생각해보면

 - (1, 0)이라는 벡터의 경우 L1 정규화의 방법인 절대값을 취해 합을 구해보면 1이 된다.

 - 마찬가지로 L2 정규화 또한 제곱의 합이 1이 된다.

 - 하지만 (0.5, 0.5) 벡터의 경우 L1 정규화를 거치면 1이 되지만

 - L2 정규화를 거치면 동일하게 0.5가 된다.

 - 따라서 L2 정규화를 거친 모델은 더 작은 제곱의 합을 리턴하고

 - 같은 논리로 더 작은 함수를 리턴하기 때문에  (0.5, 0.5) 벡터를 더 선호하게 된다.

 - 따라서 모든 weights가 일률적으로 작아지는 것임.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함