浅谈神经网络训练方法,Deepmind更青睐正向传播

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

雷锋网(公众号:雷锋网)按:本文作者文海宁,银行算法工程师。

深度学习的神经网络训练方法有除了典型的反向传播,也有被Deepmind青睐的正向传播,以及以BAM网络背后的双向传播,本文将对这些训练方法进行简单的探讨,如果你有兴趣,欢迎留言。

1. 典型的BAM网络

深度学习目前非常火爆,追踪溯源,深度学习源于神经网络。BP神经是反向误差训练的典例。因为反向传播需要计算每个参数的梯度,从而能够使用各种梯度下降方法来更新参数。

但是,相比于正向传播,反向传播能解决大部分问题,统领深度学习的天下吗?

双向传播,其中最为典型的还属BAM网络。下图是其简单原理的展现。

当向其中一层加入输入信号时,另一层可得到输出。由于初始模式可以作用于网络的任一层,信息可以双向传播,所以没有明确的输入层或输出层。可将其中的一层称为X层,有n个神经元节点;另一层称为Y层,有m个神经元节点。两层的状态向量可取单极性二进制0或1,也可以取双极性离散值1或-1。如果令由X到Y的权矩阵为W,则由Y到X的权矩阵便是其转置矩阵。

 浅谈神经网络训练方法,Deepmind更青睐正向传播

诚然双向传播要有应用的领域,才能更好地检测它的用途,同时也促进自身的发展。那么,场景来了,在IT运维等服务领域,双向网络是大显身手的时候。在介绍双向网络之前,先卖个关子,我们先对反向传播训练和正向传播训练娓娓道来。

2.反向传播算法—BP神经网络

反向传播算法简称即BP神经网络,是监督算法(数据给出标签)。其目标是:通过更新网络中的每一个权重,使得最终的输出接近于groundtruth,这样就得到整个网络的误差作为一个整体进行了最小化。其中输出层的链式法则的示意图如下:

其中代表输出网络。下图偏导数方程是用delta规则显示的改变可以多大程度上影响总的误差。表示不同神经元的权重。

 浅谈神经网络训练方法,Deepmind更青睐正向传播

金无足赤,反向传播网络也有缺点。因为它是对非线性可微分函数进行权值训练的多层网络。此算法可以使网络权值收敛到一个解,但并不能保证所求为误差超平面的,由此可能是一个局部最小解。

3. 正向传播受到deepmind的青睐

何为正向传播呢?假设上一层结点i,j,k,…等一些结点与本层的结点w有连接,结点w的值如何算?即通过上一层的i,j,k等结点以及对应的连接权值进行加权和运算,最终结果再加上一个偏置项(图中为了简单省略了),最后在通过一个非线性函数(即激活函数),如sigmoid函数,最后得到的结果就是本层结点w的输出。不断迭代此运算,得到输出层结果。如下图:

 浅谈神经网络训练方法,Deepmind更青睐正向传播

话说2016年李世石与AlphaGo的围棋大战吸引了世界人的目光,其实Google 旗下的 DeepMind 早已成为 AI 领域的明星,它将其算法应用到医疗保健行业,还打造了一个分布式的大型深度强化学习系统并将其命名为Gorila,该系统利用Google Cloud平台大幅提高了训练效率,已开始为谷歌的个性化推荐系统服务。

DeepMind实验室有很多应用正向传播的实例。例如强化学习(涉及熟悉的试错学习项目),连续控制问题,如机器人操作和运动。还有很多深度强化学习方法配合正向传播方法使用,可很好的解决蚂蚁踢球、棋类博弈等问题。

生活在大数据时代的小伙伴们,软件开发已经百花齐放、百家争鸣了,而基础的运维行业因为大数据高并发的压力,日趋需要引入更加完善的AI等算法来给基础机器集群提供更好地服务,给到客户更优质的体验。IOT的发展链接了软硬件,并在智能物联领域发挥着自己独特的作用。其他领域暂且不聊,我们聊聊比较容易入门的运维行业中双向传播的应用。

双向神经网络的预测功能目前是大势所趋。实时告警的精髓在于在告警信息没有发出时,预测到相关集群跑的应用的异常,即指标异常。下图反映的是集中监控平台基线告警的实例。时间粒度为每10分钟预测异常,其中红色为A指标实际值,蓝色为B指标实际值。蓝色区间为基线。

此处注明基线的含义,是包含了上基线和下基线,即一个区间。大多数小伙伴采用的方法是离线计算,用置信区间即可以确定一个范围。但是此方法无法做到实时告警。下图就是利用双向神经网络的威力,做到的10分钟粒度实时告警。

浅谈神经网络训练方法,Deepmind更青睐正向传播 

以一个交易类型的指标为例,用R语言做一个简单的实例,并说明双向神经网络是如何工作的。如图7.1—7.4日和8.2-8.3日的总机基线数据缺失,8.9日(七夕)总机基线值达到13252.0,属于节假日类爆发性数据。

 浅谈神经网络训练方法,Deepmind更青睐正向传播

单独看看某银行类手机银行业务的总机交易量的数据,如下图: 

 浅谈神经网络训练方法,Deepmind更青睐正向传播

看到这么有规律的数据,是不是跃跃欲试呢?想知道原理吗?

