我们没有使用开源的Python机器学习库来实现识别手写数字的功能,而是在学习所有相关理论后通过实现一个简单的多层人工神经网络来完成此任务,读者对此可能会感到困惑。其中一个原因是:在撰写本书内容时,scikit-learn还没有加入多层感知器相关的功能。更重要的是,作为机器学习从业者,我们至少应当对自己正在使用的算法有个最基本的了解,为以后更好地运用机器学习算法打好基础。
至此,我们已经了解了前馈神经网络的工作原理,可以进一步去尝试一些更加复杂的基于NumPy的Python库,如Theano(http://deeplearning.net/software/theano/),它可以帮助我们更加高效地构建神经网络。我们将在第13章中对其进行介绍。在过去的几年里,Theano得到了许多机器学习研究者的青睐,由于它能够使用图形处理器(Graphical Processing Unit,GPU)为多维数组的计算进行数学表达式的优化,因此广泛应用于构建深度神经网络。
读者可通过链接http://deeplearning.net/software/theano/tutorial/index.html#tutorial获取大量关于Theano的入门教程。
此外,还有几个与使用Theano训练神经网络相关的库,目前这些库都处于积极开发的状态,读者应多多关注:
·Pylearn2(http://deeplearning.net/software/pylearn2/)
·Lasagne(https://lasagne.readthedocs.org/en/latest/)
·Keras(http://keras.io)