더북(TheBook)

드롭아웃 층으로 과대적합 줄이기

드롭아웃은 이 장에서 보는 또 다른 새로운 TensorFlow.js 층입니다. 심층 신경망에서 과대적합을 감소시키기 위한 방법으로 가장 효과적이고 널리 사용되는 방법 중 하나입니다. 드롭아웃 층의 기능을 간단히 설명하면 다음과 같습니다.

훈련 단계(Model.fit())에서 입력 텐서의 일부 원소를 랜덤하게 0으로 설정합니다(즉, 드롭아웃합니다). 이 결과가 드롭아웃 층의 출력 텐서입니다. 이를 위해 드롭아웃 층은 드롭아웃 비율 매개변수 하나를 가집니다(코드 4-5에 있는 rate 매개변수). 예를 들어 드롭아웃 층이 0.25 드롭아웃 비율로 설정되어 있고 입력 텐서가 [0.7, -0.3, 0.8, -0.4]인 1D 텐서라면, 출력 텐서는 [0.7, -0.3, 0.0, -0.4]가 될 수 있습니다. 즉, 입력 텐서의 원소를 랜덤하게 선택하여 0으로 설정합니다. 역전파하는 동안에는 드롭아웃 층의 그레이언트 텐서가 랜덤하게 드롭아웃된 유닛에 영향을 미치지 않습니다.24

추론 단계(Model.predict()Model.evaluate())에서는 드롭아웃이 입력 텐서의 원소를 랜덤하게 0으로 만들지 않습니다. 대신 입력을 바꾸지 않고 출력으로 내보냅니다(즉, 항등 함수(indentity mapping)처럼 동작합니다).25

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.