深度学习和神经网络,在此技术背后的理念,已经发展了好几十年了,为何现在流行起来了?

  最直接因素:

    将帮助你在自己的组织中,发现好机会,来应用这些东西

为什么深度学习这么厉害?

  

  x轴表示完成任务的数据数量,y轴代表机器学习算法的性能,比如垃圾邮件过滤的准确率、广告点击预测的准确率、用于人工智能判断其他车辆的位置的神经网络准确率

  传统机器学习算法,比如支持向量机,或logistic回归,作为数据量的一个函数,它的性能一开始,随增加数据时会上升,但是一段时间之后,它的性能进入平台期(天花板),假如水平轴拉的很长很长,因为这些模型无法处理海量数据。而在过去的20年,在我们社会中,遇到的的问题,只有相对较少的数据量,数据化社会的到来,现在收集到海量数据轻而易举

  人类花了很多时间在数字王国中,在电脑上、在网站上、在手机软件上数字设备上的活动都能创造数据,同时也归功于便宜的相机,以及物联网中各种传感器,我们收集到越来越多数据,过去20年中,我们收集到了大量的数据,远超传统学习算法能发生作用的规模

  神经网络模型中,我们发现,如果你训练一个小型的神经网络 ,一个中等的神经网络,训练一个大型的额神经网络,性能会这样,越来越好

  注意两点,一点是,如果你想达到这么高的性能的水平,有两个条件,第一个是需要训练一个规模足够长度的神经网络,以发挥数据规模巨大的优点,另外,要到x轴的这个位置,因此我们经常说,规模一直推动着深度学习的进步,规模不仅仅是神经网络的规模,我们需要一个有许多隐藏单元的神经网络,有很多参数和很多连接,而且还有数据的“规模”。事实上,要在神经网络上获取更好的表现,在今天最可靠的手段,往往就是要么训练一个更大的神经网络,要么投入更多的数据,更多的数据只能在一定程度上起作用,因为最终你耗尽了数据或者最终你的规模太大,需要训练时间太久,但提升规模,已经让我们在深度学习的世界中获得大量进展。为了使这个图从技术上,更准确一点,我还要加点说明,x轴写明了数据量,技术点来说,这是“带标签的数据”量。带标签的数据,在训练样本时,我们有输入x和标签y,使用小写字母m,表示训练集规模或者说训练本的数量,这个小写的字母m,就是x水平轴,这个图形中,还隐藏着一条信息,关注训练集不大的这一段,各种算法的性能相对排名,并不是很确定,当训练集不大的时候,效果取决于你手工设计的组件会决定最终的表现,因此很有可能假如有些人训练出一个svm,可能因为手工设计组很厉害,有些人训练的规模会大一些,可能训练集不大的时候,svm表现更好,训练集不大的时候,各种算法之间的优劣,并没有很明确,最终的取决于手工设计组件的技能,以及算法处理方面的一些细节,只有在大数据领域,非常庞大的训练规模,也就是m值越大,我们才能看见神经网络,稳定的领先其他算法

  

  在深度学习崛起的初期,是数据和计算能力规模的进展,训练一个特别大的神经网络的能力,无论是在cpu还是Gpu上,是这些发展让我们取得了巨大的进步。但是渐渐的。尤其是在最近这几年,我们也见证了,算法方面的极大创新,不可忽略算法方面的巨大贡献,有趣的是,许多算法方面的创新,都是为了让神经网络运行的更快

  

  列举一个例子,神经网络方面取得巨大突破是,从sigmoid函数,转换到RrLu函数,使用sigmoid函数,机器学习问题是,在整个sigmoid函数x大于0的区域,sigmoid函数的斜率梯度会接近于0,所有学习变得非常缓慢,因为用梯度下降法时,徒弟接近0时,参数会变化的很慢,学习也变得很慢,而通过激活函数,神经网络使用Relu函数——修正新单元,它的梯度,对所有为正值的输入,输出都是1,因此梯度不会逐渐趋向0,而这里的梯度,这条线的斜率,在这左边为0, 我们发现,只需要将sigmoid函数转换成RrLu函数,便能是的“梯度下降法”运行的更快,有点简单的算法创新,但是最终算法创新所带来的影响,是增加计算速度,也就是下面这个图的循环越快

  还有很多这样的例子,我们通过改变算法,使得代码运行的更快,这也使得我们,能够训练规模更大的神经网络或者在合理的时间内完成计算即使在数据量很大网络也很大的场合。快速计算很重要的另外一个原因是训练神经网络的的过程,很多时是凭直觉,有了新想法,关于神经网络架构的想法,然后写代码实现你的想法,然后跑一下实验,可以告诉你,你的神经网络效果有多好,知道结果之后再回去改,去改你的神经网络中的一些细节,然后你不断重复这个循环。当你的神经网络需要很长时间去训练,需要很长时间才能走完一圈循环的话,在实现神经网络时,迭代速度对你的效率影响巨大,如果你有一个想法,直接去试试,10分钟后就能看到结果或者最多花上一天,如果你的神经网络,用了一个月的时间,有时候确实需要这么久,如果你能很快的得到结果,比如10分钟或者一天内,你可以尝试更多的想法,那你很可能发现,适合你的应用的神经网络,所以计算速度的提升,真的有帮助提高迭代速度,让你更快的得到实验结果,这也同时帮助了神经网络从业人员和有关研究人员在深度学习的工作中,迭代的更快,也能更快的改进你的想法,所有极大的额推动了整个深度学习社区的研究,快到令人难以置信。人们一直在发明新的算法,持续不断的进步,这些力量支持了深度学习的崛起,这些力量不断发挥作用,让深度学习更进一步。

  我们看数据,我们的社会还会产生更多的数字化数据,我们看计算GPU这类专用硬件还在持续发展,网络速度更快,各种硬件更快,我们很有信心,可以实现超大规模神经网络的能力,或者从计算能力这个角度看,也在持续发展,深度学习,依赖于算法创新,也会持续进步很多年。

