Machine learning as a tool for automation has grown exponentially in the past two decades. Growth has come from innovations in hardware, such as powerful graphics processing units (GPUs) and cloud computing. Along with hardware advances, there has been an explosion in software packages, algorithms, and tools for performing machine learning. This innovation has resulted in a landscape full of vendor offerings with bold claims about accuracy and precision while not offering much subject matter expertise. The corrosion industry is no exception and faces unique risks in evaluating machine learning tools. Unlike many consumer-grade tools, the cost of corrosion detection and estimation errors are unbalanced; the cost of a false negative (the algorithm reports no corrosion; however, corrosion is present) is higher than in consumer applications. In addition, corrosion has a number of mechanisms and morphologies, so operators must be cautious and understand the limitations of using any one-size-fits-all machine learning tool. For any algorithm, the output is only as good as the data used to train it, so operators must be aware of possible sources of error and bias in training datasets. This work considers the above constraints and offers a checklist for algorithm developers to consider when assessing corrosion with machine learning.
The intention of this work is to pose epistemic questions about corrosion measurement, statistical inference, and the role of machine learning in predicting corrosion growth. The audience of this work is practitioners implementing inferential algorithms or tools for corrosion prediction. In this work, an algorithm consists of a process for estimating the presence and severity of corrosion. This algorithm may take various forms, from computer vision algorithms using color matching to neural networks to complex Poisson-distribution growth estimations. These algorithms are usually (but not always) trained using historical data. This training process requires data cleaning and annotation; observations must be labeled and properly formatted for the algorithm. After or during this whole process, the algorithm (sometimes called a model) is validated. Validation usually consists of another algorithm to compare estimated versus actual data and estimate accuracy or failure rates. This process tends to be more of an "art" than a science; engineers tend to go back and forth between the different phases.