| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 神经网络过拟合什么意思神经网络中解决过拟合 -> 正文阅读 |
|
[人工智能]神经网络过拟合什么意思神经网络中解决过拟合 |
神经网络,什么过拟合?,什么是欠拟合?欠拟合是指模型不能在训练集上获得足够低的误差。而过拟合是指训练误差和测试误差之间的差距太大。相关介绍:人工神经网络(ANN)或联结主义系统是受构成动物大脑的生物神经网络的启发但不完全相同的计算系统。 这种系统通过例子来“学习”执行任务,而不用特定于任务的规则进行编程。 例如,在图像识别中,人工神经网络可能会通过分析一些图像样本来学习识别包含猫的图像,这些图像被手工标记为“猫”或“不是猫”,并使用结果识别在其他图像中的猫。 他们这样做是在没有猫的任何先验知识的情况下进行的,例如,它们有毛皮,尾巴,胡须和类似猫的脸。相反,人工神经网络会自动从它们处理的学习材料中生成识别特征。 人工神经网络是基于称为人工神经元的连接单元或节点所构成的集合,这些单元或节点松散地模拟生物大脑中的神经元。像生物大脑中的突触一样,每个连接可以将信号从一个人工神经元传输到另一个人工神经元。 接收信号的人工神经元可以对其进行处理,然后向与之相连的附加人造神经元发出信号。 谷歌人工智能写作项目:神经网络伪原创 神经网络,什么过拟合?,什么是欠拟合?欠拟合是指模型不能在训练集上获得足够低的误差文案狗。而过拟合是指训练误差和测试误差之间的差距太大。通过调整模型的容量(capacity),我们可以控制模型是否偏向于过拟合或者欠拟合。 通俗地,模型的容量是指其拟合各种函数的能力。容量低的模型可能很难拟合训练集。容量高的模型可能会过拟合,因为记住了不适用于测试集的训练集性质。 神经网络欠拟合是不是每次输出结果都一样,称为欠拟合,都准确无误称为过拟合?不是的。神经网络训练有训练集和测试集,一般数据比为7:3或8:2。训练集用于生成神经网络的逻辑,测试集用于验证神经网络的正确性。 如果训练集的准确率很高,而测试集很低,说明训练集模拟出的逻辑仅对训练集适用,而和实际差异很大,这种现象称为过拟合。 如果训练集和测试集准确率都很低,说明由于数据本身原因,或神经网络的不良特性,导致神经网络无法符合实际逻辑,这种现象称为欠拟合。 机器学习系列(二十三)——过拟合和欠拟合问题有了多项式回归的方式,我们就可以对非线性的数据做拟合了,不过,复杂度不够的多项式回归会导致欠拟合问题,而过度地使用多项式回归又会导致过拟合问题。 接下来直观地看一下什么是过拟合和欠拟合,生成模拟数据集: 用线性回归对该数据做训练: 用线性回归对该数据训练后的R方值为0.49,显然线性关系不明显,因此用线性回归是有很大误差的。 不过添加多项式特征后,特征毕竟变多了,用R方衡量来衡量不同特征的模型不太直观,改用均方误差衡量: 线性回归的均方误差为3.03,再看一下二次多项式回归: 二次多项式回归的均方误差要减小很多,拟合的曲线如下图: 那更高次的呢? 我们来试一试10次和100次。10次的情况: 10次幂的均方误差相比2次又小了。 拟合曲线如下图: 100次的情况: 可见均方误差更小了,拟合曲线如下图: 不过上面只是一个100次幂的曲线将所有样本特征点包括进去,实际上这条连续曲线是这样的: 理论上我们提高多项式的次数可以任意精度拟合样本点,从而样本的均方误差可以非常非常小,但是样本误差更小就真的能更好地表达数据走势吗? 从图像中看出显然不能,这种现象是就是过拟合(overfitting),而只用一次线性回归拟合的情况则是欠拟合。 机器学习主要解决的问题是过拟合,虽然过拟合的模型能使样本误差总体很小,但是在新的样本上表现却很差,泛化能力弱。而我们需要的是泛化能力强的模型而不是在样本上误差更小的模型。 这也正是测试数据集的意义,将样本分为训练和测试数据集,只用训练数据fit模型,而用测试数据测试模型。如果模型能在测试数据集同样表现很好(有很小的误差),说明模型效果不错。 可以测试,如果将样本划分为训练集和测试集,10次幂,100次幂的多项式回归虽然能使之在训练集上的误差更小,但是在测试集上误差却是越来越大的,这正是过拟合导致的。 线性模型 二次模型 10次模型和100次模型 从上述结果发现,在测试集上10次幂的误差已大于2次幂的,而100次幂的误差更是天文数字。 综上所述,欠拟合是算法所训练的模型不能完整表述数据关系,而过拟合是算法训练的模型过多地表达了数据间的关系(往往是把噪音当成了特征,是噪音间的关系)。而我们需要寻找的是泛化能力最好的模型。 机器学习中有一个模型复杂度的概念,对于多项式回归,次幂越高则复杂度越高,对于knn算法来说,k值越小模型复杂度越高。 相应地有模型复杂度曲线用于直观地反映模型复杂度和模型准确率的关系 不过模型复杂度曲线的绘制困难,这在后面的决策树再具体介绍。 这里我们先用一个学习曲线来直观感受一下在多项式回归中,模型复杂度和训练效果的关系。 线性模型 封装学习曲线绘制函数: 绘制线性模型的学习曲线: 可以观察到随着训练的进行(这里是不断增加训练数据),训练集上的误差会慢慢积累,积累到一定程度稳定下来,测试集的误差先升后慢慢降低到一定程度稳定下来。 二次模型 二次模型与线性模型趋势一样,不过稳定的位置较一次低而且在测试集上的曲线和训练集上的曲线距离小,因为2次确实是最优的模型。 20次幂模型 测试集曲线和训练集曲线距离更大了,说明过拟合现象比较严重。 我们要寻找的是有最好的泛化能力的模型。如何寻找最优的模型,使模型拥有优秀的泛化能力呢?这将在下篇介绍。 用什么方法可以判断出现了欠拟合和过拟合欠拟合和过拟合没有明确的定义分界。明显的未充分利用数据,拟合结果不符合预期,甚至不能有效拟合训练集,我们可以认为欠拟合。考虑过多,超出自变量的一般含义维度,过多考虑噪声,会造成过拟合。 可以认为预测准确率、召回率都比理论上最佳拟合函数低很多,则为欠拟合。训练集预测效果好,测试集预测效果差,则为过拟合。 过拟合:当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了。这意味着训练数据中的噪音或者随机波动也被当做概念被模型学习了。 而问题就在于这些概念不适用于新的数据,从而导致模型泛化性能的变差。简单理解就是训练样本的得到的输出和期望输出基本一致,但是测试样本输出和测试样本的期望输出相差却很大 。 为了得到一致假设而使假设变得过度复杂。欠拟合:欠拟合指的是模型在训练和预测时表现都不好的情况。一个欠拟合的机器学习模型不是一个良好的模型并且由于在训练数据上表现不好这是显然的。 什么是机器学习的过拟合和欠拟合对于一个监督学习模型来说, 过小的特征集合使得模型过于简单,过大的特征集合使得模型过于复杂 。 对于特征集过小的情况,称之为 欠拟合( underfitting ) 对于特征集过大的情况,称之为 过拟合( overfitting ) ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 3:11:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |