自从学了这个方法,深度学习再也不愁没钱买数据集了

深度学习大牛吴恩达曾经说过:做AI研究就像造宇宙飞船,除了充足的燃料之外,强劲的引擎也是必不可少的。假如燃料不足,则飞船就无法进入预定轨道。而引擎不够强劲,飞船甚至不能升空。类比于AI,深度学习模型就好像引擎,海量的训练数据就好像燃料,这两者对于AI而言同样缺一不可。

在深度学习中,当数据量不大时可能会导致过拟合,使得训练误差很小,但测试误差却特别大。怎么办呢,你又没钱买数据?显然最好的办法(之一,其他方法请参看“当数据量不够大的时候”)就是自己“造”数据——人工增加训练集的大小,也就是Data Augmentation Transformation。

不同的任务背景下,通常我们可以通过图像的几何变换,使用例如剪切、旋转/反射/翻转变换、缩放变换、平移变换、尺度变换、对比度变换、噪声扰动、颜色变换等一种或多种组合数据增强变换的方式来增加数据集的大小。例如假如你的数据集只有10张256*256的图片,那么通过剪切你可以在每张图片上得到32*32=1024张224*224的图片,然后再做一次水平翻转,那么你的数据集就扩大了2048倍,也就是说你现在有了一个20480张图片的数据集。看起来很诱人。那么它的效果如何呢?

(雷锋网注: 几何变换不改变像素值, 而是改变像素所在的位置. 通过Data Augmentation方法扩张了数据集的范围, 作为输入时, 以期待网络学习到更多的图像不变性特征。)

近期加拿大多伦多大学的Salehinejad等人在论文(arXiv:1708.04347v1)中提出了另外一种不同于上面几种的数据增强变换——极坐标变换,方法极为简单,完全可以作为数据增强变换一个案例来介绍。

所谓极坐标变换,就是像素由原来(x, y)的表示通过极坐标变换得到(r, θ)的表示,然后把它表示成一个二维图片。数学知识只涉及这两个高中的数学公式:

用图来表示就是:

例如在一张256*256的图片上,选择圆心任意、半径为256且等分为256条像素辐条(角度变化为2*pi/256)的圆盘来覆盖图片,那么覆盖到像素都将对应一个(r, θ)对,放到二维直角坐标系中就生成了一幅新图。由于极坐标在靠近圆心位置像素粒度较大,而远离圆心位置的像素粒度较小,所以改变圆心位置,将得到不同的图片。

作者选择了两个数据集来进行试验。其中一个是MNIST数据集,共10个类,每个类分别为0-9的手写体数字。(RT为极坐标变换后的对应图片)

另一个是多模医学影像数据集(Multimodal medical dataset),作者共选了9个类。

在实验中作者每个类只有20张图片。也即在数据增强变换之前(original)MNIST-OR数据集有200张图片,MMD-OR有180张图片。作者通过极坐标变换把数据增大了100倍,MNIST-RT有20000张图片,MMD-RT有18000张图片。

随后作者分别选用AlexNet和GoogLeNet两个深度学习模型对以上四个数据集进行训练,其结果则非常喜人。

对比有四:

1、在数据量较小时,AlexNet的表现要比GoogLeNet好;

2、通过数据增强变换后的数据集能够更迅速地收敛,且精度较高;

3、通过数据增强变换后的数据集收敛时涨落较小。

4、对比MNIST数据和多模医学影像数据集,MNIST的两个数据集(OR和RT)精度之间的差别更明显。这可能是因为多模医学影像数据集的图像之间有关联,例如横向腹部磁共振成像和矢状面腹部磁共振成像之间有一定的关联性。

很明显喽,极坐标变换的数据增强变换方式也是很有效的。所以吧,没钱买数据了,不妨试试各种数据增强的变换方法,也可以将各种变换组合使用,那你的数据量将成n次方地增加。

本文作者:camel

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-11-05 12:32:38

自从学了这个方法,深度学习再也不愁没钱买数据集了的相关文章

WannaCry感染文件恢复方法,企业再也不用愁了!

WannaCry勒索软件感染了全球超过30万台计算机,不少朋友周一上班时发现自己的电脑已经感染了WannaCry.虽然现在病毒已经得到控制,但是已经感染的电脑文件要如何恢复? 深入分析WannaCry代码后,我们发现代码中充满了错误,受害者能够利用一些简单命令就恢复文件,企业再也不用愁了! 恢复只读文件 由于恶意软件不可能直接加密或修改只读文件,WannaCry会复制这些文件并创建加密版本.虽然原始文件并没有动,但被赋予一个"hidden"属性,要恢复原始数据仅需受害者恢复其正常属性即

如何在实战路上与时俱进:深度学习最佳实践

