神经网络需要多少个纪元来学习平方? (包括测试结果)

2024-03-18

好吧,首先我要说的是,我很清楚这取决于很多因素,我正在向有经验的人寻求一些一般准则。

我的目标是not制作一个可以为我计算数字平方的神经网络,但我认为这将是一个很好的实验,看看我是否正确实现了反向传播算法。这看起来是个好主意吗?无论如何,我担心我没有(完全)正确地实现学习算法。

我的测试(结果):

  • 训练数据: 500使用 Java 的 Random 随机生成 0.001 到 0.999 之间的数字
  • 网络拓扑结构: 3 Layers具有 1 个输入神经元、5 个隐藏神经元、1 个输出神经元
  • 权重:全部生成 -1 到 1 之间的随机值 (java.util.Random.nextDouble() * 2 - 1;)
  • 使用偏置节点:(numOfInputs + 1) 使得 input[input.length -1] = 1
  • 激活函数:乙状结肠
  • 学习率:如下面的结果代码所示
  • 没有实施任何形式的动力等
  • Results:
Epochs: 10,000

Learning Rate .25
0.5 = [0.24203878039631344]
0.9 = [0.7942587190918747]
0.1 = [-0.005433286011774396]


Changed learning rate to 0.3

0.5 = [0.2891542106869196]
0.9 = [0.8159817287374298]
0.1 = [-0.03614377685205278]


Changed epoch to 1,000 with .25 learning rate

0.5 = [0.36399147315079117]
0.9 = [0.7585916275848852]
0.1 = [-0.02814488264341608]


Kept epoch at 1,000 with .30 learning rate

0.5 = [0.3872669778857468]
0.9 = [0.8160049820236891]
0.1 = [-0.03328304871978338]




 Epochs: 100,000:


.25 learning rate

0.5 = [0.24533230649123738]
0.9 = [0.8146287680498014]
0.1 = [0.006935561897963849]


.30 learning rate

0.5 = [0.24660900415003595]
0.9 = [0.8097729997778165]
0.1 = [0.013269893700964097]

我还应该尝试用其他“简单”“东西”来训练网络以检查其学习能力吗?


您可以做的最简单的事情之一就是计算 XOR 函数。为了测试“正常”多层感知器,这就是我通常所做的。当学习率为 0.2 时,XOR 问题在不到 100 个 epoch 的时间内通过 2 - 5 - 1 个神经元得到完美解决(平均准确度为 99%)。

使用网络(MLP),我编码了(tanh,没有偏差神经元,但每个神经元的偏差值,权重初始化在0.1和0.5之间,偏差初始化为每个0.5,1.000个训练数据集从0.001到2.0和激活归一化(输入/激活除输入层神经元之外的所有神经元除以父层中的神经元数量),1-5-1 个神经元)我尝试了你的问题,每次都在不到 2.000 个时期内获得了 95% 的平均准确率,学习率为 0.1 。

这可能有几个原因。对于我的网络 0.001 到 1.0 需要大约两倍的时间来学习。此外,提到的激活标准化(在大多数情况下)大大减少了学习特定问题所需的时期。

除此之外,我在每个神经元的偏差值而不是每层一个偏差神经元方面获得了大部分积极的体验。

此外,如果你的学习率太高(并且你做了很多时期),你可能会面临过度拟合的风险。

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

神经网络需要多少个纪元来学习平方? (包括测试结果) 的相关文章

