Một vấn để thường gặp trong xử lí network là Overfitting:
Trong neural network, việc cuối cùng là tối ưu các tham số để làm cho giảm loss function, nhưng đôi khi có unit thay đổi theo cách sửa lại lỗi của các unit khác dẫn đến việc hòa trộn làm giảm tính dự đoán của model, hay còn gọi là overfitting.
Dropout là cách thức mà chúng ta giả định một phần các unit bị ẩn đi trong quá trình training, qua đó làm giảm tích hòa trộn (hay nói cách khác là 1 hidden unit không thể dựa vào 1 unit khác để sửa lỗi lầm của nó, dễ cho chúng ta thấy các hidden unit không đáng tin cậy).
Tại mỗi step trong quá trình training, khi thực hiện Forward Propagation (Lan truyền xuôi) đến layer sử dụng Drop-Out, thay vì tính toán tất cả unit có trên layer, tại mỗi unit ta gieo xúc xắc xem unit đó có được tính hay không dựa trên xác suất p
Cách thức hoạt động của dropout là để đạt được kết qủa trung bình của việc train nhiều mạng con trong network (bằng việc giả định ẩn đi % unit) thay vì chỉ lấy kết quả dựa trên việc train 1 mạng mẹ.
Ví dụ này cũng tương tự như trên, ở đây mình có tỉ lệ disable node là: dropout_percent, 2 input hidden là synapse_0, synapse_1, số lần lặp là 60000 lần. Sau khi có được layer_1 ta tiến hành xử lí dropout và tạo ra các giá trị delta để cập nhập các nút mạng.