[发明专利]一种部分连接多层感知器的图形化设计与实现方法在审

专利信息
申请号: 201811538198.3 申请日: 2018-12-16
公开(公告)号: CN109635932A 公开(公告)日: 2019-04-16
发明(设计)人: 李玉鑑;沈浩;张婷;刘兆英;李冬冬;单传辉 申请(专利权)人: 北京工业大学
主分类号: G06N3/04 分类号: G06N3/04;G06N3/08
代理公司: 北京思海天达知识产权代理有限公司 11203 代理人: 沈波
地址: 100124 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种部分连接多层感知器的图形化设计与实现方法,选择需要训练的数据集,对数据集数据预处理符合网络训练的需要;根据用户画出的网络图形生成对应的数据结构,并检查网络的连接方式是否合法;对网络图结构拓扑排序,根据线性序列执行网络的前向计算,计算出神经元上的输出值x;根据拓扑排序得到的线性序列反向执行网络的反向计算,计算出神经元上的误差值δ;遍历网络中的有向边,计算梯度更新有向边上的权重值w;本发明可以用来训练部分连接的多层感知器,并且通过图形化方法生成网络,无需通过编程生成网络。
搜索关键词: 多层感知器 神经元 图形化设计 线性序列 网络 拓扑 排序 预处理 数据集数据 网络图结构 遍历网络 反向计算 方法生成 连接方式 前向计算 数据结构 梯度更新 网络图形 网络训练 数据集 图形化 有向边 权重 有向 编程 输出 合法 检查
【主权项】:
1.一种部分连接多层感知器的图形化设计与实现方法,其特征在于,该方法包括如下步骤:步骤1:选择训练集,在面板界面选择一种数据集作为神经网络的数据集,可选的数据集大部分都是UCI公开的数据集,本发明自带了Iris、Sonar、Diabetes、Blood等数据集以供部分连接多层感知器模型训练使用;以Iris数据集为例,数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性以及1个标签值,可通过花萼长度、花萼宽度、花瓣长度和花瓣宽带4个属性预测鸢尾花卉属于三个种类中的哪一类;步骤1.1:为了加快训练的收敛速度,对每一个特征做归一化;根据选择的样本,可以选择批梯度下降、随机梯度下降和mini‑batch梯度下降,因为可选的都不是大型的数据,故默认采用随机梯度下降,每次只处理一个样本;为了避免样本顺序固定对训练产生影响,在训练样本之前随机打乱数据集内样本的顺序;步骤1.2:将预处理后样本中的特征值放入数组X中,对应的标签值依次存放另一个数组Y中;针对分类任务,为了让标签值与预测值之间的误差距离计算更加合理,需额外将标签值转成one‑hot编码形式;如果是回归任务,不对标签值做处理;步骤2:构造网络结构,在画板界面中画出符合用户需求的部分连接多层感知器的神经网络结构;步骤2.1:在画图界面按钮区域选择“多层感知器层数”按钮,则出现输入多层感知器层数按钮,输入层数;然后程序会根据整个画图界面的宽度进行均匀分配每层的间距,并根据画图界面的高度合理给出画图界面的初始布局分布;部分连接多层感知器的每一层用一个胶囊表示,在胶囊结构中计算并保存一些向量信息(比如输出值、误差项等),以及与这个胶囊相关的连接信息;步骤2.2:设置各层胶囊中神经元个数,点击胶囊则会弹出界面要求输入对应胶囊内部的神经元个数;步骤2.3:设置各层胶囊的激活函数,胶囊默认不带激活函数;作为输入的胶囊不做激活处理,中间隐藏层的胶囊可以使用relu、sigmoid、tanh等激活函数,输出层胶囊的激活函数如果是分类任务一般会设定为softmax函数,如果是回归任务则不选择激活函数;步骤2.4:部分连接多层感知器的层数和每层胶囊中神经元个数确定之后,点击“部分连接”按钮,则相邻两层胶囊之间形成部分连接;在界面中产生部分连接多层感知器各层之间的连接,可以显示数据流计算的顺序并通过点击有向边图形设定部分连接的属性;部分连接的方式可以是两层神经元之间随机连接,也可以选择一些系统提供的特定的规则连接;随机部分连接根据有向边上设定的连接概率p,对应生成一个mask矩阵,该mask矩阵服从概率为p的Bernoulli分布,该矩阵中只有0和1两个元素,0代表断开两个节点之间的连接,1表示保持原来的连接;步骤2.5:确定形成的网络图中胶囊的计算顺序,主要是根据生成部分连接多层感知器图形过程中产生的依赖关系列表,利用拓扑排序确定计算顺序;步骤3:执行部分连接多层感知器的计算,完成对数据集的训练和测试;步骤3.1:执行前向计算;与全连接形式的多层感知器计算方式不同的是在运算中要利用到与权重相同形状的mask矩阵,通过mask矩阵来控制两层网络之间节点的连接状态;W和b表示部分连接多层感知器中相邻两层之间的权重及偏置,两者都是部分连接多层感知器需要训练的参数;z表示上一层的输出值作为当前层的输入数据经过加权求和的结果,a表示z经过激活函数计算之后的激活值,上标表示在部分连接多层感知器中元素所在的层,全连接的多层感知器的前向计算如下:zl+1=Wlal+bl,al+1=f(zl+1)而部分连接的多层感知器需要先将权值矩阵与对应的mask矩阵做对应元素相乘(Hadamard积);部分连接多层感知器的mask矩阵与dropconnect方法中使用的mask矩阵不同的地方在于部分连接多层感知器中生成的mask矩阵在训练和测试中都是相同的,而dropconnect中mask矩阵在训练阶段中每训练一个batch的数据都要再随机生成一次mask矩阵,并且在测试阶段不再使用mask矩阵,相应的还要对网络中的参数做缩放处理,而部分连接多层感知器在测试阶段不需要做参数的缩放处理;这里mask矩阵用M表示,Hadamard积用·表示,部分连接多层感知器的前向计算如下所示,上标表示这些参数在部分连接多层感知器的第几层:zl+1=(Ml·Wl)al+bl,al+1=f(zl+1)步骤3.2:执行反向计算;找到网络中的输出胶囊,即计算图中最后一个胶囊,利用输出的预测值与对应标签的真实值,先求出最后一层的误差值,最后一层用nl表示,y表示数据样本的真实值,实际表示的是网络对样本的预测值,计算δ的过程其实就是将最后的总误差分摊到网络中每一个节点上,采用平方误差作为损失函数的部分连接多层感知器的最后一层的反向计算公式如下:接着从倒数第二层按倒序一直计算到第二层,W和b表示部分连接感知器相邻两层之间的参数,W和b实际就是整个网络所需要训练的参数,计算公式为:δl=((Wl)Tδl+1)·f'(zl)步骤3.3:计算梯度,ΔW和Δb表示网络训练参数的梯度,在每一次反向传播过程中都以此参数为依据来更新网络,梯度的计算与多层感知器一样:步骤3.4:更新参数值,这里需要再次利用上之前生成的mask矩阵,更新的计算公式如下所示,η为网络的学习率,学习率一般0<η≤1,用于控制网络训练参数更新的步长:Wl=Wl‑η(Ml·ΔWl)bl=bl‑ηΔbl步骤3.5:完成部分连接多层感知器的训练后,在测试集上衡量网络的泛化能力,在测试集上的计算过程与训练过程中的前向计算一致,最后输出训练好的网络在测试集上的正确率。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201811538198.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top