深度学习定义

深度学习是机器学习的一种形式,它将数据中的模式建模为复杂的多层网络。 因为深度学习是对问题建模的最通用方法,所以它具有解决诸如传统计算机编程和其他机器学习技术等难题的潜力,例如计算机视觉和自然语言处理。

深度学习不仅可以在其他方法失败的地方产生有用的结果,而且可以比其他方法建立更准确的模型,并且可以减少建立有用模型所需的时间。 但是,训练深度学习模型需要大量的计算能力。 深度学习的另一个缺点是难以解释深度学习模型。

[ 也在InfoWorld上:人工智能,机器学习和深度学习:您需要知道的一切 ]

深度学习的定义特征是,要训练的模型在输入和输出之间具有一个以上的隐藏层 。 在大多数讨论中,深度学习意味着使用深度神经网络。 但是,除了神经网络之外,还有一些算法可以使用其他类型的隐藏层来实现深度学习。

深度学习与机器学习

我提到深度学习是机器学习的一种形式 。 为了符合常见用法,我将非深度机器学习称为经典机器学习

通常,经典的机器学习算法的运行速度比深度学习算法快得多。 一个或多个CPU通常足以训练经典模型。 深度学习模型通常需要硬件加速器(例如GPU,TPU或FPGA)进行培训 ,并需要大规模部署。 没有它们,模型将需要数月的训练。

对于许多问题,一些经典的机器学习算法将产生一个“足够好”的模型。 对于其他问题,过去经典的机器学习算法效果不佳。

深度学习应用

有许多问题的示例,目前需要深度学习才能生成最佳模型。 自然语言处理(NLP)是一个很好的方法。

在2016年秋季,从翻译单词沙拉到生成与人类专业翻译质量相近的句子,谷歌翻译对英语-法语,英语-汉语和英语-日语对的输出质量突然得到了显着提高。 幕后发生的事情是, Google Brain和Google Translate团队将Google Translate从使用旧的基于短语的统计机器翻译算法(一种经典的机器学习算法) 改造为使用经过 Google TensorFlow框架训练并具有词嵌入功能的深度神经网络 。

那不是一个容易的项目。 许多博士级研究人员花了几个月的时间进行模型研究,并花了数千个GPU周来训练模型。 它还促使Google创建一种新型芯片,即Tensor处理单元(TPU),以为Google Translate大规模运行神经网络。

除了Google Translate解决的语言翻译问题外,主要的NLP任务还包括自动摘要,共参考解析,语篇分析,形态学分割,命名实体识别,自然语言生成,自然语言理解,词性标注,情感分析和语音识别。

深度学习应用的另一个很好的例子是图像分类。 由于生物通过视觉皮层处理图像,因此许多研究人员将哺乳动物视觉皮层的结构作为神经网络的模型,以进行图像识别。 生物学研究可以追溯到1950年代。

视觉神经网络领域的突破是Yann LeCun的1998 LeNet-5 ,这是一个七级卷积神经网络 (CNN),用于识别以32x32像素图像数字化的手写数字。 为了分析更高分辨率的图像,LeNet-5网络将需要扩展到更多的神经元和更多的层。

当今最好的深度图像分类模型可以识别高清分辨率的彩色物体。 除了纯深度神经网络(DNN),有时人们还会使用混合视觉模型,该模型将深度学习与执行特定子任务的经典机器学习算法结合在一起。

深度学习解决了除基本图像分类以外的其他视觉问题,包括具有定位的图像分类,对象检测,对象分割,图像样式转换,图像着色,图像重建,图像超分辨率和图像合成。

通过从视频中提取单个帧并对每个帧进行分类,可以将图像分类扩展为视频分类。 可以逐帧跟踪视频剪辑中检测到的对象。

根据Goodfellow,Bengio和Courville在2016年撰写的文章,深度学习已成功用于预测分子将如何相互作用,以帮助制药公司设计新药,搜索亚原子颗粒并自动解析用于构建的显微镜图像人脑的3-D地图。

深度学习神经网络

“人工”神经网络的思想可以追溯到1940年代。 基本概念是,由相互连接的阈值开关构建的人工神经元网络可以像动物大脑和神经系统(包括视网膜)一样学习识别模式。

反向传播

深度神经网络中的学习是通过在训练过程中同时激活两个神经元时加强两个神经元之间的连接来进行的。 在现代神经网络软件中,最常见的问题是使用称为误差 ,反向传播或BP 反向传播的规则来增加神经元之间连接的权重值。

神经元

神经元如何建模? 每个都有一个传播函数,该函数通常使用加权和来转换连接的神经元的输出。 传播函数的输出传递到激活函数,当其输入超过阈值时将激活。

激活功能

在1940年代和1950年代,人工神经元使用阶跃激活功能,称为感知器 。 现代神经网络可能会他们正在使用感知器,但实际上它们具有平滑的激活函数,例如逻辑或乙状结肠函数,双曲正切和整流线性单位(ReLU)。 ReLU通常是快速收敛的最佳选择,尽管如果将学习率设置得太高,它在训练过程中会出现神经元“死亡”的问题。

