Hyperparameters are configuration settings for machine learning systems such as the number and size of layers in a deep neural netwrok. These are differentiated from the parameters within the model, such as weights in a neural network that are trained by the machine learning algorithm. Often these hyperparameters are chosen by hand based on experience or rules of thumb; however they may also be derived by higher-level algorithms or meta-level machine learning. Care needs to be taken to ensure that one is not simply choosing hyperparameters that work for the training data, a form of overfitting.