数据不够大,别玩深度学习?正反双方撕起来了

简介:
本文来自AI新媒体量子位(QbitAI)

争论,随时可能爆发。

比方当你看到一篇名为《数据不够大,别玩深度学习》(Don’t use deep learning your data isn’t that big)的博客时。

作者Jeff Leek在这篇博客中指出,深度学习已经进入一定程度的狂热状态,人们正试图用这个技术解决每一个问题。但真正的挑战在于:“只有极少数情况下有足够的数据进行深度学习”,不是每家都有科技巨头的数据。

深度学习与更简单的模型相比,优点在于有足够的数据来调整大量的参数,博主建议当数据集不是那么大的时候,应该采用一些更简单、更可解释的办法,而且不用担心过拟合等问题。

为了证明自己的论点正确,Leek还举了一个基于MNIST进行图像识别的例子,分辨0或者1。他用的两个方法一个是逻辑回归,一个是深度神经网络(5层,每层160个节点,Tanh过滤器,20个epoch)。

Leek把训练集大小分成10到80,每次增加5。重复5次以平均掉一些噪音。

想要看具体案例的,请移步这里:https://simplystatistics.org/2017/05/31/deeplearning-vs-leekasso/

总之结论是:对于低训练样本来说,更简单的方法略胜于更复杂的方法。随着样本量的增加,复杂的方法的精度逐渐上升。

博主想用这个简单的例子说明:

样本量很重要。对于Google、亚马逊或者Facebook来说,有着接近无限的数据量,这种情况下应用深度学习是有意义的。但是如果只是中等规模的样本量,深度学习可能不会提升准确度,而且还失去了可解释性。

传送门

Jeff Leak的文章:

https://simplystatistics.org/2017/05/31/deeplearning-vs-leekasso/

很快,就有用户在Reddit上吐槽。这些人认同文章的标题,但不认同作者的论据。他指出原文作者使用的方法,甚至称不上是真正的深度学习:这个领域过去十年的进展一个都没用上,而这些技术对小数据量来说非常重要。

例如,dropout、数据增强等等。如果不使用数据增强,5层×160神经元的网络绝对是太大了,大小为80的训练样本根本不起作用。另外ReLU可能比Tanh更好。

还有其他各种吐槽,量子位就不一一搬运了。你以为这就完了?拿衣服。

Leek这篇文章火了不到一周,哈佛大学药学院的生物医药信息学专业博士后Andrew Beam写了篇文章来反驳:《就算数据不够大,也能玩深度学习》。

Beam开篇就说,之前Jeff Leek那篇文章看得他有点不爽。核心论点他大致同意,他也不觉得深度学习是万能良药。但是,你确定深度学习在数据量不足100的时候效果不好是因为过拟合?怎么看都是因为模型没调好啊……

于是,他带着暑期实习生写了个有12万参数的MLP(多层感知器)和20万参数的卷积模型,任务还是用MNIST数据集,区分0和1。然后,他们又重新构建了Leek文章用的简单回归方法Leekasso和深度学习MLP,做了个比较。

 红线:Beam文的CNN;紫线:Beam文的MLP
绿线:Leekasso;蓝线:Leek文的MLP
横轴是样本数,纵轴是准确率
下图去掉了Leek文的MLP是为了更清楚地比较前三种

这一顿折腾,都是为了说明一个问题:你看我们写的MLP和CNN,表现都挺好的嘛,所以不是深度学习不行,是你不行嘛。

不过讨论来讨论去,这个“区分0和1”的任务可能根本不足以说明问题。StackOverflow的数据科学家David Robinson后来也掺和进来,发了条Twitter说:这是个靠识别图像中心/边缘像素颜色就能解决的问题。

除了表达“不服气”和“我更牛”之外,Beam的文章也很正经地谈了谈到底什么时候该用深度学习:当你没有大量数据的时候,用简单的模型通常是个更好的选择。

不过,就算你是个普通人,手里有100-1000个样本,也可以试试深度学习。在这种情况下,深度学习领域有很多缩减差异、防止过拟合的方法可供尝试,包括dropout与随机梯度下降相结合,或者将目标问题的特定参数融合到模型中去。比如说在建立CNN做图像处理的时候,我们其实会把图像的属性编码到模型中。

实在不行,还有迁移学习嘛。

传送门

Andrew Beam的文章:

http://beamandrew.github.io/deeplearning/2017/06/04/deep_learning_works.html

Andrew Beam的代码:

https://github.com/beamandrew/deep_learning_works

这篇文章一出现,立刻有人叫好。