激活函数的输出可以传递到输出函数以进行其他整形。 但是,输出函数通常是身份函数,这意味着激活函数的输出将传递到下游连接的神经元。

神经网络拓扑

现在我们了解了神经元,我们需要了解常见的神经网络拓扑。 在前馈网络中,神经元被组织为不同的层:一个输入层,任意数量的隐藏处理层和一个输出层,并且每一层的输出仅进入下一层。

在具有快捷连接的前馈网络中,某些连接可以跳过一个或多个中间层。 在递归神经网络中,神经元可以直接或通过下一层间接影响自己。

训练

就像任何其他机器学习一样,进行神经网络的监督学习。 您向网络提供训练数据组,将网络输出与所需输出进行比较,生成误差向量,并根据误差向量对网络进行校正。 在应用校正之前一起运行的一批训练数据称为时期。

对于那些对细节感兴趣的人,反向传播使用误差(或成本)函数相对于模型的权重和偏差的梯度来发现正确的方向,以最大程度地减少误差。 有两件事控制着校正的应用:优化算法和学习速率变量,通常需要较小变量以保证收敛并避免引起ReLU神经元死亡。

优化器

神经网络的优化器通常使用某种形式的梯度下降算法来驱动反向传播,通常采用一种机制来避免陷入局部最小值中,例如优化随机选择的微型批次(随机梯度下降)并将动量校正应用于梯度。 一些优化算法还通过查看梯度历史记录(AdaGrad,RMSProp和Adam)来调整模型参数的学习率。

与所有机器学习一样,您需要对照单独的验证数据集检查神经网络的预测。 否则,您可能会冒险创建仅记住其输入而不学习成为广义预测器的神经网络。

真正的DNN

一个用于实际问题的深层神经网络可能具有多达10个隐藏层。 它的拓扑可能很简单,也可能很复杂。

网络中的层越多,它可以识别的特征就越多。 不幸的是,网络中的层越多,计算所需的时间就越长,并且训练起来就越困难。

深度学习算法

如前所述,大多数深度学习都是通过深度神经网络完成的。 卷积神经网络(CNN)通常用于机器视觉。 递归神经网络(RNN)通常用于自然语言和其他序列处理,例如长短期记忆(LSTM)网络和基于注意力的神经网络。 随机森林,也称为随机决策森林,不是神经网络,可用于一系列分类和回归问题。

CNN神经网络

卷积神经网络通常使用卷积,池化,ReLU,完全连接和丢失层来模拟视觉皮层。 卷积层基本上采用许多小的重叠区域的积分。 池化层执行非线性下采样的形式。 ReLU层应用非饱和激活函数f(x) = max(0,x) 。 在完全连接的层中,神经元与上一层中的所有激活都具有连接。 损失层使用Softmax或交叉熵损失函数进行分类,或使用欧几里得损失函数进行回归,来计算网络训练如何惩罚预测标签与真实标签之间的偏差。

RNN,LSTM和基于注意力的神经网络

在前馈神经网络中,信息从输入经过隐藏层流到输出。 这将网络限制为一次只能处理一个状态。

在递归神经网络中,信息通过一个循环循环,这使网络可以记住最近的先前输出。 这样可以分析序列和时间序列。 RNN有两个常见的问题:爆炸梯度(通过固定梯度很容易固定)和消失梯度(不太容易固定)。

在LSTM中,在两种情况下,网络都可以通过改变权重来忘记(门控)或记住以前的信息。 这有效地为LSTM提供了长期和短期记忆,并解决了梯度消失的问题。 LSTM可以处理数百个过去输入的序列。

注意模块是将权重应用于输入向量的通用门。 分层神经注意编码器使用多层注意模块来处理成千上万的过去输入。

随机森林

另一种深度学习算法(不是深度神经网络)是随机森林或随机决策森林。 随机森林由多层构成,但不是神经元,而是由决策树构成的,并输出各个树预测的统计平均值(分类模式或回归均值)。 随机森林的随机方面是对各个树使用引导聚合(也称为装袋 )并获取特征的随机子集。

深度学习框架

尽管您可以从第一条原则编写深度学习程序,但是使用深度学习框架要高效得多,尤其是考虑到它们已针对GPU和其他加速器进行了优化。 杰出的框架是TensorFlow ,它起源于Google。 TensorFlow最受欢迎的高级API是Keras ,也可以与其他后端框架一起使用。

来自Facebook和其他公司的PyTorch是TensorFlow的强大替代方案,并且具有支持动态神经网络的区别,其中动态拓扑网络可以在各个时代之间变化。 Fastai是使用PyTorch作为后端的高级第三方API。

来自Amazon等公司的MXNet是TensorFlow的另一个强大替代品,声称具有更好的可扩展性。 胶子是用于MXNet优选高级别势在必行API。

