BEP: A Binary Error Propagation Algorithm for Binary Neural Networks Training