머신러닝 & 텐서플로 & 파이썬
머신러닝 : Overfitting (오버피팅)
하늘을 나는 미카
2018. 1. 25. 10:58
반응형
오버피팅이란 것은 무엇인가?
머신러닝은 학습에 의핸 판단을 하는것입니다. 그래서 학습을 위한 데이타들이 필요하고 이 데이타를 기반으로 판단하게 되는데,
이 학습데이타에 너무 딱 맞게 모델을 설계하게 되면, 학습 데이타 이외의 실제 데이타에서 나쁜 결과가 나오게 됩니다.
오버피팅을 줄이는 방법~
1. 트레이닝 데이타를 많이 가지는것.
2. feature의 개수를 줄이는 방법
3. Regularization
Regularization 은 일반화 시키자는 것.
데이타들을 트레이닝 할때 모델을 결정하는 선들이 구불어지게 되는데,
이 구부러지는 것들을 좀 펼쳐서 처리하는 방법입니다.
L = loss
i = training set
\lambda = regularization strength
0 이면 일반화 하지 않겠다.
1 이면 매우 강하게 하겠다.
0.001 크게 중요하진 않아..
l2reg = 0.001 * tf.reduce_sum(tf.square(W))
layer가 깊을 수록 overfitting 가능성이 커집니다.
이유는 layer 가 깊을수로 변수들이 추가되고 해당 변수들에 가중치가 커지게 되면서 유연성이 떨어지게 됩니다.