前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >机器学习教材中的 7 大经典问题

机器学习教材中的 7 大经典问题

作者头像
两只橙
发布于 2021-11-24 08:55:18
发布于 2021-11-24 08:55:18
5200
举报
文章被收录于专栏:深度学习深度学习

一、神经网络不宜超过三层

这是最有名错误判断,现在的教科书几乎已经不再有这样的结论,但如果看15年、20年前的机器学习教科书,会有一个很有趣的结论:神经网络不能超过三层。这和我们现在说的深度学习是矛盾的,深度学习现在大家比拼的不是神经网络能不能超过三层,而是能不能做出一百层、一千层或者更多。

那为什么之前的教科书上会写神经网络不能超过三层,这就要从神经网络的历史说起。五十年代有位科学家叫Marvin Minksy,他是一位生物学家,数学又很好,所以他在研究神经元的时候就在想能不能用数学模型去刻画生物的神经元,因此就设计了感知机。感知机就像一个神经细胞,它能像神经细胞一样连起来,形成神经网络,就像大脑的神经网络。其实在60年代开始的时候,是有很深的神经网络,但当时经过大量实验发现,不超过三层的神经网络效果不错,于是大概到80年代时就得出结论:神经网络不宜超过三层。

那为什么现在这条结论又被推翻了呢?实际上这条结论是有前提条件的,即在数据量不大的情况下,神经网络不宜超过三层。而从2005年开始,大家发现随着数据增加,深度神经网络的表现良好,所以慢慢走向深度学习。其实这里真正正确的原理是Valiant引理,它可以理解为“模型复杂度(例如专家系统的规则数量)要和数据量成正比”。数据量越大,模型就越复杂。上个世纪因为数据量小,所以神经网络的层数不能太深,现在数据量大,所以神经网络的层数就要做深。这也解释了为什么当时教科书会有这样的结论,而现在随着深度学习的流行,大家已经不再会认为这句话是对的。

二、决策树不能超过五层

如果有同学看教科书上介绍决策树,会有一个说法就是决策树要减枝,决策树如果不减枝效果不好。还有教科书会告诉决策树不能超过五层,超过五层的决策树效果不好。这个结论和神经网络结论一样,神经网络不能超过三层也是因为当时数据量不大,决策树不能超过五层也是因为上个世纪数据量不够大,二叉树决策树如果深度是N的话,复杂度大概是2的N次方,所以不超过五层复杂度也就是三十多。如果数据量达到一百万的时候,决策树能达到十几二十层的规模,如果数据量到了一百亿的时候决策树可能要到三十几层。

现在,我们强调更深的决策树,这可能和教科书讲的相矛盾。矛盾的原因是现在整个场景下数据量变大,所以要做更深的决策树。当然,我们也不一定在所有的场景里都有很大数据量,如果遇到了数据量小的场景,我们也要知道决策树是要做浅的。最根本来说,就是看有多少数据,能写出多复杂的模型。

三、特征选择不能超过一千个

有些教科书会单独开个章节来讲特征选择,告诉我们在拿到数据后,要先删除一些不重要的特征,甚至有的教科书注明,特征数不能超过一千,否则模型效果不好。但其实这个结论也是有前提条件的,如果数据量少,是不能够充分支撑很多特征,但如果数据量大,结论就会不一样。这也就是为什么我们做LogisticRegression会有几十亿个特征,而不是限制在几百个特征。

过去传统数据分析软件,如SAS,之所以只有几百个特征,是因为它诞生于上世纪七十年代,它面临的问题是在具体场景下没有太多可用数据,可能只有几百上千个样本。因此,在设计系统时,就只需要针对几百个特征设计,不需要几十亿个特征,因为上千个样本无法支撑几十亿特征。但现在,随着数据量增加,特征量也需要增加。所以我认为,在大数据环境下,整个机器学习教科书里关于特征选择的章节已经落后于时代,需要根据新的形式重新撰写;当然在小数据场景下,它仍然具有价值。

四、集成学习获得最好学习效果

第四个叫做集成学习,这个技术在各种数据挖掘比赛中特别有用,比如近些年KDD CUP的冠军几乎都是采用集成学习。什么是集成学习?它不是做一个模型,而是做很多(例如一千个)不一样的模型,让每个模型投票,投票的结果就是最终的结果。如果不考虑资源限制情况,这种模式是效果最好的。这也是为什么KDDCUP选手们都选择集成学习的方式,为了追求最后效果,不在乎投入多少,在这种条件下,集成学习就是最好的方式。

