Question 1
Your company built a TensorFlow neutral-network model with a large number of neurons and layers. The model fits well for the training data. However, when tested against new data, it performs poorly. What method can you employ to address this?
The recommended answer is C. Dropout Methods. The problem describes a classic case of overfitting: the model performs well on the training data but poorly on new, unseen data. Dropout is a regularization technique specifically designed to combat overfitting in neural networks. During training, dropout randomly deactivates a fraction of neurons, forcing the network to learn more robust and generalizable features, thereby improving performance on unseen data. This helps the model avoid memorizing the training data and generalize better to new data.
Here's why the other options are not suitable:
- A. Threading: Threading is a technique used to improve the performance of a program by executing multiple parts of the program concurrently. It does not address the issue of overfitting.
- B. Serialization: Serialization is the process of converting an object into a stream of bytes to store the object or transmit it to memory, a database, or a file. It has no bearing on model generalization or overfitting.
- D. Dimensionality Reduction: While dimensionality reduction techniques can sometimes help with overfitting by reducing the complexity of the model, they are not the primary or most direct solution for the scenario described. Techniques like PCA aim to reduce the number of input features, which is different from the neuron-level regularization provided by dropout.
Therefore, dropout methods directly address the overfitting problem by improving the model's generalization ability.
- Dropout: A Simple Way to Prevent Neural Networks from Overfitting, https://jmlr.org/papers/v15/srivastava14a.html
- Understanding Dropout, https://machinelearningmastery.com/dropout-for-regularizing-deep-neural-networks/