随机推荐

  • 窗口上的代理

    我想设立一个Proxy当定义了新属性时它会警告我window目的 实际上我想捕获所有全局变量声明 let handler defineProperty target key descriptor console log hey key re
  • 如何在 w3m 终端中使用 Javascript?

    我发现文本浏览器 w3m 在我看来是迄今为止最好的 然而 主要问题是Javascript 当我使用 Stackoverflow 时 我根本看不到评论 我不确定让 Javascript 在终端中存在什么限制 如何为终端启用至少部分 JavaS
  • 在 pthread 中实现 FIFO 互斥体

    我正在尝试实现支持并发插入的二叉树 甚至可能在节点之间发生 但不必为每个节点分配全局锁或单独的互斥体 相反 分配的此类锁的数量应按线程数量使用树 因此 我最终得到了一种锁车队 http en wikipedia org wiki Lock
  • 在 R 中查找特殊字符的第三次出现并删除之前的所有内容

    我有这个包含 URL 的示例向量 我的目标是获取URL的路径 sample1 lt c http tercihblog com indirisu docugard http funerariagomez com js ggogle a201
  • SQL 查询选择每组具有最大值的每一行

    我对 SQL 很陌生 这个问题让我难住了 你能帮我解答这个问题吗 我有以下 2 个表 表 1 问题表 Id RunId Value 1 1 10 2 1 20 3 1 30 4 2 40 5 2 50 6 3 60 7 4 70 8 5 8
  • 如何将sql查询结果转储到文件中

    好吧 我现在的情况是 我需要将 sql 查询的结果转储到文件中 这是出于备份目的 我尝试从终端运行以下命令 mysql e select from products where brand id 5 u root p database na
  • WTSRegisterSessionNotification 有时在 XP home 启动时不起作用

    我正在使用该函数 消息来检查工作站是否已锁定 现在我的应用程序位于启动文件夹中 它在 XP pro 上运行没有任何问题 但由于我在 XP home 上使用该程序 WTSRegisterSessionNotification 在启动时大约有
  • 一起使用facet_grid和facet_wrap

    我正在尝试使用创建图表facet wrap with a facet grid在每个包裹的方面内 但我无法做到 有什么建议么 例如 如果我要对 2 个数量的月平均值进行同比比较 我希望 2 个面 每个数量一个 每个月份的 5 个数量方面都有
  • Flash 源代码控制 - 最佳实践

    我现在正在开发一个 Flash 项目 我不得不迫使设计人员使用我们的源代码控制存储库 SVN 来帮助管理和跟踪项目 让他完全接受源代码控制的好处是一场艰苦的战斗 但它正在到来 除了我是唯一一个参与 Flash 项目的项目之外 我以前从未在
  • 无法创建目录 /home/hadoop/hadoopinfra/hdfs/namenode/current

    我收到错误 Cannot create directory home hadoop hadoopinfra hdfs namenode current 尝试在我的本地 Mac 上安装 hadoop 时 这可能是什么原因 仅供参考 我将我的
  • 更新嵌套字典中的值 - Python

    我创建了一个字典 如下所示 gP dict fromkeys range 6 a None b None c None d None 现在 当我尝试修改一个值时 gP 0 a 1 由于某种原因 所有的值a 不管它们属于哪个键 更改为1 如下
  • 为什么我的 UDP 广播失败?

    我正在尝试发送 UDP 广播 但wireshark 没有报告任何流量 这是执行发送的代码片段 void SendBroadcast String ip 255 255 255 255 int port 30718 String messag
  • 在 shell 脚本中扩展变量

    我有一个需要循环的查询 query select dbserver as server while read dbserver username password dbname type do mysql h dbserver u user
  • 如何使用 VBA 将数据从关闭的工作簿(保持关闭状态)复制到主工作簿中?

    我需要使用 VBA 将数据从关闭的工作簿复制到主工作簿中 而不打开它们 I use Workbooks Open从 4 6 个文件开始 每个需要打开的文件都会大大减慢复制操作的速度 我需要高效的 VBA 代码来复制数据 而无需打开每个文件
  • Azure 存储非经典 (V2) - 如何配置自定义域

    在新的 Azure 门户中 有 2 个存储帐户 非经典帐户和经典帐户 因为我认为经典就是旧版本 所以我选择非经典 问题是 我无法在新门户上配置自定义域 它将我重定向到旧的 azure 门户 manage windowszuare com 问
  • 隐藏包中的模块导入

    我有一个小包 有一些依赖项 例如 pandas 和 gensim 文件结构是这样的 package init py agg clean py In the init py文件 我有import agg clean所以我能够以链式方式访问这些
  • 嵌入式 Python 应用程序中 Py_Finalize 期间发生致命错误

    感谢您的帮助 这个问题的变体已经被问过很多次 但我还没有找到完整的答案 我正在使用 MS MFC 类将嵌入式 Python 3 4 2 添加到用 C 编写的现有模拟器工具中 该应用程序是多线程的 以便用户可以执行Python脚本并与模拟器系
  • 列出 pyspark 中加载的所有其他 jar

    我想查看我的 Spark 上下文正在使用的罐子 我在Scala中找到了代码 spark shell jars master spark datasci 7077 jars opt jars xgboost4j spark 0 7 jar w
  • CFBundleShortVersionString 必须是最多三个非负整数的以句点分隔的列表

    将我的应用程序提交到应用程序商店时 我收到此错误 这是我的 info plist 文件中的相关部分
  • 神经网络需要多少个纪元来学习平方? (包括测试结果)

    好吧 首先我要说的是 我很清楚这取决于很多因素 我正在向有经验的人寻求一些一般准则 我的目标是not制作一个可以为我计算数字平方的神经网络 但我认为这将是一个很好的实验 看看我是否正确实现了反向传播算法 这看起来是个好主意吗 无论如何 我担