热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

人工神经网络(ArtificialNeuralNetwroks)笔记基本的非确定性统计训练算法

在上一篇文章《人工神经网络(ArtificialNeuralNetwroks)笔记-消除样本顺序的BP算法》中修改权重的方法被称为最速下降法。每一次权重的修改都是确定的
在上一篇文章 《人工神经网络(Artificial Neural Netwroks)笔记-消除样本顺序的BP算法 》中 修改权重的方法被称为"最速下降法"。每一次权重的修改都是确定的,权重都会被修改。甚至到最简单的单层感知器也是如此。

但是我们有一个疑问,是否每一次的权重修改都是好的呢?
虽然"最速下降法"能在数学上被证明是每一次都比前一次越来越逼近最优解,但是这个逼近可是一个无休止的过程。而且面对局部最小点的问题,"最速下降法"不一定有足够的能量跳出局部最小点,甚至可能越陷越深。

因此有人提出了非确定性的统计方法。
其基本思想是: 从所给的网络中随机地选取一个联接权重,对该联接权提出一个伪随机的调整量,当用此调整量对所选权重进行了修改后,如果被认为修改了之后改进了网络的性能,则保留此次调整,否则放弃调整。

具体算法流程如下:
1 从样本集S中取一个样本(X,Y)
2 将X输入到网络中,计算出实际的输出O
3 求出网络关于Y,O的误差测度E
4 随机地从 W(1),W(2),....W(L)中选择一个联接权重Wij(P),
5 生成一个小随机数△Wij(P)
6 用△Wij(P)修改Wij(P),
7 用修改后的 W(1),W(2),....W(L)重新计算网络的实际输出 O'
8 求出网络关于Y,O'的误差测度E'
9 如果E'>E,则保留本次对W(1),W(2),....W(L)的修改,否则,根据概率判断本次修改是否有用,如果有用,则保留本次对W(1),W(2),....W(L)的修改,如果认为本次修改无用,则放弃它
10 重复上述过程,直到网络满足要求。

联接权重的修改量到底多大比较好呢?
太小:落到某一个局部最小点的时候很难逃离。
太大:导致在某两个局部最小点之间回来抖动。

解决方法:控制修改量的大小,修改量由大变小(解决太大的问题)
                     允许网络暂时变坏(解决太小的问题)

上面提到了网络的能量,这是引用了 模拟退火算法里面的描述。
下一文章 将 讲述 如何利用模拟退火算法来确定修改量的去留。

转:https://www.cnblogs.com/TtTiCk/archive/2008/08/15/1268928.html



推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
author-avatar
kingkongkoil
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有