AI_深度学习为何兴起?的更多相关文章

  1. AI_深度学习概论

    什么是是神经网络? 假如有6间房屋的数据集,已知房子的面积,单位是平方米或平方英尺,已知房子的价格.如果通过这6间房子的价格和房子的面积,预测房子的价格,首先要建立起一个数据模型 ,x轴为价格,y轴为 ...

  2. 02基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍

    人工智能之父麦卡锡给出的定义 构建智能机器,特别是智能计算机程序的科学和工程. 人工智能是一种让计算机程序能够"智能地"思考的方式 思考的模式类似于人类. 什么是智能? 智能的英语 ...

  3. 深度学习系列 Part (1)

    传统机器学习的回顾 近年来,深度学习的概念十分火热,人工智能也由于这一技术的兴起,在近几年吸引了越来越多的关注.我们这里,将结合一些基本的用例,简要的介绍一下这一新的技术. 我们首先需要明确人工智能. ...

  4. 【深度学习笔记】(一)TensorFlow安装及环境搭建

    在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学 ...

  5. 深度学习的异构加速技术(一):AI 需要一个多大的“心脏”?

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:kevinxiaoyu,高级研究员,隶属腾讯TEG-架构平台部,主要研究方向为深度学习异构计算与硬件加速.FPGA云.高速视觉感知等方向 ...

  6. Video Target Tracking Based on Online Learning—深度学习在目标跟踪中的应用

    摘要 近年来,深度学习方法在物体跟踪领域有不少成功应用,并逐渐在性能上超越传统方法.本文先对现有基于深度学习的目标跟踪算法进行了分类梳理,后续会分篇对各个算法进行详细描述. 看上方给出的3张图片,它们 ...

  7. Android进阶 | 摆脱斗图 | 行业交流 | 深度学习 | 付费

    Android进阶 | 摆脱斗图 | 行业交流 | 深度学习 | 付费 其实在很早的时候我就有想过,是不是退出一些群,因为群太多了,里面的水友也多,基友也多,就难免会水起来,这样既耽误学习又耽误工作, ...

  8. NLP&深度学习:近期趋势概述

    NLP&深度学习:近期趋势概述 摘要:当NLP遇上深度学习,到底发生了什么样的变化呢? 在最近发表的论文中,Young及其同事汇总了基于深度学习的自然语言处理(NLP)系统和应用程序的一些最新 ...

  9. Deep Learning.ai学习笔记_第一门课_神经网络和深度学习

    目录 前言 第一周(深度学习引言) 第二周(神经网络的编程基础) 第三周(浅层神经网络) 第四周(深层神经网络) 前言 目标: 掌握神经网络的基本概念, 学习如何建立神经网络(包含一个深度神经网络), ...

随机推荐

  1. 在Ubuntu14.04上搭建自己的OpenVPN服务器并通过它上网

    背景 学校宿舍端口可以配置静态IP连校内网,也可以连到实验室的服务器:实验室的服务器可以连外网:但宿舍要连外网就要花钱买PPPoE账号了.作为壮哉我大计院的一员,本着发扬专(neng)业(sheng) ...

  2. linux下centos6.8相关配置,以及音频相关配置

    一:安装上传下载命令 1:cd /tmp 2:wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 3:tar zxvf lrzsz-0. ...

  3. HTML5——localStorage

    html5的学习,忘记的差不多了,特地拿出来重新记录一下,从它的本地存储开始吧! 假设这样的html结构: <div id= "one_storage" class=&quo ...

  4. js中var,let,const理解

    var变量提升: 解释:在声明a之前输出a,因为a是使用var声明变量得到提升,解释为下句 var a: console.log(a) a = 1; var声明会提到最上面的位置,但是赋值的位置还是当 ...

  5. Java实现 中文转换成Unicode编码 和 Unicode编码转换成中文

    想要实现中文字符转换为Unicode编码的话主要用到的是一个这样的包,自己可以去API文档里面查看下的 java.util.Properties; 直接进入主题吧,主要是 package Test01 ...

  6. 异常笔记--java编程思想

    开一个新的系列,主要记一些琐碎的重要的知识点,把书读薄才是目的...特点: 代码少,概念多... 1. 基本概念 异常是在当前环境下无法获得必要的信息来解决这个问题,所以就需要从当前环境跳出,就是抛出 ...

  7. JavaScript细节成败

    1.var 众所周知var用来定义变量 如 undefined,number,string,bool,array,function,object,null. 但有时候为了省事,就会出现一些内存泄露的情 ...

  8. 使用Anaconda搭建TensorFlow-GPU环境

    前言: 对于深度学习来说,各种框架torch,caffe,keras,mxnet,tensorflow,pandapanda环境要求各一,如果我们在一台服务器上部署了较多的这样的框架,那么各种莫名的冲 ...

  9. atom编辑器启动后文件不能编辑的解决办法

    今天更新了atom,并且安装了很多插件,突然发现所有页面不能编辑了,如图 这个光标块会自动跳到单词后面,后来发现按一下键盘的字母a就变成正常光标了,至于原因,折腾了一个小时也没发现,后来百度到用Ctr ...

  10. jQuery判断Dom对象是否存在

    我们时常要检测一个DOM对象是否为空. var $jObject = $('#btn'); alert($jObject ); 我们会发现,$jObject 永远不会为空.为什么呢?$ 方法查找对象, ...