文章 "神经网络轻松制作"

 

新文章 神经网络轻松制作已发布:

人工智能往往伴随着极其复杂和难以理解的事物。 同时,人工智能在日常生活中也越来越多地被提及。 不同的媒体也经常发布有关运用神经网络成就的新闻。 本文的目在于展示任何人都可以轻松创建神经网络,并在交易中运用 AI 成就。

人工智能正在我们生活的各个方面提升覆盖面。 许多新刊物涌现,指出“神经网络已被训练为...”。然而,人工智能仍然伴随着奇妙的事物。 这个想法似乎非常复杂,超自然和玄之又玄。 所以,只有一群科学家才能创造出来这种超凡神迹。 利用我们的家用 PC 似乎无法开发类似的程序。 但请相信我,这并不困难。 我们尝试了解神经网络是什么,以及如何在交易中运用它。

1. AI 网络建设原理

维基百科如此定义神经网络:

人工神经网络(ANN)是受到构成动物大脑的生物神经网络的启发建立的计算系统。 ANN 基于称之为人工神经元的单元或节点连接而成的集合,可模拟生物大脑中的神经元耦合模型。

如此,神经网络是由人工神经元组成的实体,其相对关系有组织地编制。 这些关联类似于生物大脑。

下图展示了一个简单的神经网络示意图。 此处,圆圈表示神经元,且神经元之间直观地以线连接。 神经元被划分为三组,每组位于一层中。 蓝色表示神经元输入层,意即源信息输入。 绿色和红色是输出神经元,输出神经网络的运算结果。 它们之间是灰色神经元,形成隐藏层。 

简单的神经网络示例


作者:Dmitriy Gizlyk

 
作者干得漂亮!)、
他实现了网络,每个有自尊的数据科学家都应该这样做....。

遗憾的是,这篇文章中没有一个可以显示性能的例子......,没有训练图......,只有维基百科上的理论(水)和代码。

没有可视化示例的代码也是水....

结论:一篇为了文章而文章的文章......,但我想看到一些有趣的东西,这样的和更新版本的神经元早已在 MQL4、MQL5、C# 等语言中实现。
 

1 - 谢谢您的文章,它让我在最近的空闲时间里非常着迷,一旦我有空闲时间,我就会深入研究这个主题。

2 - 说一句,代码无法编译。很明显,您编写了简化开发的示例,但您没有在实践中检查过生成的示例。我认为错别字中的错误已经表达出来了,至少我注意到了。我还没有读完这篇文章。从编程的角度来看,在创建新神经元和其他东西的方法中,如果索引不超过以前的值,您就不会删除过去的神经元,您就会得到潜在的僵尸对象......

3 - 问题。网格权重的总和显然不应该是 1,对吗?

 
另一个问题是,神经元名称(neurotNam)是在图层中创建神经元的方法,但没有在任何地方声明,而且神经元的初始值为何等于除以 3 减 1 的余数,其逻辑也不清楚?
 
Andrey Azatskiy:

2 - 实现的网络运行速度会非常慢,因为它是通过对象来实现的......,至少权重应该通过简单的数组来实现。

3 - 网络的权重可以有任何值,不受任何限制,当接近零值时,它们会降低影响....。

你一定是混淆了神经元的单值、最终值,但在 sigmoid 函数之后......在这种情况下,是的,网络中每个神经元的输出都是从 0 到 1,但在文章中,有一个 tankence 作为神经元的激活,其输出是从 -1 到 1。

这篇文章还有一个很大的缺点,就是只字未提数据准备、归一化等问题,而这一点非常重要,因为神经网络无法使用原始数据。

 

Daniil Kurmyshev:

2 - 实现的网络会运行得很慢,因为它是通过对象实现的......,至少权重应该通过简单的数组来实现。另外,从 OOP 的角度来看,你可以看到网络项目中存在错误,这是在项目本身,因为它产生了这么多对象。

不会有性能损失,我已经测试过了,你也可以看看管理员 Renat 的帖子,他表明 MQL5 中的 OOP 和过程式一样快。

至于这篇文章,它的介绍很好,但这些材料已经在本资源的文章中介绍过很多次了,尽管它可能很有用。

 

"如果我们要向神经网络 的输入端输入某个包含 10 个元素的数据阵列,那么网络的输入层就应该包含 10 个神经元。这样就能接受整个数据集。多余的输入神经元只是压舱物"。

不,不应该,一个可能就够了

 

"隐藏层的数量取决于输入数据与预期输出之间的因果关系。例如,如果我们要建立与 "5 个为什么 "技术相关的模型,那么使用 4 个隐藏层是合乎逻辑的,这 4 个隐藏层与输出层的总和将使我们有机会对原始数据提出 5 个问题。

什么是 "5 个为什么",4 层又有什么关系?查了一下,一个简单的决策树就能回答这个问题。通用近似器是一个 2 层的 NS,可以回答任何数量的 "为什么":)其他层主要用于复杂设计中的数据预处理。例如,从大量像素中压缩图像,然后进行识别。

"既然神经元的输出是一个逻辑结果,那么向神经网络 提出的问题就应该有一个明确的答案。

如果输出不是一个简单的加法器,答案就会被假定为概率性的。

我不敢看代码,因为互联网上有很多高质量的实现 )).

 

编译错误。


 
这篇文章很有意思。您能解释一下 "用手指 "吗?

1.神经元的内部结构是什么?
2.什么是神经元束?(我指的是两个神经元--第 1 层神经元和第 2 层神经元--之间的连接)。

这些都是我在文章最后才明白的问题。

谢谢。
 
这篇文章的第二部分是 "人工神经元是如何工作的"。如果我说错了,请指正。

神经元由多种功能组成:
1.第一个将输入值乘以权重系数;2.
2.第二个函数汇总得到的乘积。
3.第三个计算激活函数的结果值。

我听得懂,但不明白其中的含义。