机器算法没什么模拟不了人脑_什么是深度学习? 模仿人脑的算法

机器算法没什么模拟不了人脑

深度学习定义

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

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

[ 也在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现在还有一个运行时。

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

机器算法没什么模拟不了人脑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值