随机化神经网络输入顺序的影响

2023-12-15

在我的高级算法和数据结构课程中,我的教授要求我们选择任何我们感兴趣的主题。他还告诉我们要研究它并尝试实施解决方案。我选择神经网络是因为它是我长期以来想学习的东西。

我已经能够使用神经网络实现 AND、OR 和 XOR,该神经网络的神经元使用阶跃函数作为激活器。之后,我尝试实现一个反向传播神经网络,学习识别 XOR 运算符(使用 sigmoid 函数作为激活器)。通过使用 3-3-1 网络(输入层和隐藏层有 1 个偏差,权重随机初始化),我能够在 90% 的情况下实现这一目标。在其他时候,它似乎陷入了我认为的局部最小值,但我不确定(我之前问过这方面的问题,人们告诉我不应该有局部最小值)。

在 90% 的时间里,我一直按以下顺序呈现我的输入:[0, 0], [0, 1], [1, 0], [1, 0]预期输出设置为[0, 1, 1, 0]。当我一致地以相同的顺序呈现值时,网络最终会学习该模式。实际上,我以什么顺序发送它并不重要,只要每个纪元的顺序完全相同即可。

然后,我对训练集进行了随机化,因此这次输入的顺序是足够随机的。我现在注意到我的神经网络被卡住了,错误正在减少,但速度非常小(每个时期都在变小)。一段时间后,误差开始围绕某个值振荡(因此误差停止减小)。

我是这个主题的新手,到目前为止我所知道的一切都是自学的(阅读教程、论文等)。为什么输入的呈现顺序会改变我的网络的行为?是不是因为从一个输入到下一个输入的误差变化是一致的(因为顺序是一致的),这使得网络更容易学习?

我可以做什么来解决这个问题?我正在检查我的反向传播算法,以确保我已经正确实现了它;目前它是通过学习率和动力来实现的。我正在考虑寻找其他增强功能,例如自适应学习率。然而,XOR 网络通常被描述为一个非常简单的网络,因此我认为我不需要使用复杂的反向传播算法。


向网络呈现构成训练集的观察结果(输入向量)的顺序仅在一方面重要——随机排列的观察结果根据响应变量与有序排列相比,强烈推荐。

例如,假设您的训练集有 150 个观测值,并且对于每个观测值,响应变量是三个类标签(I 类、II 类或 III 类)之一,因此观测值 1-50 属于 I 类,51-100 属于 I 类。 II 级,III 级 101-50。您不想做的是以该顺序将它们呈现给网络。换句话说,您不希望网络看到 I 类中的所有 50 个观测值,然后是 II 类中的所有 50 个观测值,然后是 III 类中的所有 50 个观测值。

训练分类器期间发生了什么?最初,您向网络呈现四个观察结果,无序 [0, 1, 1, 0]。

我想知道在网络无法收敛的情况下输入向量的顺序是什么?如果它是 [1, 1, 0, 0] 或 [0, 1, 1, 1],这与上面提到的这个有据可查的经验规则是一致的。

另一方面,我想知道这条规则是否适用于你的情况。原因是你的训练实例太少,即使顺序是 [1, 1, 0, 0],在多个时期进行训练(我确信你必须这样做)将意味着这个顺序看起来更“随机”而不是我上面提到的示例(即 [1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0] 是网络如何呈现三个时期的训练数据) 。