然而俗话说喷人者,可能会被喷。

Beam这篇洋洋洒洒的雄文,被Hacker News用户rkaplan“嘲笑”说:“这个帖子甚至没提到没有大量数据而用深度学习的最简单方法:下载一个预先训练的模型,并用你的小数据微调最后几层神经网络”。(其实也提了一下)

例如在图像分类等领域,微调的效果非常棒,因为预训练的模型的前几层早已经学会了很多通用特征,适用于很多不同的数据集。甚至最好的皮肤癌分类器,也在ImageNet上进行了预训练。

量子位插一句,关于数据量不够大时怎么办,以及在ImageNet上预训练的方法,HTC负责研发及医疗的总裁、原Google中国工程院副院长张智威(Edward Y. Chang)博士,曾经在清华的一次分享中讲到过。

这里是张智威分享的传送门:《研发医疗领域的AlphaGo

没有大数据,也没有预训练,行不行?也有人说行。Beam的反驳文章提了两种方法,Hacker News用户autokad也举了个例子,说他有一个最常用的5000个英文单词数据集,5000也是一个挺小的数据。

在这个数据集上,他用RBF核函数的SVM获得了87-88%的精度;用直方图核函数加一点特征工程可以做到89.7%的精度。而用调整过一些参数的TensorFlow,也能达到大约89.7%的精度。

有人举例说明,有人现身说法。讨论甚至从数据大小,一直延伸到各种深度学习方法的比较,乃至应用领域等。

有网友留言说,不管这个讨论结果如何,都让关注深度学习的人有所收获。

不知道大家怎么看这个话题?

欢迎留言继续讨论。

想深度围观的朋友,在量子位微信公众号(QbitAI)对话界面回复:“越洋”两个字,我们再分享几个越洋讨论的传送门。

【完】

本文作者:李林 问耕 
原文发布时间: 2017-06-07 
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的魔法:如何用神经网络解锁数据的奥秘
在人工智能的璀璨星空中,深度学习犹如一颗最亮的星,它以其强大的数据处理能力,改变了我们对世界的认知方式。本文将深入浅出地介绍深度学习的核心概念、工作原理及其在不同领域的应用实例,让读者能够理解并欣赏到深度学习技术背后的奇妙和强大之处。
123 3
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
622 0
|
机器学习/深度学习 数据采集 计算机视觉
深度学习之缺失数据的图像修复
基于深度学习的缺失数据图像修复是一种通过深度学习技术填补图像中缺失或损坏部分的过程。这种技术在图像处理领域具有重要意义,能够改善图像的视觉质量,并在许多实际应用中发挥作用,如图像恢复、视频编辑和图像生成等。
409 4
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与神经网络:探索复杂数据的表示
【9月更文挑战第26天】深度学习作为人工智能领域的明珠,通过神经网络自动从大数据中提取高级特征,实现分类、回归等任务。本文介绍深度学习的基础、张量表示、非线性变换、反向传播及梯度下降算法,并探讨其在计算机视觉、自然语言处理等领域的应用与挑战。未来,深度学习将更加智能化,揭示数据背后的奥秘。
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护
400 1
|
机器学习/深度学习 自然语言处理 数据处理
深度学习的数据增强
基于深度学习的数据增强技术旨在通过生成或变换现有数据,来提高模型的泛化能力和鲁棒性。数据增强在图像、文本、语音等各种类型的数据处理中都起着至关重要的作用。
238 1
|
机器学习/深度学习 自然语言处理
【绝技揭秘】模型微调与RAG神技合璧——看深度学习高手如何玩转数据,缔造预测传奇!
【10月更文挑战第5天】随着深度学习的发展,预训练模型因泛化能力和高效训练而备受关注。直接应用预训练模型常难达最佳效果,需进行微调以适应特定任务。本文介绍模型微调方法,并通过Hugging Face的Transformers库演示BERT微调过程。同时,文章探讨了检索增强生成(RAG)技术,该技术结合检索和生成模型,在开放域问答中表现出色。通过实际案例展示了RAG的工作原理及优势,提供了微调和RAG应用的深入理解。
389 0
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
270 0
|
机器学习/深度学习 编解码 自动驾驶
lidar激光雷达介绍,以及使用激光雷达数据通过深度学习做目标检测
lidar激光雷达介绍,以及使用激光雷达数据通过深度学习做目标检测
484 0
|
机器学习/深度学习 算法
数据规范化在深度学习中的重要性
【8月更文挑战第23天】
247 0

热门文章

最新文章