首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术图文:如何利用 C#实现 误差反向传播 学习规则?

背景

我们在如何利用 C# 对神经网络模型进行抽象?中完成了神经网络的抽象结构:

三个接口:激活函数、有监督学习、无监督学习

接口

三个抽象类:神经元、网络层、网络拓扑

抽象类

我们在如何利用 C# 实现神经网络的感知器模型?中对神经网络的结构进行了扩展,完成了感知器神经网络:

实现了三个接口:利用符号函数和阈值函数实现激活函数接口;利用感知器学习规则实现有监督学习接口。

接口实现

覆写了三个抽象类中的抽象方法:用实体类 继承 ;用实体类 继承 ;用实体类 继承 。

实体类继承

实体类继承

我们在如何利用 C# 实现 Delta 学习规则?中对神经网络进行进一步的扩展。

实现了两个接口:利用Sigmoid函数实现激活函数接口;利用 Delta 学习规则实现有监督学习接口。

接口实现

技术分析

今天,我们进一步扩展神经网络的学习规则,利用误差反向传播学习规则来实现有监督学习接口;增加BP神经网络另外一个常用的Sigmoid函数。

接口实现

有关BP神经网络的原理,参见图文基于Matlab的BP神经网络在语音特征信号识别中的应用,这篇图文中有详细的权值、阈值推导过程。

代码实现

双极性Sigmoid函数

误差反传算法的实现

计算各层的误差与网络的总体误差

计算网络权值和阈值的调整值

调整整个网络的权值和阈值

总结

我们仍然应用基于Matlab的BP神经网络在语音特征信号识别中的应用中的语音信号分类的例子,来说明BP神经网络的应用。

获取数据集的方法

获取输入、输出样本的方法

主应用程序

输入层 24 个神经元

中间层 25 个神经元

输出层 4 个神经元

训练样本 1500 个

测试样本 500 个

最大迭代次数 1000 次

最后得到的准确率为:90.2%,与用Matlab计算的近似。好了,今天就到这里吧!See You!

对了,到目前为止已经有 10 名同学 通过解码Huffman Code得到团队的报名方式。

团队的招新仍在进行中,对我们感兴趣的同学欢迎与我联系,我会亲自带着大家学习,一起成长!

经过8年多的发展,LSGO软件技术团队在「地理信息系统」、「数据统计分析」、「计算机视觉」等领域积累了丰富的研发经验,也建立了人才培养的完备体系,目前深耕的领域为「机器学习与量化金融」,欢迎对计算机技术感兴趣的同学加入,与我们共同成长进步。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190630A035YH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券