Biologically-Plausible Learning Algorithms For Artificial Neural Networks