自2006年Hinton提出神经网络新的训练方法起,深度学习发展迅速,促使人工智能在图像.语音.自然语言处理等多个领域有了实质性的突破,达到产业应用标准.然而,深度学习作为人工智能领域的一项前瞻技术,实践性强,入门门槛高,关于深度学习的研究与应用,现在仍有很多问题没有找到满意的答案,这些都给深度学习的广泛应用带来挑战.本文旨在提供一份清晰.简洁的深度学习实践说明,以便从事深度学习研究与工程技术人员能够快速掌握深度学习的实际经验. 第一节:深度学习概述 深度学习是模拟人脑进行分析学习的多层神经网络

自然语言理解-从规则到深度学习

1. 引言 自然语言理解是人工智能的核心难题之一,也是目前智能语音交互和人机对话的核心难题.维基百科有如下描述[1]: Natural language understanding (NLU) is a subtopic of natural language processing in artificial intelligence that deals with machine reading comprehension. NLU is considered an AI-hard probl

如何配置一台适用于深度学习的工作站?

问题详情: 如何配置一台适用于深度学习的工作站? 刚买两块Titan Z GPU准备搞搞深度学习,结果原来的工作站功率不够,带不动,所以准备组装一台新工作站.求大神们给点意见,最好给个完整的list,我好照着买,谢谢.(本人新手,也不怎么会组装,最好是半成品机器,然后我组装一下就好的那种) 配置方法: x299配置: 2路GPU配置单: 四路GPU配置单: (1080ti换成Titan也没问题) GPU的选择是重点 GPU的选择: GTX 下面给出1080.1070.1060.Titan X.T

局部连接来减参,权值共享肩并肩(深度学习入门系列之十一)

系列文章: 一入侯门"深"似海,深度学习深几许(深度学习入门系列之一) 人工"碳"索意犹尽,智能"硅"来未可知(深度学习入门系列之二) 神经网络不胜语,M-P模型似可寻(深度学习入门系列之三) "机器学习"三重门,"中庸之道"趋若人(深度学习入门系列之四) Hello World感知机,懂你我心才安息 (深度学习入门系列之五) 损失函数减肥用,神经网络调权重(深度学习入门系列之六) 山重水复疑无路,最快下降

深度学习的这些坑你都遇到过吗?神经网络 11 大常见陷阱及应对方法

如果你的神经网络不工作,该怎么办?本文作者列举了搭建神经网络时可能遇到的11个常见问题,包括预处理数据.正则化.学习率.激活函数.网络权重设置等,并提供解决方法和原因解释,是深度学习实践的有用资料. 如果你的神经网络不工作,该怎么办?作者在这里列出了建神经网络时所有可能做错的事情,以及他自己的解决经验. 忘记规范化数据 忘记检查结果 忘记预处理数据 忘记使用正则化 使用的batch太大 使用了不正确的学习率 在最后层使用了错误的激活函数 你的网络包含了Bad Gradients 初始化网络权重不

独家丨2017全国深度学习技术应用大会回顾:传统的AI研究方法,在DL时代该如何变革?

雷锋网(公众号:雷锋网)按:2016年无疑是深度学习最为火热的一年,深度学习在语音.图像.自然语言处理等领域取得非常突出的成果,成了最引人注目的技术热点之一.雷锋网也报道过多次关于Google.Facebook.微软.百度在内的各大技术巨头都在不遗余力地推进深度学习的研发和应用. 2017年深度学习的势头依旧迅猛,并以更快的速度渗透在各个行业当中,对世界产生深远影响. 深度学习不但使得机器学习能够实现众多的应用,而且拓展了人工智能的领域范围,并使得机器辅助功能都变为可能.其应用领域正在加速渗透到

《TensorFlow技术解析与实战》——1.3 深度学习的入门方法

1.3 深度学习的入门方法 要想入门深度学习,需要两个工具,即算法知识和大量的数据,外加一台计算机,如果有GPU就更好了,但是因为许多入门初学者的条件有限,没有GPU也可以,本书的许多讲解都是基于Mac笔记本完成的. 我把深度学习的入门过程整理成图1-6所示的7个步骤. 下面就来详细介绍一下这7个步骤. 1.学习或者回忆一些数学知识 因为计算机能做的就只是计算,所以人工智能更多地来说还是数学问题[4].我们的目标是训练出一个模型,用这个模型去进行一系列的预测.于是,我们将训练过程涉及的过程抽象成

《TensorFlow技术解析与实战》——1.3 深度学习的入门方法

1.3 深度学习的入门方法 要想入门深度学习,需要两个工具,即算法知识和大量的数据,外加一台计算机,如果有GPU就更好了,但是因为许多入门初学者的条件有限,没有GPU也可以,本书的许多讲解都是基于Mac笔记本完成的. 我把深度学习的入门过程整理成图1-6所示的7个步骤. 图1-6 下面就来详细介绍一下这7个步骤. 1.学习或者回忆一些数学知识 因为计算机能做的就只是计算,所以人工智能更多地来说还是数学问题[4].我们的目标是训练出一个模型,用这个模型去进行一系列的预测.于是,我们将训练过程涉及的