问题标签 [neural-network]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
312 浏览

artificial-intelligence - 用尽可能少的“参数”表示双精度的 2D 地图

我正在使用一种称为NEAT的神经网络技术开发回合制游戏 AI 。我正在尝试训练一个可以在二维(X&Y 坐标)空间中移动的网络,给定存储在有效二维数组中的各种值。

我可以看到使用神经网络的两种策略:

  1. 对于网格中的每个“单元”,提供来自不同启发式的分数作为神经元的输入,并创建一个实际上是一个非常复杂的“评分”系统的 NN。将非游戏角色 (NPC) 移动到得分最高的位置。

  2. 为每个启发式度量创建一个压缩值(以某种方式压缩为尽可能少的位),并为每个度量提供一个输入神经元。

我对选项二很感兴趣,因为它提供了最少的计算量(游戏的运行时间很长),但是我很困惑我可以使用什么方法来创建两者的“小表示”版本-维度启发式值。我知道那里有诸如傅立叶变换之类的技术,但是我不知道这些是否适合我的问题。基本上,我正在寻找一种将 50x50 的双精度数组转换为一个或两个双精度值的方法。这两个双精度值可以进行有损压缩,我不需要能够取回原始值,我只需要一个合理的机制来将输入数据更改为一个小的占用空间。

这两种可能性的替代方法是根据与 NPC 的距离以某种方式编码“区域”(因此您可以获得“接近”单元格的实际值和“远”单元格的近似值)。我不确切知道我将如何连接它,但它至少消除了在游戏的每一轮评估每个单元的需要(考虑到我正在以每轮大约 1 秒的速度查看大约 500 万轮,任何简化我能想出会大有帮助)。

如果这没有多大意义,我深表歉意,这是一个相当困难的问题,困扰了我一段时间,我想不出一个简单的方法来描述它。

谢谢,

艾丹

编辑添加(并更改标题):

多亏了克里斯,我们完善了我正在寻找的东西。我正在寻找的是一种以尽可能少的参数逼近一条线的方法(我可以将 2D 地图转换为一条线)。我之前使用三次样条进行插值,但是对于在 0.0 和 1.0 之间变化很大的数据集,我需要一些更可行的东西。我想我正在寻找的是地图的“散列”。

我知道有诸如三次样条之类的技术,我可以从中计算出一些“关键点”,这些值是我正在寻找的合理类比。我需要一种方法来获取 2500 个值并提出这些值的小表示,我可以将其用于神经网络。我认为可以训练NN来推断这些表示的真实含义,或者至少可以确定表示与现实世界之间的某种相关性,因此它不一定需要是可逆函数,但我不认为许多单向函数(例如 MD5、SHA)实际上也会非常有帮助......

0 投票
2 回答
2883 浏览

algorithm - 对产品列表进行分类的算法?拿 2

几周前我问了一个类似的问题,但我没有正确地问这个问题。所以我在这里用更多细节重新提出这个问题,我想得到一个更面向人工智能的答案。

我有一个列表,代表或多或少相同的产品。例如,在下面的列表中,它们都是希捷硬盘。

  1. 希捷硬盘 500Go
  2. 适用于笔记本电脑的希捷硬盘 120Go
  3. 希捷 Barracuda 7200.12 ST3500418AS 500GB 7200 RPM SATA 3.0Gb/s 硬盘
  4. 希捷全新闪亮 500Go 硬盘
  5. 希捷梭子鱼 7200.12
  6. 希捷 FreeAgent Desk 500GB 外置硬盘 银色 7200RPM USB2.0 零售
  7. GE Spacemaker Laudry
  8. 马自达3 2010
  9. 马自达3 2009 2.3L

对于人类来说,硬盘3和5是一样的。我们可以更进一步,假设产品 1、3、4 和 5 相同,并将产品 2 和 6 放在其他类别中。

在我之前的问题中,有人建议我使用特征提取。当我们有一个预定义描述的小数据集(所有硬盘驱动器)时,它工作得很好,但是所有其他类型的描述呢?我不想开始为我的应用程序可能面临的所有描述编写基于正则表达式的特征提取器,它无法扩展。是否有任何机器学习算法可以帮助我实现这一目标?我能得到的描述范围很广,在第一行,可能是冰箱,然后在下一行,是硬盘。我应该尝试走神经网络路径吗?我的输入应该是什么?

感谢您的帮助!

0 投票
9 回答
37494 浏览

artificial-intelligence - 如何为国际象棋编写神经网络?

我想编写一个国际象棋引擎,学习如何做出好的动作并战胜其他玩家。我已经编写了棋盘的表示和输出所有可能动作的函数。所以我只需要一个评估函数来说明董事会的给定情况有多好。因此,我想使用一个人工神经网络来评估给定的位置。输出应该是一个数值。该值越高,白棋玩家的位置就越好。

