我见过许多网站和博客解释人工神经网络(ANN),但没有一个考虑到为那些对人工神经网络知之甚少的人逐步建立基础,相反,他们投入了大量的数学知识,不幸的是,对我来说,这些数学知识看起来很深奥。有没有一些网站/博客,比如说,教授一个简单的人工神经网络程序,它可以识别计算机生成的数字,或者比数字更简单的东西?
回答:
这是我整理的最佳入门级(但完整)的关于 ANN(又名 MLP)的资源列表。
威拉米特大学课程笔记 这个资源总共约25-30页(使用此页面右上角的侧边栏或单击给定页面底部的下一个或上一个在各个部分之间导航)。我非常推崇这个资源,原因有两个:(i)它包含大量的图表,并将它们与文字很好地结合在一起;以及(ii)它是全面的——网络的架构、反向传播的基础微积分、选择/迭代训练参数(动量、学习率)等等。关于反向传播的部分(人工神经网络/MLP的计算和程序关键)特别好——它结合了散文、网络图和实际方程,详细地解释了构成训练阶段的单个epoch中的每个步骤。
IBM developer works 神经网络课程 这篇由David Mertz撰写的文章包含可运行的代码(Python)和一个非平凡的数据集。除了前几段之外,整个文档都紧密地遵循代码和数据。对我来说,这至关重要,因为除非我能编写它,否则我不认为我已经学会了它(这是一个个人的门槛,可能不适用于其他人)。除此之外,关注代码以及该代码与提供的数据集的交互,使讨论保持实际的基础。最后,作者David Mertz和Andrew Blais显然对该主题有很强的掌控力。
Generation5 这是三个中最基本的,所以也许是从它开始的一个不错的选择。作者显然对多层感知器的细节非常了解,但并不要求读者具备这种知识——也就是说,他将反向传播解释为解决问题的常识性方法,而没有诉诸数值解法(这在许多关于MLP的参考文献中很常见——“反向传播是通过梯度下降解决的”)。就像我提到的第一个资源一样,这个资源也大量依赖图表。作者没有使用数据(0和1),而是讨论了MLP的结构和功能,用散文而不是将问题简化为数值数据,将其置于一个简单的预测分析场景中。