Machine Learning Techniques For Data Storage Systems: Modeling, Coding, And Detection