如何编写神经网络
编写神经网络
一步一步实现神经网络的指南

在本文中,我们将从头开始构建一个神经网络,并使用它来对手写数字进行分类。
为什么要重新发明轮子/神经网络呢?我听到你这样说。我不能只使用我最喜欢的机器学习框架完成吗?是的,有许多现成的框架可以用来构建神经网络(如Keras、PyTorch和TensorFlow等)。使用其中之一的好处是它们使我们能够将神经网络当作黑盒子来使用。
这并不总是一件坏事。通常我们需要这种抽象级别,这样我们才能着手解决问题,但如果我们要在工作中使用神经网络,我们仍然应该努力至少对底层发生的事情有基本的理解。
从零开始构建一个神经网络,在我看来,是培养对其工作原理深入理解的最佳方法。
通过本文的学习,您将了解到前馈和反向传播算法,激活函数是什么,一个epoch和一个batch之间的区别,以及如何训练神经网络。最后,我们将通过训练一个神经网络来识别手写数字的示例来结束。
本文中使用的所有代码可在GitHub上[1]找到。
什么是神经网络?
神经网络,或者说人工神经网络,是一种机器学习算法。它们是许多深度学习和人工智能系统的核心,如计算机视觉、预测和语音识别。
人工神经网络的结构有时被比作大脑中生物神经网络的结构。我总是建议小心,不要从这种比较中得出太多结论。确实,人工神经网络看起来有点像生物神经网络,但将它们与复杂到像人脑这样的事物进行比较,是一个相当大的飞跃。
神经网络由几层神经元组成。每一层神经元的激活基于前一层中的激活,一组连接前一层的权重…




