深度学习的核心:掌握训练数据的方法

来源:云栖社区

概要:今天我们将讨论深度学习中最核心的问题之一:训练数据。


Hello World!


今天我们将讨论深度学习中最核心的问题之一:训练数据。深度学习已经在现实世界得到了广泛运用,例如:无人驾驶汽车,收据识别,道路缺陷自动检测,以及交互式电影推荐等等。


我们大部分的时间并不是花在构建神经网络上,而是处理训练数据。深度学习需要大量的数据,然而有时候仅仅标注一张图像就需要花费一个小时的时间!所以我们一直在考虑:能否找到一个方法来提升我们的工作效率?是的,我们找到了。



现在,我们很自豪的将Supervisely令人惊叹的新特性公诸于世:支持AI的标注工具来更快速地分割图像上的对象。


在本文中,我们将重点介绍计算机视觉,但是,类似的思路也可用在大量不同类型的数据上,例如文本数据、音频数据、传感器数据、医疗数据等等。


重点:数据越多,AI越智能


让我们以吴恩达非常著名的幻灯片开始,首先对其进行小小的修改。


深度学习的表现优于其它机器学习算法早已不是什么秘密。从上图可以得出以下结论。


结论 0:AI产品需要数据。

结论 1:获得的数据越多,AI就会越智能。

结论 2:行业巨头所拥有的数据量远超其它企业。

结论 3:AI产品的质量差距是由其所拥有的数据量决定的。


因此,网络架构对AI系统的表现影响很大,但是训练数据的多少对系统表现的影响最大。致力于数据收集的公司可以提供更好的AI产品并获得巨大的成功。


常见错误:AI全都是关于构建神经网络的。


如上图所示,当人们一想到AI,就会想到算法,但是也应该考虑到数据。算法是免费的:谷歌和其他巨头更倾向于向世界分享他们最先进的(state-of-the-art)研究成果,但是他们从不会共享数据。



许多人已经跳上了人工智能炒作的列车,并且创造了极棒的构建和训练神经网络的工具,然而关注训练数据的人却少的可怜。当企业打算将人工智能转换成实际应用时,会倾尽全部工具用于训练神经网络,却没有用于开发训练数据上的工具。


吴恩达说论文已经足够了,现在让我们来构建AI吧!


好主意,我们完全赞同。目前有许多论文和开源成果论述了最先进的(state of the art )且涵盖所有的实际应用的神经网络架构。想象一下,你获得了一个价值10亿美元的新想法。首先想到的肯定不会是:我将使用哪种类型的神经网络?最有可能的是:我在哪里可以得到能建立MVP的数据?



让我们来寻找一些有效的方法训练数据,可行的方法如下:


1.开源数据集。深度神经网络(DNN)的价值是用于训练数据,在计算机视觉研究中,大多数可用数据都是针对特定研究小组所研究的课题而设计的,通常对于新研究人员来说,需要搜集更多额外的数据去解决他们自己的课题。这就是在大多数情况下开源数据集并不是一个解决方案的原因。


2.人工数据。它适用于类似OCR文字识别或者是文本检测,然而很多实例(如人脸识别,医学影像等)表明人工数据很难甚至是不可能产生,通常的做法是将人工数据和带标注的图像相结合使用。


3.Web。自动收集高质量的训练数据是很难的,通常我们会对收集的训练数据进行修正和过滤。


4.外面订购图像标注服务。一些公司提供这样的服务,我们也不例外。但其很大的缺点是不能进行快速的迭代。通常,即使是数据专家也不确定如何标注。通常的顺序是做迭代研究:标注图像的一小部分→建立神经网络架构 →检查结果。每个新的标注都将会影响后续的标注。


5.手动标注图像。仅适用于你自己的工作,领域内的专业知识是很关键的。医学影像就是个很好的例子:只有医生知道肿瘤在哪里。手动注解图像这个过程很耗时,但是如果你想要一个定制化的AI,也没有其他办法。


正如我们所看到的,其实并没有万能方法,最常见的方案是创建我们自己任务特定的训练数据,形成人工数据,如果可能的话再整合到公共数据集中。这其中的关键是,你必须为特定的任务建立自己独一无二的数据集。


让我们深入学习来构建深度学习


深度学习接近于数据匮乏,且其性能极度依赖于可供训练数据的数量。


