Dropout Layer

Initialization, Normalization & Regularization DS practice problem on Onlearn.

Difficulty: medium.

Topics: Understanding Dropout Regularization in Neural Networks, Inverted Dropout, Bernoulli Masking, Training vs Inference Modes, Expected Value Preservation, Feature Co-adaptation Reduction, Deep Learning, Probabilistic Modeling, Statistical Learning, Optimization Theory, Neural Network Architecture, Regularization Techniques, Overfitting Prevention, Stochastic Processes, Weight Scaling, Model Generalization.

Implement a class 'DropoutLayer' with a 'forward' method that takes a 2D numpy array (input) and a boolean 'training' flag. During training, randomly zero out elements based on the dropout probability 'p' and scale the remaining values by 1/(1 p). During inference, return the input unchanged. Use a fixed random seed for reproducibility in your implementation.