On the Design and Performance of Machine Learning Based Error Correcting Decoders