诊断问题的一些建议:

  1. 正如我上面提到的,查看非收敛情况下输入向量的排序——它们是按响应变量排序的吗?

  2. 在不收敛的情况下,查看您的权重矩阵(我假设您有两个)。查找任何非常大的值(例如,其他值的 100 倍,或初始化值的 100 倍)。大的权重可能会导致溢出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随机化神经网络输入顺序的影响 的相关文章

  • Sublime Text 2中括号(圆括号)的智能缩进

    我有一个非常好的设置 可以从 sublime text 2 内部编辑和运行 maxscript 我最近想要的一件事是用普通圆括号模拟或复制大括号的行为 EDIT 抱歉 Chrome 决定我在那里完成编辑 而我还没有 如果我输入if x th
  • 编辑时可以在文本框控件内使用 Angular 的管道格式化程序吗?

    我已经声明了一种将大数字分成三位数组的格式 并像这样经常使用它 div Huge number i am huge make threesome div 现在 有一个对相应功能的请求 但在像这样的输入控件中实现
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 两种模型,一种是 STI,一种是验证

    假设我有两个表 产品和订单 为了简单起见 假设一次只能购买一种产品 因此没有像 order items 这样的连接表 所以关系是Product有很多订单 Order属于product 因此 product id是Order表中的一个fk 产
  • 如何在输入时格式化 contenteditable div?

    我正在尝试编写一个函数 允许 contenteditable div 在用户输入 div 时执行一些自动格式化 到目前为止我只能让它在 IE 中运行 有人可以帮助我吗 function formatOnKeyUp if window get
  • Windows 更新后 Active 设置为 False 时 TIdHttpServer 冻结

    我们有一个 Indy 版本 10 6 1 5235 TIdHttpServer 服务 多年来一直与 Delphi 2007 配合良好 在最新的 Windows 更新 KB4338815 和 KB4338830 之后 我们注意到当 TIdHt
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile
  • Pandas DataFrame 自定义 agg 函数奇怪的行为

    我想使用自定义函数沿轴聚合 Pandas DataFrame 但我无法弄清楚该函数应返回什么 df pd DataFrame np arange 50 reshape 10 5 您可以将 numpy 函数传递给DataFrame agg C
  • 使用 Hibernate 防止无限循环数据检索

    我想知道 想象一个场景 例如 POJO public class User private String userName private String name private String surname private List
  • JavaScript 开关(真)

    你好 我正在尝试处理 ajax json 响应 这是我的代码 success function j switch true case j choice1 alert choice2 break case j choice2 alert ch
  • 如何让 DataTemplate.DataTrigger 检查大于或小于?

    下列DataTemplate DataTrigger如果是 则使年龄显示为红色equal to 30 如果是的话 如何使年龄显示为红色比 更棒 30
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类
  • 将自定义属性添加到 Tk 小部件

    我的主要目标是向小部件添加隐藏标签或字符串之类的内容 以在其上保存简短信息 我想到创建一个新的自定义 Button 类 在本例中我需要按钮 它继承所有旧选项 这是代码 form tkinter import class NButton Bu
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma
  • 将一个 IEnumerable 拆分为多个 IEnumerable

    我是 linq 新手 我需要根据指示器将 Couple string text bool Indicator 类型的 IEnumerable 拆分为多个 IEnumerable 我尝试使用skipWhile 和 TakeWhile 但没有找
  • perfmon 性能计数器是否基于与 xperf 使用的 ETW 事件“幕后”相同的东西?

    我最近开始熟悉 perfmon 和 xperf Perfmon 使用性能计数器 xperf 使用 ETW Windows 事件跟踪 Perfmon 具有提供数据的对象 而 xperf 使用 提供者 组 作为这个领域的新手 我想问是否有人可以
  • 安卓框架?

    是否有任何框架比构建 Android 应用程序更容易 您会对其中一个感兴趣吗 很快就会有 我正在开发 DroidFu 一个 Android 共享库 它将为您提供 活动 和服务 中直接提供大量实用功能 例如生成列表和错误对话框 检查 Inte
  • 使用 Coldfusion 的 CFFILE 标签监控 FFMpeg 的进度日志

    我想学习如何使用 ColdFusion 中的 CFFILE 标签来读取文本文件的内容 就我而言 该文本文件是 FFMpeg 在对媒体文件进行转码时生成的进度日志 我想编写一个 ColdFusion 脚本 该脚本将定期轮询进度日志 直到日志表

