A Guide to Failure in Machine Learning: Reliability and Robustness from Foundations to Practice