Lecture 7-1 Application & Tips: Learning rate, data preprocessing, overfitting

  • 저번 시간에 Cost 함수에 대해 배우고 Gradient descent은 못하고 지나쳤는데 이번 강의는 이에 대해 배운다. 우리는 Gradient descent 함수를 Cost 함수를 정의하고 값을 최소화하기 위해 사용한다. 이때 알파값은 임의로 정한다.

  • 우리는 learning rate를 임의로 정의해서 사용하는데, 이때 learning rate가 너무 크면 overshooting이 일어난다. overshooting은 learning rate를 정해서 학습할때 값이 Gradient descent 함수 밖으로 나가는 것이다. 반대로 learning rate를 작게 설정해서 사용하면 시간이 너무 오래걸리고 local minimum에서 멈출 수 있다. 그래서 우리는 learning rate를 여러개를 사용해보고 cost function을 관찰하면서 그 값을 조정해야 한다. 보통 0.01로 많이 시작한다.

  • 만약 weight가 두개인 경우에는 그래프가 어떻게 그려지고 global minimum 값을 어떻게 정해야 할까?

  • 그림과 같이 그래프는 동심원 형태로 나타나고, 원의 중심으로 갈때 우리는 global minimum을 구할 수 있다. 주어진 그림을 우리는 표준화 시킬수 있다. 표준화 공식은 아래쪽의 오른쪽에 나와있다.

  • 이제 overfitting에 대해 알아보자. 우리가 자료를 분석할때 선을 하나 그어서 분석이 깔끔하게 되면 좋겠지만 그렇지 못하는 경우가 있다. 그럴때는 대략적인 분류기준을 마련해서 분류해야한다. 그런데 주어진 자료를 완벽하게 분류하고 싶어서 선을 이상하게 그어서 분류한다면 그 자료에 있는 값들은 제대로 분류될 수도 있지만 다른 자료를 가져오면 이상하게 분류가 된다. 그렇게 안맞게 분류하는것을 overfitting이라고 한다.

  • 이런 overfitting을 해결하기 위해서는 1. data training을 늘리거나, 2. features의 수를 줄이거나, 3. regularization해준다. Regularization은 overfitting 되어있어서 구부러진 부분들을 좀 피게한다. 공식은 다음과 같다.


Lecture 7-2 Application & Tips: Learning and test data sets

  • 우리는 지금까지 실제값들을 가지고 나중의 값을 예측하기 위해 필요한 함수들을 계속 배웠다. 그런데 우리가 만든 이 함수들이 제대로 작동하는지 알기 위해서는 어떻게 해야할까? 우리는 지금까지 주어진 자료들을 전부 분석해서 함수를 만들었지만 실제로는 그렇지 않고 어떤 자료들은 testing set으로 남겨둔다.

  • 이렇게 training, validation, testing set으로 분류해서 정확도를 측정하면 함수가 얼마나 잘 만들어졌는지를 평가할 수 있다.
profile
Master Student in KU👩🏻‍🎓

0개의 댓글