随机推荐

  • Scala 编译器不使用 case 类的 unapply 方法来进行模式匹配,这是为什么?

    abstract class Animal case class Cat name String extends Animal case class Dog name String extends Animal 假设我定义了 Cat 和 D
  • jqGrid添加项目复选框字段默认为选中

    这是一个简单的问题 我有一个运行良好的 jqGrid 但我想设置一个复选框的默认值 以便在用户添加新项目时进行检查 这是一段代码 name Active index active width 80 align center sortable
  • Symfony 4、如何实现通用控制器即服务?

    我有这个控制器 Controller1 php
  • 如何使用applescript以编程方式获取最新下载的文件名?

    我需要在 Mac 上以编程方式获取文件名 我使用 Selenium 下载文件 并从下载文件夹中选择相同的文件以编程方式安装 我使用 Applescript 执行相同的操作 我被困在运行时获取文件名 而且我的下载页面 url 不包含下载文件的
  • dart FFI 中“char*”的“本机类型”是什么?

    我有一个这样的功能C语言 char getString return SOME STRING 现在我想通过调用它FFI in dart 这是我的代码 import dart io import dart ffi void main List
  • 为什么Java接口可以在这些代码中实例化呢? [复制]

    这个问题在这里已经有答案了 可能的重复 创建接口的 对象 我是 Java 新手 根据我的理解 我们无法实例化一个Interface 我们只能实例化一个class它实现了一个interface The new关键字用于从类创建对象 但是 当我
  • SceneKit:内存过多

    我已经没有想法了 SceneKit 正在堆积内存 而我才刚刚开始 我正在显示SNCNodes它们存储在数组中 这样我就可以分离分子的组成部分以进行动画 这些树模型分子我最终可能会展示 50 个 比如说每 章 一个 问题是 当我转到另一章时
  • 与“PropTypes.element”相对应的“defaultProp”的正确值是什么?

    我有一个组件 我希望接受另一个组件作为道具 并渲染它 我希望传递的组件是可选的 并且在这种情况下不渲染任何内容 下面的代码可以完美运行 const Component Inner gt div div
  • 有没有办法生成单元测试来测试我的语法

    我使用 antlr4 创建了语法 但我想测试稳健性有没有自动工具或快速完成此操作的好方法 谢谢 由于很难找到 ANTLR 的真正单元测试 我写了两篇关于它的文章 Lexer 的单元测试 解析器的单元测试 A 词法分析测试检查给定文本是否被读
  • 如何使 ImageButtons 边界环绕图像?

    我正在为 Android 应用程序制作 GUI 该 GUI 包含四个方向ImageButtons 看下图 但是当试图做到这一点时总是失败 因为为每个图像保留了一个正方形 这就是我所达到的 那是我的XML code
  • 我现在可以将使用 WatchKit 的应用程序上传到 App Store 吗?

    我制作了一个应用程序 包括一个iOS应用程序和一个WatchKit应用程序 每个部分都可以独立运行 我现在可以将此应用程序上传到 App Store 以便在发布时可以在 Apple Watch 上使用吗 还是必须等待 如果答案是肯定的 我是
  • 如何将 CreateObject("Wscript.shell") 转换为 C# [重复]

    这个问题在这里已经有答案了 我怎样才能用 C 翻译这个 Set WshShell WScript CreateObject WScript Shell 谢谢 这个用在什么场合呢 还有我必须在 C 中包含什么库才能工作 使用用于脚本编写的 S
  • 如何在 iPhone 的图像上添加文字?

    我需要在 iPhone 中将文本放在图像上 它就像 Eurosport iPhone 应用程序 source mzstatic com 以同样的方式 我需要在我的应用程序中添加文本 我怎样才能做到这一点 Thanks 我找到了两种方法 1
  • 我可以使用 WinApi Deploy Cmd 在电脑上安装、更新吗

    我的 appx 文件安装在文件夹中 我可以通过双击该文件来安装它 但我正在寻找一种使用 WinAppDeployCmd 进行安装和更新过程来安装它的方法 WinAppDeployCmd install file C release file
  • Hadoop:JPS 找不到已安装的 Java

    我的配置是 hduser worker1 usr local hadoop conf jps The program jps can be found in the following packages openjdk 6 jdk open
  • 如何使用外部 JSON...?

    花了几个小时试图解决这个问题 但我无法弄清楚出了什么问题 我想做的就是加载这个 https recruit zoho com ats EmbedResult hr jodigest 2cV Sr2As6VxhLMxQGuTNij g Fb3
  • 通过 cron 执行的 Google Cloud SDK 代码

    我正在尝试实现一个自动代码来通过 Crontab 关闭和启动我的 Google Cloud 帐户中的 VM 实例 操作系统是 Ubuntu 12 lts 并安装了 Google 服务帐户 因此它可以处理我的 Google 云帐户上的读 写
  • 如何使用tensorflow进行文本分类?

    我是张量流和机器学习的新手 我在编写张量流代码时遇到问题 该代码的文本分类类似于我尝试使用 sklearn 库进行的文本分类 我在对数据集进行矢量化并向张量流层提供输入方面面临着重大问题 我确实记得对标签进行了一次热编码 但前面的张量流层不
  • Twitter 模块 python 'module' 对象没有属性 Oauth

    我正在尝试遵循这个基本示例here Code import twitter XXX Go to http dev twitter com apps new to create an app and get values for these
  • 随机化神经网络输入顺序的影响

    在我的高级算法和数据结构课程中 我的教授要求我们选择任何我们感兴趣的主题 他还告诉我们要研究它并尝试实施解决方案 我选择神经网络是因为它是我长期以来想学习的东西 我已经能够使用神经网络实现 AND OR 和 XOR 该神经网络的神经元使用阶