来源:Jerry的算法和NLP

Jerry的算法和NLP

先说下结论:没有一个模型是万能的,需要根据数据选择适合的模型。
在机器学习中,数据大概可以分成四大类:图像 (Image),序列(Sequence),图(Graph) 和表格(Tabular) 数据。其中,前3类数据有比较明显的模式,比如图像和图的空间局部性,序列的上下文关系和时序依赖等。而表格数据常见于各种工业界的任务,如广告点击率预测,推荐系统等。在表格数据中,每个特征表示一个属性,如性别,价格等等,特征之间一般没有明显且通用的模式。
神经网络适合的是前三类数据,也就是有明显模式的数据。因为我们可以根据数据的模式,设计对应的网络结构,从而高效地自动抽取“高级”的特征表达。如常见的 CNN (卷积神经网络) 就是为图像而设计的,RNN (循环神经网络) 为序列数据而设计的。而表格数据,因没有明显的模式,非要用神经网络的话,就只能用低效的全连接网络,一般效果都不太好。在实践中,对于表格数据,除了专门对特定任务设计的网络结构如DeepFM等,更多时候还是用传统机器学习模型。尤其是 GBDT (梯度提升树),因其自动的特征选择能力及动态的模型复杂度,算得上是一个万金油模型,在各种类型的表格数据上都表现很好。但对于表格数据而言,其实特征工程才是更关键的。在给定数据的情况下,模型决定了下限,特征决定了上限。特征工程类似于神经网络的结构设计,目的是把先验知识融入数据,并且让模型更好地理解数据,让模型可以学得更好。
另外,神经网络实质上不算是一个模型,而是一类可以自由“搭积木”的模型。结构不同的神经网络可以认为是不同的模型了。
总结下,no free lunch,没有一个万能的模型,可以直接用于各种数据。有多少人工就有多少智能:用神经网络的话,你需要结构设计;而用传统模型的话,你需要特征工程。
首先说大家熟悉的监督学习任务,比如分类和回归。
神经网络的优势要在数据量很大,计算力很强的时候才能体现,数据量小的话,很多任务上的表现都不是很好。
SVM属于非参数方法,拥有很强的理论基础和统计保障。损失函数拥有全局最优解,而且当数据量不大的时候,收敛速度很快,超参数即便需要调整,但也有具体的含义,比如高斯kernel的大小可以理解为数据点之间的中位数距离(Median heuristic)。在神经网络普及之前,引领了机器学习的主流,那时候理论和实验都同样重要。
决策树也是非参数方法之一。我的经验告诉我,很多时候随机森林要比SVM要好,而且森林的训练时间可以很短,但感觉超参数调节上不是很intuitive,几棵树?收敛条件?都需要一个个试。
神秘网络拥有很多局部最优,而且理论上过拟合很容易,但各种tricks神奇的避免了这些理论弊端,但很多时候人们并不清楚它的工作和训练原理,而且泛化能力为什么高(各种竞赛结果)/低(对抗样本),也没有解释。在给定计算量下,神经网络基本上没办法和传统方法比。好在GPU解决了这个弊端。
总之,当数据量小的时候,传统方法依靠理论保障(kernel methods),或者用先验(贝叶斯方法)来控制解的空间,通常会有很好的表现。
再说一些光看神经网络还用不到的任务。答主可能也只是问在监督范畴内,传统方法有什么价值。但我想在更广泛的背景下介绍一下传统方法的意义何在。
一般认为监督式学习是已经解决了的问题,所以最前沿的理论研究都集中在非监督领域。炼丹在此略过。
非监督学习领域,虽然神经网络也被用作模型一部分,但主要还是以方程近似的角色体现。GAN,Normalizing flow, VAE,energy-based models... 这些方法还依靠统计理论。比如,kernel methods加上神经网络可以用于密度估计,但主要的原理还是建立在传统体系下(max likelihood,score matching等),神经网络只不过是更复杂的kernel超参数而已。
最后提一项神经网络基本不可能用到的任务
假设检验是非常重要的科研工具,用在很多关键领域上。医学上判断药物是否有作用,社会学上判断一项政策是否改变了社会参数,金融上判断两只产品的之间是否有关联,机器学习上判断两个GAN生成的图片那个更真实…都需要用到假设检验。
大家熟悉的t-test, rank test, K-S test等都只适用于一维数据,而且数据的收集可能不理想(比如长期监测的病人提前退出测试),数据本身并不满足参数性假设(如残差为高斯分布)…
如果要开发一项检验方法,需要控制Type-1 error,也就是当H0为真的时候,错误拒绝H0的概率。这个时候神经网络这个黑箱就成了很大的障碍,因为没有任何理论基础。而kernel方法依靠深厚的理论基础,可以在几乎没有任何数据分布假设下,从数学上给出Type-1 error的保障,也就可以被用在很多关键领域的检测。同时,数据收集不理想的时候,也可以通过一大堆数学推倒来实现这些test。如果有了黑箱,那基本就相当于把理论给扔了。

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

