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

  最直接因素:

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

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

  

  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. hadoop fs命令

  2. JavaScript时间处理插件

    摘要:代码返回的有两种时间格式  一种是///  另外一种是---分割的 两个接收参数的说明 timestr  是接收的时间  mark是格式   默认返回的格式是///   加上-  返回的格式是- ...

  3. 【RMQ】洛谷P3379 RMQ求LCA

    题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询问的个数和树根结点的序号. 接下来N-1行每 ...

  4. Java设计模式总汇二(小白也要飞)

    PS:上一篇我介绍了适配器设计模式.单例设计模式.静态代理设计模式.简单工厂设计模式,如果没有看过第一篇的小火鸡可以点这个看看http://www.cnblogs.com/cmusketeer/p/8 ...

  5. 【转载】Linux cgroup资源隔离各个击破之 - cpu隔离1

    Linux cgroup 有两个子系统支持CPU隔离.一个是cpu子系统,另一个是cpuset子系统. cpu子系统根据进程设置的调度属性,选择对应的CPU资源调度方法 .1. 完全公平调度 Comp ...

  6. Python 浅析线程(threading模块)和进程(process)

    线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 进程与线程 什么 ...

  7. POI读取excel工具类(xls,xlsx通用)

    package com.boot.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotF ...

  8. 关于乱序(shuffle)与随机采样(sample)的一点探究

    最近一个月的时间,基本上都在加班加点的写业务,在写代码的时候,也遇到了一个有趣的问题,值得记录一下. 简单来说,需求是从一个字典(python dict)中随机选出K个满足条件的key.代码如下(py ...

  9. 2.2 .this的绑定规则

    2.this的绑定规则 1.默认绑定 function foo( ) { console.log(this.a); } var a=1; foo(); 在代码中,foo()函数不带任何修饰的引用进行调 ...

  10. C#初学者们,请离代码生成器远点!!!

    在程序开发的世界里,各路前辈们为了提高所谓的编码速度,搞出了各式各样的代码生成器,来避免所谓的重复的人为机械地粘贴和复制代码,以此来提高生产力. 早几年前,我可能会认为这样的做法真得有用,特别是在编码 ...