但在现实中,企业做机器学习追求的不是用无限的资源做尽可能好的效果,而是如何充分利用有限资源,获得最好效果。假设企业只有两台机器,如何用这两台机器获得最好的效果呢?如果采用集成学习,用两台机器跑五个模型,就要把两台机器分成五份,每个模型只能用0.4台机器去跑,因此跑的数据量就有限。那如果换种方式,不用集成学习,就用一个模型去跑,就能跑5倍的数据。通常5倍的数据量能比集成学习有更好的效果。在工业界比较少会应用集成学习,主要是因为工业界绝大多数的场景都是资源受限,资源受限时最好的方式是想办法放进去更多的数据。集成学习因为跑更多的模型导致只能放更少的数据,通常这种效果都会变差。

五、正样本和负样本均采样到1:1

第五个叫做均衡采样,绝大多数的教科书都会讲到。它是指如果我们训练一个模型,正样本和负样本很不平均,比如在正样本和负样本1:100的情况下,就需要对正、负样本做均衡采样,把它变成1:1的比例,这样才是最好的。但其实这个结论不一定对,因为统计学习里最根本的一条原理就是训练场景和测试场景的分布要一样,所以这个结论只在一个场景下成立,那就是使用模型的场景中正、负样本是1:1,那这个结论就是对的。

正确的做法是,应用场景是1:100,那训练集合最好也是1:100。均衡采样不一定都是对的,多数情况下不采样反而才是正确的。因为大多时候,我们直接把训练集合和测试集合做随机拆分,或者按照时间拆分,二者的分布就是一致的,那个时候不采样是最好的。当然有时候,我们也会发现做负样本采样会有更好的效果,比如范式在为某股份制银行卡中心做交易反欺诈时,就做了负样本采样,那是因为当我们把所有样本都放进去后,发现计算资源不够,所以只能做采样。正样本与负样本大概是1:1000或者1:10000,如果对正样本做采样,损失信息量会比较大,所以我们选择对负样本采样,比如做1:1000的采样,再把负样本以1000的加权加回去。在资源受限时这么做,会尽可能降低信息量的损失。但如果仅仅是为了把它做均衡而做负样本采样,通常是不对的。和前面几个问题不同,负样本采样并不是因环境改变而结论变化,事实上就不应该做负样本采样。

六、交叉验证是最好的测试方法

下一个问题叫做交叉验证,是指假设要将一份数据拆分成训练集和测试集,这个时候怎么评估出它的误差?交叉验证是把集合拆成五份,取四份做训练集、一份做测试集,并且每次选择不同的那一份做测试级,最后测出五个结果再做平均,这被认为是最好的测试方法。

交叉验证确实是一个还不错的验证的方法,但在现实应用场景下,它往往不是最合适的一种方式。因为通常来说,我们用机器学习做的事情是预测,绝大多数情况下我们是用现在或者过去的数据做一个模型来预测未来。而拿过去的训练预测未来的最好测试方法不是交叉验证,因为交叉验证是按照交易或者按人拆分的。最合适的是方法其实是按照时间拆分,比如评估的时候选取一个时间点,用在这个时间点之前的数据做训练,预测在这个时间点之后的,这是最接近真实应用场景的评估结果。

交叉验证可能只适用于和时间属性不相关的场景,比如人脸识别,但我们面临更多的应用场景,无论是风险、营销或者反欺诈,都是在用过去的数据训练后预测未来,最合适这样场景的评估方法不是交叉验证,而是按照时间去拆分。

七、过拟合一定不好

最后一个叫过拟合,这也是一个讨论特别多的话题。以前,通常我们会说如果模型做的太复杂了就会过拟合,如PPT右边所示,而最好的方式应该是图中中间的状态——拟合的刚刚好,图中左边的模型underfitting,没有训练完全。但现在来看,大多数的实际场景都是在拿过去预测未来,过拟合不一定是不好的,还是要看具体场景。如果这个场景是过去见过的情况比较多,新的情况比较少的时候,过拟合反倒是好的。

打个比方,如果期末考试题就是平时的作业,那我们把平时的作业都背一遍就是最好的方式,而这就是过拟合。如果期末考试不考平时作业,全是新题,那么这个时候就不能只背平时的作业,还要充分理解这门课的知识,掌握如何推理解题的技巧。所以过拟合好坏与否,完全取决于场景。如果应用场景依靠死记硬背就能搞定,那过拟合反倒是好的。实际上在我们的设计里面,很多时候我们会倾向于往过拟合靠一点,可能做新题会差一点,但是对于死记硬背的送分题会做的非常好。在拿过去预测未来的应用场景下,有的时候过拟合不一定不好,要根据实际情况来看。

