모두의 딥러닝-lab7 _여러가지 팁들

2020. 8. 11. 17:41카테고리 없음

최솟값의 코스트를 찾기위해서 경사하강법을 사용하였다. 

하지만 여기서 러닝레이트를 설정하는데,.....러닝레이트를 잘 정의하는 것이 중요하다.

러닝 레이트를 굉장히 크게 하다면

왔따갔따 하게 되서 문제가 발생한다. (스텝이 굉장히 크게 되면 밥그릇을 나가게 될수도 있다.)

이것을 오버슈팅(overshooting)이라고 한다.  코스트가 줄어들지 않으면 오버슈팅을 예싱하고 러닝레이트를

줄이는 것이 효과적이다.

 

 

반면에 러닝 레이트가 작을경우

스텝이 너무 작으면(러닝레이트)가 너무 작으면 최솟점에 도달하기점에 학습이 끝나서 문제가 발생한다.

코스트의 변화가 너무 작으면 러닝레이트를 좀더 늘리는것이 해결책이다.

 

러닝레이트의 적당한 값은 정해져 있지 않다. (각자의 환경에 따라 다르다.)


<경사하강법을 위해 데이터를 전처리 해야하는 경우>

데이터중에서 큰 차이가 있는경우 표준 정규화를 해서 값들을 수정해줘야 한다. 


<오버피팅(Overfitting)은 무엇일까????>

학습을 통해서 모델을 만들었을때  학습데이터에만(집중적으로) 효율적인 모델을 만들어서 실제로 우리가 테스트를 해야할 문제에서는 정확도가  떨어지는 경우를 말한다. 

모델2는 주어진 학습데이터에만 맞춰서 학습을 하여서 이상적인 모델과 뒤떨어진 것을 말한다. 

모델1이 이상적이고 일반적인 모델의 모습을 보여주고 있다.

그렇다면 해결책은 무엇일까????

 

Solution of Overfitting

1. 훈련 데이터를 많이 수집하는 것이다. 

2. 피처의 갯수를 줄인는 것이다. 

3. Regularizatinon

 

Regularization

너무 큰 웨이트를 가지지 말자.