将模型训练过程中的损失下降图使用matplotlib实时显示出来_scikitlearn — 神经网络模型...

本文介绍了如何在训练神经网络模型过程中,利用matplotlib实时展示损失下降图。内容涉及多层感知器的非凸损失函数、超参数调整、特征缩放的重要性,以及在分类和回归任务中的应用。此外,还提到了正则化、算法复杂度和实用技巧,如warm_start选项的使用,以及推荐的文献和学习资源。
摘要由CSDN通过智能技术生成

警告

此实现不适用于大规模应用程序。特别是,scikit-learn没有提供GPU支持。要获得基于GPU更快的实现,以及提供更多灵活性以构建深度学习体系结构的框架,请参见相关项目https://scikit-learn.org/stable/related_projects.html#related-projects。

1. 多层感知器

多层感知器 (MLP)是一种有监督的学习算法,它通过在数据集进行训练来学习函数 18a621299bfc417ffaa7d23518e826ae.png ,其中m是输入的维数,o是输出的维数。给定一组特征 2b624f14956c166f99332c03141e22a8.png 一个标签y,它可以学习用于分类或回归的非线性函数,与logistic回归不同,它在输入层和输出层之间可以有一个或多个非线性层,称为隐藏层。图1显示了一个带有标量输出的单隐藏层MLP。 e79b94d5e78467d32485841e8e3adbb8.png 图 1 : 一个隐藏层的MLP. 最左边的层称为输入层,由一组代表输入特征的神经元 33b55a911e96ec859c55a06672ed4a1c.png 组成。隐藏层中的每个神经元用加权线性和 eb353e69369c644e339300c7d4a18a89.png 来变换前一层的值,然后再通过非线性激活函数 g ( ⋅ ) : R → R 进行变换,如双曲正切函数(tanh)。输出层从最后一个隐藏层接收值并将其转换为输出值。 模块包含公共属性 coefs_  和  intercepts_coefs_ 是一个权重矩阵列表,其中下标为i的权重矩阵表示第i层和第 i + 1 层之间的权重。 intercepts_ 是一个偏移向量,其中下标为i的向量表示添加到第 i + 1 层的偏移值。 多层感知器的优点是:
  • 能够学习非线性模型
  • 能够使用partial_fit学到实时(real-time)模型
多层感知器(MLP)的缺点包括:
  • 具有隐藏层的MLP具有非凸损失函数,其存在多个局部极小值,因此不同的随机权重初始化会导致不同的验证精度。
  • MLP需要调整许多超参数,例如隐藏层神经元的数量、层数和迭代次数。
  • MLP对特征缩放很敏感。
请参阅实用小贴士一节,以解决其中的一些缺点。

2. 分类

MLPClassifier 实现了一个多层感知器(MLP)算法,该算法使用 Backpropagation 进行训练。 MLP在两个数组上进行训练:大小为(n_samples,n_features)的数组X,它保存浮点型特征向量的训练样本;大小为(n_samples)的数组y,它保存训练样本的目标值(类标签):
>>> from sklearn.neural_network import MLPClassifier
>>> X = [[0., 0.], [1., 1.]]
>>> y = [0, 1]
>>> clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
... hidden_layer_sizes=(5, 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值