今天与大家分享了教科书中的几个经典问题。其实在实际工业应用中,我们不会完全按照教科书中的方式去实践。我们也会设计很深的模型、很深的决策树、很多的特征、会过拟合一点,我们更强调按时间拆分,不强调均衡采样。面对教科书中的结论,我们需要学会的是根据实际场景做出相应灵活判断。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/1 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习中需要知道的一些重要主题
机器学习现在是一个热门话题,每个人都在尝试获取有关该主题的任何信息。有了关于机器学习的大量信息,人们可能会不知所措。在这篇文章中,我列出了你需要了解的一些机器学习中最重要的主题,以及一些可以帮助你进一步阅读你感兴趣的主题的资源。
磐创AI
2019/09/27
7770
机器学习中需要知道的一些重要主题
机器学习面试问题集(2018-3-13更新)
http://blog.csdn.net/u011239443/article/details/76360294
小爷毛毛_卓寿杰
2019/02/13
8670
机器学习面试问题集(2018-3-13更新)
《百面机器学习》读书笔记之:特征工程 & 模型评估
对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。这样做的目的是消除数据特征之间的量纲影响,使得不同的指标之间具有可比性,帮助在进行迭代优化(如梯度下降)时更快地收敛至最优解。最常用的归一化方法有以下两种:
口仆
2020/08/20
1.6K0
《百面机器学习》读书笔记之:特征工程 & 模型评估
机器学习概念总结笔记(三)
作者:许敏 系列推荐 机器学习概念总结笔记(一) 机器学习概念总结笔记(二) 机器学习概念总结笔记(四) 12)分类决策树C4.5 C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进
serena
2017/09/30
1.8K0
机器学习概念总结笔记(三)
机器学习面试
为什么LR需要归一化或者取对数,为什么LR把特征离散化后效果更好,为什么把特征组合之后还能提升,反正这些基本都是增强了特征的表达能力,或者说更容易线性可分吧 naive bayes和logistic regression的区别http://m.blog.csdn.net/blog/muye5/19409615
AomanHao
2022/01/14
5070
深度学习「CV」学习实践指南!
深度学习的发展不仅突破了许多视觉难题,也加速了计算机视觉领域相关技术的进步。本文主要从CV数据处理、CV模型(CNN)、CV模型训练流程以及CV模型集成对计算机视觉的基础知识和基本环节进行了讲解。
Datawhale
2020/06/23
1.8K0
Python机器学习笔记:不得不了解的机器学习面试知识点(1)[通俗易懂]
  机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因此将机器学习中常见的原理性问题记录下来,保持对各个机器学习算法原理和特点的熟练度。
