在机器学习的许多应用中,神经网络是最先进的模型之一,它的主要优点之一是能够获取大量数据中包含的信息,并构建无比复杂的模型。给定足够的计算时间和数据,并且仔细调节参数,神经网络通常可以打败其他机器学习算法。
神经网络的缺点:神经网络(特别是功能强大的大型神经网络)通常需要很长的训练时间。它还需要仔细预处理数据。与SVM类似,神经网络在“均匀”数据上的性能最好,其中“均匀”是指所有特征都具有相似的含义。如果数据包含不同的特征,那么基于树的模型可能表现的更好。
神经网络最重要的参数是层数和每层的隐单元个数,实际操作中应该首先设置1个或2个隐层,然后逐步增加。每个隐层的结点个数通常与输入特征个数相近、
神经网络调参的常用方法是:首先创建一个达到足以过拟合的网络,确保这个网络可以对任务进行学习。知道训练数据可以被学习之后,要么缩小网络,要么增大alpha来增强正则化,这样可以提高泛化性能。
模型的定义:层数、每层结点个数、正则化、非线性。
如何学习模型或学习参数的算法,这一点有solver参数设定,默认选项是‘adam’,但它对数据的缩放相当敏感;另一个选项是‘lbfgs’,它的鲁棒性很好,但是在大型数据集上的学习时间会很长。当然还有其他选项。使用MLP时,建议使用‘adam’或‘lbfgs’。