Building reliable, robust software is hard. It is even harder when we move from deterministic domains (such as balancing a checkbook) to uncertain domains (such as recognizing speech or objects in an image). The field of machine learning allows us to use data to build systems in these uncertain domains, but the field mostly concentrates on accuracy of results. Peter Norvig looks at techniques for achieving reliability (and some of the other -ilities). Follow @OReillyAI on Twitter for news and updates about artificial intelligence.