드롭아웃 층으로 과대적합 줄이기
드롭아웃은 이 장에서 보는 또 다른 새로운 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