全栈程序员站长
2022/09/07
3530
Python机器学习笔记:不得不了解的机器学习面试知识点(1)[通俗易懂]
机器学习基础篇_2/2
原始数据 –> 数据特征工程(训练数据和测试数据) –> 选择合适的算法进行学习 –> 建立模型 –> 模型评估(测试数据) –> 判断模型是否合格 –> 模型应用(一般以API的形式提供)
卡伊德
2022/09/13
5540
机器学习基础篇_2/2
【斯坦福21秋季:实用机器学习中文版】2021.12.15
1、大纲:https://space.bilibili.com/1567748478/channel/collectiondetail?sid=28144 2、 3、 4、在数据分析、人工智能中不同岗
用户7138673
2022/09/22
2740
【斯坦福21秋季:实用机器学习中文版】2021.12.15
【机器学习】机器学习从“看”到“做”的实战经验
引言 前阵子看到一篇文章,学习了一段时间的机器学习算法后,再回头看机器学习问题,发现要想利用机器学习去很好的求解一个问题,其实并不是一件容易办到的事情,尤其是能够对整个模型的解释方面,要想能够对模型很好的解释,那么难度就会更大。因为利用机器学习处理一个实际的问题就不仅仅是我们得学会怎么使用机器学习算法,更重要的是如何对整个问题建模。我刚开始是学习智能计算,当然一个优化问题怎么去建模,建模完成之后就是求解,相对还算比较简单。但是在机器学习中,问题就变得复杂多了,很多将机器学习的书也都是讲机器学习的算法,就像我
陆勤_数据人网
2018/02/26
6380
【机器学习】机器学习从“看”到“做”的实战经验
BAT机器学习面试1000题系列(第150~279题)
长文~可先收藏再看哟~ 150、在感知机中(Perceptron)的任务顺序是什么?深度学习 DL基础 易 1 随机初始化感知机的权重 2 去到数据集的下一批(batch) 3 如果预测值和输出不一致,则调整权重 4 对一个输入样本,计算输出值   A. 1, 2, 3, 4   B. 4, 3, 2, 1   C. 3, 1, 2, 4   D. 1, 4, 3, 2   答案:(D) 151、假设你需要调整参数来最小化代价函数(cost function),会使用下列哪项技术?深度学习 DL基础 易
用户1332428
2018/03/09
11.6K0
BAT机器学习面试1000题系列(第150~279题)
算法工程师-机器学习面试题总结(3)
FM(因子分解机)模型和逻辑回归是两种常见的预测建模方法,它们在一些方面有不同的优缺点
机器学习AI算法工程
2023/09/04
9210
算法工程师-机器学习面试题总结(3)
【openAI】机器学习算法
机器学习是人工智能的一个分支,它使计算机可以在没有明确编程的情况下从数据中学习。通过学习模式,机器学习算法能够对新数据进行预测或做出决策。
熬夜学编程的小王
2024/11/20
1070
【openAI】机器学习算法
【机器学习】基于机器学习的分类算法对比实验
本论文旨在对常见的分类算法进行综合比较和评估,并探索它们在机器学习分类领域的应用。实验结果显示,随机森林模型在CIFAR-10数据集上的精确度为0.4654,CatBoost模型为0.4916,XGBoost模型为0.5425,LightGBM模型为0.5311,BP神经网络模型为0.4907,而经过100次迭代的深度学习模型达到了0.6308的精确度。相对于随机森林模型,CatBoost和XGBoost模型表现出更好的性能,而深度学习模型在CIFAR-10数据集上展现出卓越的性能。
SarPro
2024/03/24
3720
【机器学习】基于机器学习的分类算法对比实验
机器学习面试干货精讲
本内容涉及模型核心数学公式,把本人面试中常被问到问题以及模型知识点的总结,起到提纲挈领作用,在准备的过程中抓住每个模型的重点。
Coggle数据科学
2019/09/12
8520
机器学习面试干货精讲
52道机器学习常见面试题目
有监督学习:对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的岐义性低。
1480
2019/11/07
1.8K0
52道机器学习常见面试题目
系统总结!机器学习的模型!
大家好,我是花哥,前面的文章我们介绍了人工智能、机器学习、深度学习的区别与联系,指出了如今的人工智能技术基本上就是指机器学习。
算法进阶
2024/02/18
1.1K0
系统总结!机器学习的模型!
机器学习测试题(上)
人工智能一直助力着科技发展,新兴的机器学习正推动着各领域的进步。如今,机器学习的方法已经无处不在—从手机上的语音助手到商业网站的推荐系统,机器学习正以不容忽视的速度闯入我们的生活。以下测试题可以粗略的检测你对机器学习的了解和掌握程度。 1.以下哪一种方法最适合在n(n>1)维空间中做异常点检测。 A 正态分布图 B 盒图 C 马氏距离 D 散点图 答案:C 马氏距离是是一种有效的计算两个未知样本集的相似度的多元计量方法,以卡方分布为基础,表示数据的协方差距离。与欧氏距离不同的是它考虑到各种特性之间的联
小莹莹
2018/04/19
2.7K0
机器学习测试题(上)
推荐 | 机器学习中的这12条经验,希望对你有所帮助
华盛顿大学 Pedro Domingos 教授的“A Few Useful Things to Know about Machine Learning”这篇论文总结了机器学习研究者和从业者的 12 个宝贵经验,包括需要避免的陷阱、需要关注的重点问题、常见问题的答案。希望这些经验对机器学习爱好者有一些帮助。 1. “表征+评估+优化”构成机器的主要内容! 构成机器学习算法的 3 部分: 表征(Representation):分类器必须用计算机可以处理的形式化语言来表示。相反地,为训练模型选择一个表征就等同于
昱良
2018/04/16
7020
推荐 | 机器学习中的这12条经验,希望对你有所帮助
图解机器学习 | 随机森林分类模型详解
教程地址:http://www.showmeai.tech/tutorials/34
ShowMeAI
2022/03/10
5.3K0
图解机器学习 | 随机森林分类模型详解
相关推荐
机器学习中需要知道的一些重要主题
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文