【并行计算框架】——MapReduce——反向传播神经网络模型的MapReduce(MBNN)

  1. MapReduce是一种计算模型,该模型可将大型数据处理任务分解成很多单个的、可以在服务器集群中并行执行的任务。这些任务的计算结果可以合并在一起来计算最终的结果。
  2. 一句话概括:全量数据分散的存储在多个计算机上,多个Map节点分别统计一部分数据的值,Reduce节点汇总Map节点的计算结果。

在这里插入图片描述

反向传播神经网络模型的MapReduce——MBNN

  1. 大数据规模导致很难同时保持效率和准确性
  2. 类似的数据会增加系统负载
  3. 数据集中的噪声也是影响处理结果的重要因素

根据我们的观察,数据具有以下自然属性:大规模、相似度和噪声等。首先,移动数据是大规模的,因为中国移动拥有大量的用户,基数超过1亿。与这些客户相关的信息规模也很大,通常有tb大小。只要这些客户还活跃,他们每天都会产生数据。
其次,大量数据之间存在相似和噪声。原因可能是很多客户都有类似的行为。当这些相似的数据参与反向传播神经网络的分类过程时,对分类精度的贡献很小,并且可能会干扰算法的训练过程。

MBNN训练步骤如下:

  1. 接收训练集的许多子集
  2. 执行多个Map任务。每个Map接收一个训练子集,然后使用这个训练子集计算网络中权重的所有更新值
  3. 执行多个Reduce任务。每个Reduce收集一个权值的更新值,并计算这些值的平均值。然后它输出平均值作为权值的updatevalue
  4. 对网络中的所有权值进行批量更新
  5. 执行步骤2、3和4,直到达到预期的精度

在这里插入图片描述
每一次迭代:

  1. Map节点利用自己拥有的样本,按照公共存储节点里的网络结构与当前的权重参数,计算出梯度
  2. Reduce节点统计所有Map节点计算出的梯度,求出平均梯度,按照平均梯度修改公共存储节点里的网络参数

根据SQL理论,平均梯度实际上是对梯度的一种估计。这样的迭代方式是可以收敛的

算法的局限性:

  1. 每一次迭代,都需要完整的一次MapReduce过程。 而一次MapReduce过程,都需要MapReduce框架进行复杂的初始化操作。
  2. 大量的迭代代表着许多次基于计算机网络的信息传输,而且传输的信息主要是参数的梯度,是一种不大的数据。多次信息交换,不大的数据将积累成大量的数据。将一大块数据分很多次传输,将造成网络的浪费(网络的每次连接将产生传输数据以外的额外控制数据)

优化的方式:

  1. 预训练。将网络中的参数编码,按照遗传算法对网络中的参数进行优化。这样可以使得网络的初始状态处于一种接近稳定的状态,减少梯度迭代法训练的次数。实验结果表示,10次梯度迭代的准确率是43%。5次遗传算法+5次梯度迭代的准确率是96%
  2. 对样本进行预处理,期望通过剔除噪声和重复样本来降低样本总量。根据SQL,噪声越少的样本,达到收敛状态的迭代次数越少

2.预处理步骤:

  1. 得到样本每个维度的取值范围
  2. 把每个维度的范围分成p个部分
  3. 获取训练集样本在p个部分上的特征向量
  4. 将具有相同特征向量的样本分为一组,一组只随机抽取一个作为样本
  5. 得到了预处理之后的样本
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值