通过实例我们可以看出标注的过程有多困难。这里是标注过程所花费时间的一些原始数据,例如使用Cityscapes数据集(用于无人驾驶),在对Cityscapes数据集中单个图像的精细像素级的标注平均需要花费1.5h,如果标注5000个图像,则需要花费5000*1.5=7500h。假设1h=$10(美国最低工资),那么仅仅是标注该数据集就需要花费约$7.5万左右(不包括其他额外的成本)。同样吃惊的是,像这样一家拥有1000名做无人驾驶图像标注员工的公司,只不过是冰山一角。


神经网络能否帮助我们提高图像标注的效率呢?我们可不是第一个试图回答这一问题的人。


半自动化实例标注很早就开始使用了, 有很多经典的方法可提高标注的效率,如超像素块算法(Superpixels),分水岭算法(Watershed),GrabCut分割算法等。近几年,研究人员试图用深度学习完成这一任务(link1, link2, link3),这些经典的算法有很多缺陷,需要很多超参数对每一幅图像进行检索,难以对结果进行标准化和修正。最新的基于深度学习的成果要好很多,但在大多情况下这些成果是不开源的。我们是第一个为每个人提供基于AI的标注工具的人,我们自己独立设计了与上边三个links概念类似的神经网络架构。它有一个很大的优势:我们的神经网络不需要对对象实例进行分类。这就意味着,可以对行人、汽车、路面上的凹陷处、医学影像上的肿瘤、室内场景、食物成分、卫星上的物体等等进行分割。


那么,它是如何工作的呢?如下图所示:



你只需要剪裁感兴趣的对象,然后神经网络将会对其进行分割。人机交互非常重要,你可以点击图像的内部和外部标签进行修正错误。


语义分割是将图像划分为多个预定义语义类别的区域,与它不同的是,我们的交互式图像分割旨在根据用户的输入提取其感兴趣的对象。


交互式分割的主要目标是根据用户最少的操作,即可精确的提取对象以改善整体的用户体验,因此我们大大提高了标注的效率。


这是我们的第一次尝试,当然在有些情况下,好的标注依然会有缺陷。我们会不断的提高质量,并做出适用于领域适应性的简单方法:在不编码的情况下,为适应内部特定的任务自定义工具。


结语


数据是深度学习的关键,训练数据是费时和高代价的。但是我们和深度学习的团体积极尝试着去解决训练数据的问题,并且成功的迈出了第一步,希望能够在以后提供更好的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python停止运行tensorflow_Tensorflow 开启训练后卡死

毕设做深度学习的课题,使用到了TensorFlow,但训练时出现了问题:跑脚本开启训练之后,跑完不到100次就会卡死,然后显示python已停止工作这是我的训练的代码# 导入数据集import load_record# 导入TensorFlow并创建Session…

Struts2自定义标签(template)——示例

来源:http://www.blogjava.net/natlive/archive/2009/05/21/271890.html Struts2 的UITag原理: Struts2 UITag分三部份组成,一部份用于定义Tag的内容与逻辑的UIBean,一部份用于定义JSP Tag,也就是平时我们定义的那种&…

详解5G的六大关键技术

来源:电子产品世界 概要:在5G研发刚起步的情况下,如何建立一套全面的5G关键技术评估指标体系和评估方法,实现客观有效的第三方评估,服务技术与资源管理的发展需要,同样是当前5G技术发展所面临的重要问题。 …

mysql 懒加载数据_jpa如何懒加载大字段,懒加载之后又如何获取懒加载字段

前言:对于大字段,我们在查询列表的时候不需要查询,但是修改的时候有需要展示大字段内容,怎么办问1.jpa如何懒加载大字段?即查询列表的时候不查询出来问2.懒加载之后又如何获取懒加载字段。比如,在后台修改的…

为什么说特斯拉研发自动驾驶AI芯片应该引起注意?

来源:36Kr 概要:对于特斯拉而言,研发这款芯片配套算法本质上还是对率先将自动驾驶汽车商业化节点的争夺。 特斯拉Model 3的量产问题仍未彻底解决,CEO Elon Musk又抛出了自研自动驾驶芯片的重磅新闻。 Elon Musk和特斯拉Autopilo…

displaytag 相关

1、获取某列&#xff08;如&#xff1a; id&#xff09;的值 struts 2: <display:table name"usersInfo" id"tabrow" pagesize"${pageSize}" requestURI"web/sys/userManager/UserQuery.action" class"scroll_its" styl…

stm32usb做虚拟串口和键盘_关于stm32f103的USB虚拟串口程序移植

手边有个项目要用到USB传数据到主机&#xff0c;虽然有很多种方式&#xff0c;但最后还是选择了USB虚拟串口模式&#xff0c;将数据上传至pc端&#xff1b;然而这就涉及到了移植问题&#xff0c;在keil下官方已经给出了一个完整的USB TO VCOM的demo&#xff0c;但在我的主机上装…

