본문 바로가기
  • 콩's 코딩노트
TensorFlow

TensorFlow - 텐서플로우 / 케라스의 Dropout

by Cong_S 2022. 6. 14.

ANN (인공신경망) 을 구성할 때 발생하는 여러가지 문제점 중 하나가 바로 overfitting(과대적합)이다.

이는 학습된 데이터는 잘 맞추지만 새로운 데이터에 대해서는 잘 맞추지 못하는 것을 말한다.

 

​위 그림이 epoch를 아무리 돌려도 새로운 데이터에 대한 오차를(validation_loss) 줄이지 못하는

overfitting(과대적합) 을 잘 보여준다.

 

model.add(tf.keras.layers.Dropout(0.2))

이때 overfitting(과대적합)을 줄이기 위해 Dropout을 사용한다.

모델의 과적합 문제는 정규화(regularization) 방법을 주로 사용해 해결하는데,

​​모델에 Dropout 함수를 적용할 경우, 과적합을 방지하기 위해 무작위로 특정 노드(입력값)를 0으로 만들어준다.

 

학습할때만 임시적으로 파라미터의 입력한 값(0.2 = 20%) 만큼 가중치를 통해 계산하는 값을 무작위로 드랍시켜 학습한다는 것이다.

중요한 점은 Dropout 함수는 학습시에만 적용되어 모델 정규화를 위해 사용되어야 하며 테스트시에는 적용되지 않는다는 점이다.

 

댓글