lenrning rate은 경사하강법에서 각각의 step을 얼마의 크기로 주고 할지를 정하는
수치라고 표현했었다. 만약, lenrning rate가 너무 클 시 제대로 측정이 되지 않을수 있다.
그럼 만약 너무 작은 값을 주게 될 시에는?
최적의 값을 찾지도 못하고 종료해버릴 수도 있다.
즉, 여러 개의 값을 주어지고 테스트를 해보는 것이 가장 좋은 방법이다.
데이터의 값(X)에 차이가 엄청 클 경우 normalization을 통해서 데이터의 중심을 0으로 옮겨주는 작업을 수행한다.
그리고 이것을 표현해주는 파이썬 식은 다음과 같다.
x_std[:,0]=(x[:,0]-x[:,0].mean())/x[:,0].std()
overfitting은 학습데이터에만 너무 잘맞는 모델을 바탕으로 학습된 결과를 도출하는 것을 방지한다.
즉, 학습데이터는 온전히 학습된 결과이고 이것을 테스트해볼 테스트 데이터에 대해선 학습한 내용을 토대로
확실한 결과를 추출해내어야한다. 이러한 overfitting을 줄이는 방법은 아래와 같다.
1. 학습데이터를 많이 갖는것
2. 중복된 요소들은 제거
3. 각각의 엘리먼트를 제곱하여 weight를 flat하게 해주는 정규화(일반화)
아래는 정규화 파이썬 식에 대한 예제이다.
12reg=0.001*tf.reduce_sum(tf.square(W))
마찬가지로 입력값 X에 대해서 Normalized inputs를 하는 방법은 다음과 같다.
xy=MinMaxScaler(xy)
위 파이썬 코드를 사용하게 될 시 X의 값은 0~1사이의 값으로 재표현된다.
'[프로그래밍] > 모두를 위한 딥러닝' 카테고리의 다른 글
[모두를위한딥러닝] 텐서보드(TensorBoard)로 딥러닝 해보기 (0) | 2019.08.21 |
---|---|
[모두를위한딥러닝] XOR 문제를 딥러닝으로 풀기 (0) | 2019.08.21 |
[모두를위한딥러닝] 텐서(Tensor) 연산 기본 사용 명령어 (0) | 2019.08.20 |
[모두를 위한 딥러닝] 로지스틱 cost 선형회귀 cost? (0) | 2019.08.20 |
[모두를위한딥러닝] 소프트맥스 회귀 (0) | 2019.08.19 |