我的方法是建立一个由 385 个神经元组成的网络:棋盘上有 6 个独特的棋子和 64 个区域。因此,对于每个字段,我们需要 6 个神经元(每块 1 个)。如果有白棋,则输入值为 1。如果有黑棋,则值为 -1。如果该字段上没有这种类型的块,则值为 0。除此之外,还应该有 1 个神经元供玩家移动。如果轮到白方,则输入值为1,如果轮到黑方,则输入值为-1。

我认为神经网络的配置非常好。但是缺少主要部分:如何将这个神经网络实现为编码语言(例如 Delphi)?我认为每个神经元的权重在开始时应该是相同的。然后根据比赛结果调整权重。但是怎么做?我想我应该让 2 个电脑玩家(都使用我的引擎)互相对抗。如果白方赢了,黑方会得到它的权重不好的反馈。

因此,如果您能帮助我将神经网络实现为编码语言(最好是 Delphi,否则是伪代码),那就太好了。提前致谢!

0 投票
8 回答
27490 浏览

artificial-intelligence - 如何编写人工神经网络(井字游戏)?

我想使用人工神经网络玩井字游戏。我的网络配置如下:对于 9 个字段中的每一个,我使用 2 个输入神经元。所以我当然有 18 个输入神经元。对于每个字段,我有一个用于玩家 1 的输入神经元和一个用于玩家 2 的神经元。除此之外,我还有 1 个输出神经元用于评估当前棋盘位置。输出值越高,玩家 1 的位置越好。输出值越低,玩家 2 的位置越好。

但我的问题是:我如何编码那个神经网络?我的想法是使用 Array[1-18] 作为输入神经元。该数组的值是输入权重。我会使用循环遍历数组。每当有神经元被激活时,我都会将权重添加到输出值中。所以输出值是激活的输入神经元的权重之和:

您认为这是对网络进行编程的好方法吗?你有更好的想法吗?

我希望你能帮助我。提前致谢!

0 投票
4 回答
11735 浏览

machine-learning - 用于电子邮件垃圾邮件检测的神经网络

假设您可以访问一个电子邮件帐户,该帐户将过去几年收到的电子邮件(约 10k 封电子邮件)的历史分为 2 组

  • 真正的电子邮件
  • 垃圾邮件

您将如何处理创建可用于垃圾邮件检测的神经网络解决方案的任务 - 基本上将任何电子邮件分类为垃圾邮件或非垃圾邮件?

让我们假设电子邮件提取已经到位,我们只需要关注分类部分。

我希望得到回答的要点是:

  1. 选择哪些参数作为 NN 的输入,为什么?
  2. NN 的哪种结构最有可能最适合此类任务?

此外,任何资源建议或现有实现(最好在 C# 中)都非常受欢迎

谢谢

编辑

  • 我开始使用神经网络作为项目的主要方面是测试 NN 方法如何用于垃圾邮件检测
  • 仅仅探索神经网络和垃圾邮件的主题也是一个“玩具问题”
0 投票
3 回答
7069 浏览

c++ - 需要神经网络 XOR 反向传播信息

有谁知道我在哪里可以找到一些关于 NN 反向传播的示例代码XOR,我也可以在系统训练后对其进行测试?

最好在 C++ 或 MATLAB 中。

0 投票
7 回答
6641 浏览

matlab - 神经网络优化 w/ 遗传算法

遗传算法是优化隐藏节点数量和人工神经网络训练量的最有效方法吗?

我正在使用 Matlab 中的 NNToolbox 对神经网络进行编码。我对优化技术的任何其他建议持开放态度,但我最熟悉 GA。

0 投票
9 回答
1881 浏览

artificial-intelligence - 神经网络的正确性

我已经问过其他 AI 专家这个问题,但我还没有真正得到让我满意的答案。

对于以前编写过人工神经网络的其他人,您如何测试其正确性?

我想,另一种说法是,如何调试神经网络背后的代码?

0 投票
4 回答
5275 浏览

open-source - 免费实现多层感知器?

网络上的任何地方是否有免费的(最好是公共领域或类似 BSD 的许可证,但 GPL 可以)实现多层感知器?

我有教科书的例子,但许可证太严格了,虽然我可以按照维基百科文章中的数学计算,但我没有足够的信心做对,而且很难测试。

我做了一个快速的谷歌搜索,发现了一些免费的(如啤酒)二进制版本。我希望找到一个 MLP,它是一个更大的开源项目的一部分。

0 投票
8 回答
1794 浏览

artificial-intelligence - 大脑建模

只是想知道,因为我们已经达到了每台 PC 1 teraflop,但我们仍然无法模拟昆虫的大脑。有没有人见过一个自学习、自开发的神经网络的体面实现?