既然使用神经网络也可以解决分类问题,那SVM、决策树这些算法还有什么意义呢?...相关推荐

  1. 模拟数据集上训练神经网络,网络解决二分类问题练习

    #2018-06-24 395218 June Sunday the 25 week, the 175 day SZ ''' 模拟数据集上训练神经网络,网络解决二分类问题.'''import tens ...

  2. 循环神经网络实现文本情感分类之Pytorch中LSTM和GRU模块使用

    循环神经网络实现文本情感分类之Pytorch中LSTM和GRU模块使用 1. Pytorch中LSTM和GRU模块使用 1.1 LSTM介绍 LSTM和GRU都是由torch.nn提供 通过观察文档, ...

  3. 为什么要返回softmax_为什么softmax搭配cross entropy是解决分类问题的通用方案?

    众所周知,softmax+cross entropy是在线性模型.神经网络等模型中解决分类问题的通用方案,但是为什么选择这种方案呢?它相对于其他方案有什么优势?笔者一直也困惑不解,最近浏览了一些资料, ...

  4. pytorch-softmax解决分类问题,用fashion-mnist为例子,再走一遍数据获取到模型预测的流程。深度了解分类指标的递进关系

    softmax回归 线性回归模型适用于输出为连续值的情景.在另一类情景中,模型输出可以是一个像图像类别这样的离散值.对于这样的离散值预测问题,我们可以使用诸如softmax回归在内的分类模型.和线性回 ...

  5. NLP学习笔记-循环神经网络RNN、情感分类、LSTM(二)

    循环神经网络和自然语言处理介绍 1. 文本的tokenization 1.1 概念和工具的介绍 tokenization就是通常所说的分词,分出的每一个词语我们把它称为token. 常见的分词工具很多 ...

  6. 使用卷积神经网络实现猫狗分类任务

    一.数据集下载链接 二.基础环境配置 三.训练及测试过程   使用卷积神经网络在猫狗分类数据集上实现分类任务. 一.数据集下载链接   猫狗分类数据集链接 → 提取码:1uwy. 二.基础环境配置 W ...

  7. 循环神经网络实现文本情感分类之使用LSTM完成文本情感分类

    循环神经网络实现文本情感分类之使用LSTM完成文本情感分类 1. 使用LSTM完成文本情感分类 在前面,使用了word embedding去实现了toy级别的文本情感分类,那么现在在这个模型中添加上L ...

  8. 【深度学习】卷积神经网络实现图像多分类的探索

    [深度学习]卷积神经网络实现图像多分类的探索 文章目录 1 数字图像解释 2 cifar10数据集踩坑 3 Keras代码实现流程 3.1 导入数据 3.2 浅层CNN 3.3 深层CNN 3.4 进 ...

  9. 利用TensorFlow和神经网络来处理文本分类问题

    利用TensorFlow和神经网络来处理文本分类问题 By 机器之心2017年8月23日 10:33 在这篇文章中,机器之心海外分析师对Medium(链接见文后)上的一篇热门博客进行了介绍,讨论了六个 ...

最新文章

  1. [How TO]-ubuntu20.10上安装Pulse Secure客户端
  2. linux 占用内存 脚本,linux内存测试(占用)脚本
  3. python装饰器常见问题_关于python装饰器的问题
  4. 极客大挑战2020_CTF-Web-[极客大挑战 2019]HardSQL
  5. c语言中switch的用法是什么?
  6. android实现手机拍照以及图片预览功能_手机系统将有A/B分区?Android 11这些变化你关注过吗...
  7. 图解TCP/IP第一章学习
  8. Hadoop Configuration 源码详解
  9. python判断题题库大数据技术_智慧树_大数据分析的python基础_判断题答案
  10. 矩阵转置matlab的函数,【ZZ】Matlab矩阵操作
  11. 小米2S稳定版 教你如何一键ROOT
  12. 查看本机计算机id,win7电脑如何用命令查看本机IP地址
  13. Typora入门手册
  14. 百度云轻量应用服务器LS从购买到web应用nginx搭建部署全流程--你值得拥有的入门级教程
  15. winscp如何连接安卓手机_通过winscp连接路由器
  16. C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯
  17. 一眼就看懂;Android App 开发前景介绍及学习路线规划
  18. chrome 谷歌浏览器模拟各种手机设置userAgent
  19. python自动获取号码归属地_Python批量获取并保存手机号归属地和运营商的示例
  20. fedora 下常用软件安装

热门文章

  1. M1 mac安装PyTorch的完整步骤指南
  2. 近期活动盘点:高级机器学习训练营、基于神经网络的代码自动生成” “开放学术图谱”、西山金融科技产业创新论坛...
  3. 医工汇聚 智竞心电 | 首届中国心电智能大赛开启招募
  4. 送你一份使用k近邻算法实现回归的实用指南(附代码、链接)
  5. 报名 | 瓜子二手车周洲:如何玩转AI赋能下的新零售?
  6. 创业公司自曝「被谷歌封杀」,阻断一切访问,上诉只得到机器人回复
  7. 一文理清集成学习知识点(BoostingBagging)
  8. 时间序列竞赛炸榜技巧。
  9. 【深度学习前沿】一文回顾深度学习十年发展
  10. 第三方医药物流的现状及发展