来自IBM,英特尔和其他公司的Chainer在某种程度上是PyTorch的灵感来源,因为它可以通过运行来定义神经网络并支持动态神经网络。

尽管上面提到的所有框架主要都是Python,但Deeplearning4j(DL4J)(最初来自Skymind,现在是Apache项目)主要是Java和Scala。 DL4J与Apache Spark和Hadoop兼容。

ONNX最初是作为可互换AI模型的开放生态系统提出的。 除了交换文件格式外,ONNX现在还有一个运行时。

From: https://www.infoworld.com/article/3397142/what-is-deep-learning-algorithms-that-mimic-the-human-brain.html

什么是深度学习? 模仿人脑的算法相关推荐

  1. 基于深度学习的场景分割算法研究综述

    基于深度学习的场景分割算法研究综述 人工智能技术与咨询 来自<计算机研究与发展> ,作者张 蕊等 摘 要 场景分割的目标是判断场景图像中每个像素的类别.场景分割是计算机视觉领域重要的基本问 ...

  2. 基于深度学习的目标检测算法综述(二)

    转自:https://zhuanlan.zhihu.com/p/40020809 基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述(二) 基于深度学习的目标检测算法综述(三) 本文 ...

  3. DeepMind用深度学习模仿大脑推理,预测编码智能推进一大步!

    [新智元导读]预测编码理论认为,大脑的感知.运动控制.记忆及其他高级功能,取决于真实经历和大脑对未来的预测之间的差异.DeepMind新推出的"生成查询网络"模仿了大脑的预测编码机 ...

  4. 浅谈深度学习的基础——神经网络算法(科普)

    浅谈深度学习的基础--神经网络算法(科普) 神经网络算法是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助 ...

  5. 基于FCN,U-Net的深度学习医学影像分割算法(细胞分割算法)以及传统算法分析

    本博文主要分析了基于传统计算机视觉的细胞分割算法和基于深度学习的细胞分割算法.主要针对医学影像分割算法.包括了FCN全卷积网络的细胞分割效果,U-Net细胞分割效果.查阅了采用深度学习分割医学影像的几 ...

  6. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  7. 深度学习中的优化算法串讲

    Datawhale原创 作者:谢文睿,Datawhale成员 寄语:优化算法是一个超参数,一个优化算法不是适合所有损失函数的,没有哪个优化算法是绝对的好或绝对的坏,是要根据损失函数判断的 本文对深度学 ...

  8. 综述 | 基于深度学习的目标检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...

  9. 深度学习之反向传播算法

    深度学习之反向传播算法 直观理解反向传播 反向传播算法是用来求那个复杂到爆的梯度的. 上一集中提到一点,13000维的梯度向量是难以想象的.换个思路,梯度向量每一项的大小,是在说代价函数对每个参数有多 ...

  10. 基于深度学习的目标检测算法综述(从R-CNN到Mask R-CNN)

    深度学习目标检测模型全面综述:Faster R-CNN.R-FCN和SSD 从RCNN到SSD,这应该是最全的一份目标检测算法盘点 基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述 ...

最新文章

  1. 10 行 Python 代码写的模糊查询
  2. 原型继承与属性拷贝的混合应用
  3. Python技术基础知识点:OS模块的应用
  4. 程序员如何保持身心健康
  5. 使用HTML5实现刮刮卡效果
  6. 大学c语言常用语句意思,C语言常用语句
  7. Android笔记 对话框demo大全
  8. 小米MIX 3 5G版入网工信部:更新内存版本
  9. 微观、宏观、精准 多视角估算数据库性能(选型、做预算不求人)
  10. 小米刷机一直在android界面,小米手机变砖怎么办?(小白刷机记)卡在开机怎么办?界面进不去,重启不管用​...
  11. ThinkPad E431 Bluetooth驱动
  12. ME525+刷机2.3.6版本过程分享
  13. 关于旅游景点主题的HTML网页设计——北京景点 7页(带订单购物车)
  14. python画猫hellokitty_如何用铅笔画HelloKitty? 原来是这样的
  15. SCI三区论文大修笔记(已录用)
  16. DRGs与RBRVS的理解
  17. [转]齐善鸿:职业心智训练与管理教育
  18. UE4 UE4使用小技巧——使用上帝视角运行游戏
  19. 网吧克隆——XP系统母盘制作全攻略
  20. Neo4j 重置密码

热门文章

  1. 处理器核(core)、处理器(cpu)区别
  2. 13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
  3. 冯·诺依曼结构:现代计算机的诞生
  4. 目测优衣库董事长只能听到赞扬的声音:3星|《经营者养成笔记》
  5. 介绍谱聚类(spectral clustering)
  6. NetCDF 文件的基本组成部分
  7. python秒表游戏代码_python编程实战:制作秒表程序
  8. 2020-09-07关皓
  9. 一种点到特定高维平面的距离的优化算法
  10. Java基础----【异常、线程】