ML lab 07 DeepLearning

lec 07-1: Learning rate, Overfitting, Regularization


우선 Learning Rate에 대해 간단히 알아보면, gradient descent에서 한번씩 움직일 때, 한번 움직이는 정도를 learning rate라고한다.


움직이는 정도가 너무 커버리면 최소화를 넘어버리는 경우가 발생한다.
그러나 너무 작으면 시간이 오래 걸린다. 그러므로 적당한 learning rate를 찾아 실행시켜야한다. 



이번에는 learning rate도 적당한 크기로 했는데도 cost함수가 발산한다면,
데이터의 크기 차이를 봐야한다.
위 그림처럼 데이터의 차이가 크다면 수렴이 안될수도 있다.
그러므로 전처리를 해주어야한다.


위 그림처럼 어느 범위에 데이터가 모이도록하는 normalize시켜야한다.
기본적으로 standardization이 있다.

이번에는 overfitting을 해결하는 방법에 대해 알아보자.


위 3가지가 있다. 3번째인 일반화시키는 것을 자세히 알아보자면
regularization의 기본 원리는 weight를 줄이는 것이다.

overfitting은 그래프가 많이 구부려진것이므로 weight를 줄여 그래프를 구부리지 말고 피자는 것이다. 식으로 나타내보면 아래와 같다.


위처럼 식의 마지막 부분에 weight를 처리하면서 람다를 이용해 regularization의 중요도를 조절할 수 있다.


lec 07-2: Training/Testing data set


우리가 만든 모델을 어떻게 평가할까.
기본적으로 training set 으로 공부하고 test set 으로 시험을 보는 것이다.



데이터의 양이 많으면 validation set을 가지고 알파나 람다를 튜닝하는 과정도 필요하다.
그리고 test set을 이용해 시험을 보는 것이다.
validation set은 모의 고사 후 오답 공부하는 느낌이다.

또 다른 방법으로 online learning 이라는 방법이 있다.

데이터의 양이 streaming으로 계속 들어오는 유형이라면, 하루에 100만개의 데이터가 들어올 때 10만개씩 데이터를 추가하면서 weight를 튜닝한다는 느낌으로 학습한다. 즉, 10만개가 들어올 때마다 모델링을 새로하는 것이 아니라 weights를 고치는 것이다.

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리