4篇Nature同时揭示DNA自组装技术,离人造生命又近了一步

来源&#xff1a;刘盼科学网博客 概要&#xff1a; 科学家一直渴望利用自组装来构建人造物体&#xff0c;以达到细胞或细胞器的尺寸和复杂性&#xff0c;以便为研究&#xff0c;工程和医学应用构建合成的细胞机器。 iNature&#xff1a;自组装过程以各种形式存在于自然界中&…

均方距离计算公式_均值、方差、均方值、均方差计算

1、均值 均值表示信号中直流分量的大小,用E(x)表示。对于高斯白噪声信号而言,它的均值为0,所以它只有交流分量。 2、均值的平方 均值的平方,用{E(x)}^2表示,它表示的是信号中直流分量的功率。 3、均方值 均方值表示信号平方后的均值,用E(x^2)表示。均方值表示信号的平均功…

推动大数据和AI应用场景的落地,加速实现与产业融合。

来源&#xff1a;猎云网 概要&#xff1a;在新时代下&#xff0c;如何利用大数据与人工智能技术&#xff0c;大幅提升数据效率与业务决策&#xff0c;化数据新技术力为业务新能力&#xff0c;化业务新能力为商业新物种&#xff0c;成为各行各业在未来生存下去的关键。 今日&am…

sql无法写入mysql_无法通过写入mysql数据库pandas.to\u sql使用sqlalchemy,但不能通过没有pandas的sqlalchemy...

我正在尝试将数据帧写入MySQL表。这是我的代码&#xff1a;import pandas as pdimport sqlalchemyconnectString"""mysqlpymysql://userName:passWordhostIP/schema"""engine sqlalchemy.create_engine(connnectString)connectionengine.connec…

web.config 指定的默认页失效

web.config 指定的默认页失效 解决方法&#xff1a; IIS 配置如下&#xff1a;

CCF大数据专家委:2018年大数据发展趋势预测

来源&#xff1a;大潘点点 概要&#xff1a;2018年大数据发展趋势预测 1、机器学习继续成为大数据智能分析的核心技术 2、人工智能和脑科学相结合&#xff0c;成为大数据分析领域的热点 3、数据科学带动多学科融合 4、数据学科虽然兴起&#xff0c;但是学科突破进展缓慢 5、推动…

connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL

在开始介绍之前&#xff0c;首先来看看官方对Entity Framework的解释&#xff1a;Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the…

在SQL Server中用好模糊查询指令LIKE

来源&#xff1a;http://www.itpapa.com/forum.php?modviewthread&tid719 查询是SQL Server中重要的功能&#xff0c;而在查询中将Like用上&#xff0c;可以搜索到一些意想不到的结果和效果&#xff0c;like的神奇之处在于其提供的模糊查询功能&#xff0c;通过与它相匹配…

学界 | OpenAI 发布稀疏计算内核,更宽更深的网络,一样的计算开销

作者&#xff1a;杨晓凡 概要&#xff1a;OpenAI 的研究人员们近日发布了一个高度优化的 GPU 计算内核&#xff0c;它可以支持一种几乎没被人们探索过的神经网络架构&#xff1a;带有稀疏块权重的网络。 OpenAI 的研究人员们近日发布了一个高度优化的 GPU 计算内核&#xff0…

java三态_Java中对象的三种状态

Java中的对象的三种状态是和垃圾回收紧密相关的&#xff0c;因此有必要深究。状态一&#xff1a;可触及态&#xff1a;从根节点开始&#xff0c;可以搜索到这个对象&#xff0c;也就是可以访问到这个对象&#xff0c;也有人将其称为可达状态。状态二&#xff1a;可复活态&#…

Java 实现sha_加密算法 MD5 和 SHA 的 JAVA 实现

首先先简单的介绍一下MD5 和 SHA 算法然后看一下在 java.security.MessageDigest (信息摘要包下) 如何分别实现 md5 加密 和 sha 加密最后在看一下 使用httpclient包 依赖下的 commons-codec-org. 包 下的apache.commons.codec.digest.DigestUtils 这个工具类 是如何快速…

java 操作db2_java操作DB2,增删改查

//:Db2ConnTest/***功能&#xff1a;实现连接DB2数据库&#xff0c;并实现基本获取数据功能*jiangbin*/import java.sql.*;import java.util.*;SuppressWarnings("unchecked")public class Db2ConnTest{Connection conn;Statement stat;ResultSet rs;ResultSetMetaDa…