  Label smoothing is a regularization technique for neural networks. Normally
neural models are trained to an output distribution that is a vector with a
single 1 for the correct prediction, and 0 for all other elements. Label
smoothing converts the correct prediction location to something slightly less
than 1, then distributes the remainder to the other elements such that they are
slightly greater than 0. A conceptual explanation behind label smoothing is
that it helps prevent a neural model from becoming "overconfident" by forcing
it to consider alternatives, even if only slightly. Label smoothing has been
shown to help several areas of language generation, yet typically requires
considerable tuning and testing to achieve the optimal results. This tuning and
testing has not been reported for neural source code summarization - a growing
research area in software engineering that seeks to generate natural language
descriptions of source code behavior. In this paper, we demonstrate the effect
of label smoothing on several baselines in neural code summarization, and
conduct an experiment to find good parameters for label smoothing and make
recommendations for its use.