下图是神经网络最基本的规则:输入层、隐含层、输出层。当我们把银行交易量的数据拿到手后,根据自己的需要进行维度的分析与处理,分别解析入库存储完。输入的标签维度即为输入层,输出层据实际需要维度而定。隐含层就是技巧了。

 浅谈神经网络训练方法,Deepmind更青睐正向传播

双向传播在单程的基础上,通过前预测后,后预测前,建立一一对应,互相验证的结构。可以将隐含层数目和隐含因子数目调节的更加精准。

首先展示一下具体预测值(绿线)与实际值(黑线)的对比

 浅谈神经网络训练方法,Deepmind更青睐正向传播

其次是平稳性波动区间:黑色圆圈是实际值,绿线是上下基线。采集数据时正常的工作日1天,144个10分钟预测值合成的总1天的预测值。

 浅谈神经网络训练方法,Deepmind更青睐正向传播

最后是爆发性波动区间

 浅谈神经网络训练方法,Deepmind更青睐正向传播

注: 以上所有图横轴是时间转为的时间戳,纵轴是交易量数据。

 双向神经网络的训练过程很有趣,首先要找到某些特定的神经元再进行权值处理,我们称这些神经元为获胜神经元。获胜神经元在输入神经元中找,若输入神经元构成的向量未归一化,可用欧氏距离度量相似度;若归一化即可使用内积法。对获胜神经元权值进行调整时,遵循一下公式:

        浅谈神经网络训练方法,Deepmind更青睐正向传播     ,w其中是权值,α是系数,为调整的自变量。

训练次数与调整个神经元权值的原理如下图:

浅谈神经网络训练方法,Deepmind更青睐正向传播


每次更新权值,在几何意义里就是旋转一定的角度。确定好输入层,隐含层采用双向传播训练出的参数作为输入,就递送给输出层输出结果啦。

4. 双向传播能带来什么?

神经网络模式学习训练不再需要同步,可以异步。独立的模式使得可以根据实际情况优化调控每个模块的调用时间。这样当集群压力大的时候,可以动态负载分配资源。这是这个成果最大的意义,将能够因此构建出完全不一样的神经网络模型,训练方式发生完全的改变。

例如各种银行券商都很关注运维的人力问题,如何从24小时值班一刻不离,转换为分清楚机器的生命周期(大致分为上线、部署、投产、下线),从而针对性对投产的机器做重点监控,是一个非常有收益的话题。在如今大部分互联网企业引进六西格玛管理方法来,节约成本已收效显著。用双向传播训练可以进一步在预测领域为监控定为运维服务做的更好。

大家都可以注意到,我们做出的是一个波动区间。输入的维度与输出的维度决定整个问题的目标,隐含层决定了准确度。预想告警告的准确,必然先将数据采集的准确。但是此度无法很好的衡量。大家都处于大数据试水阶段。

在优化过程中,我们会继续考虑维度因素对准确度的影响,减少误报漏报等告警故障。同时银行各套业务系统都是有N个9的准确度衡量的,全年告警时长不超过十几分钟。我们的任务很艰巨。

双向神经网络值得改进探索的地方很多,大家快来加入大数据时代,有别于蓬勃竞争激烈的软件开发之外,基础而充满挑战的IT运维欢乐大家庭吧。

雷锋网注:本文为雷锋网独家约稿文章,未经授权,拒绝转载。


本文作者:汤姆克鲁斯


本文转自雷锋网禁止二次转载,原文链接

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
120 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
65 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
62 3
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
61 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 算法 TensorFlow
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
学习率是深度学习中的关键超参数,它影响模型的训练进度和收敛性,过大或过小的学习率都会对网络训练产生负面影响,需要通过适当的设置和调整策略来优化。
379 0
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
|
2月前
|
机器学习/深度学习 计算机视觉
TPAMI 2024:计算机视觉中基于图神经网络和图Transformers的方法和最新进展
【10月更文挑战第3天】近年来,图神经网络(GNNs)和图Transformers在计算机视觉领域取得显著进展,广泛应用于图像识别、目标检测和场景理解等任务。TPAMI 2024上的一篇综述文章全面回顾了它们在2D自然图像、视频、3D数据、视觉与语言结合及医学图像中的应用,并深入分析了其基本原理、优势与挑战。GNNs通过消息传递捕捉非欧式结构,图Transformers则结合Transformer模型提升表达能力。尽管存在图结构构建复杂和计算成本高等挑战,但这些技术仍展现出巨大潜力。论文详细内容见:https://arxiv.org/abs/2209.13232。
100 3
|
3月前
|
安全 C#
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature
【9月更文挑战第24天】近年来,深度学习在人工智能领域取得巨大成功,但在连续学习任务中面临“损失可塑性”问题,尤其在深度强化学习中更为突出。加拿大阿尔伯塔大学的研究人员提出了一种名为“持续反向传播”的算法,通过选择性地重新初始化网络中的低效用单元,保持模型的可塑性。该算法通过评估每个连接和权重的贡献效用来决定是否重新初始化隐藏单元,并引入成熟度阈值保护新单元。实验表明,该算法能显著提升连续学习任务的表现,尤其在深度强化学习领域效果明显。然而,算法也存在计算复杂性和成熟度阈值设置等问题。
71 2
|
2月前
|
机器学习/深度学习 算法
【机器学习】揭秘反向传播:深度学习中神经网络训练的奥秘
【机器学习】揭秘反向传播:深度学习中神经网络训练的奥秘
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。