So, maybe the docstring of `costs` should specify that there can be at most 2 elements in that list, and that the first is an unsupervised cost, and the second (if present) is a supervised one, so the index of the second cost will be considered the "label" layer? Is that correct?