文章 "神经网络:从理论到实践"

 

新文章 神经网络:从理论到实践已发布:

简介

现在,每一位交易者肯定听说过神经网络并知道使用它们有多酷。大多数人相信那些能够使用神经网络的人是某种超人。在本文中,我将尝试向您解释神经网络架构,描述其应用并提供几个实践例子。

神经网络的概念

人工神经网络是人工智能研究的领域之一,以尝试模拟人类的神经系统的学习和适应能力为基础,这会让我们能够建立一个对人类大脑工作的非常粗略的模拟。

说也奇怪,人工神经网络由人工神经元构成。

Neural Networks: From Theory to Practice

作者:Dmitriy Parfenovich

 

原则上说,这篇文章还不错,一切都很清楚、明了,可以说上架 .....,让我们说有一个可以开始的地方,而不是去搜索其他论坛,但有必要继续下去,第 2、3 部分.....

您需要一个使用多层 NS 的示例,因为图片显示 的是多层 NS,但示例中只有一个神经元网络 - 要么重命名文章,要么写第二部分。

祝你好运!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5
 

但我不太明白--神经元的 "训练 "是如何进行的?

 
vspexp:

但我不太明白神经元是如何 "训练 "的,以及多久训练一次。

请看这里 ,第一张图片展示了鳞片在训练过程中的变化过程。
Рецепты нейросетей - Статьи по MQL4
  • www.mql5.com
Рецепты нейросетей - Статьи по MQL4: особенности автоматических торговых стратегий
 
有趣的巧合是,在这篇文章发表前一小时,我创建了一个关于神经网络的新主题 https://www.mql5.com/ru/forum/8158
Искусственные нейронные сети.
Искусственные нейронные сети.
  • www.mql5.com
Потенциал их практически безграничен, туда можно прописать сколько-угодно любых индикаторов с любым количеством параметров… и делать это можно оказывается на чистом MQL5.
 
papaklass: 我支持IgorM,我们需要续集。第二篇好文章。我认为现在是 MK 采访您的时候了,我想更多地了解您。

我将反过来支持您!!我们将陆续发表 ))))))。

我和神经网络打了很长时间的交道--我不明白它们是如何工作的,我了解它们的数学装置,也有很多例子,但我很长时间都不明白为什么需要训练它们,以及训练会带来什么,因为在互联网上只有针对特定任务(模式识别、交易)的训练例子,我没有遇到过任何基本(原始、日常)的例子,直到我在某个论坛上遇到了一个训练 sin(x)...... 的例子。

然后,我自己写了一个脚本,在线教授 NS 乘法表,并使用 Comment() 将结果打印到屏幕上,然后 ....哦,奇迹......我高兴得热泪盈眶,因为我看到了 NS 是如何学习的,真正的学习,而不是通过枯燥的公式来得到想要的结果。如果能在文章中举例说明就更好了 2x2=4,1 2x3=5,9 .....9x9= 80,2 ,但 11x2= 10,3 因为 11 的乘法表 NS 没有学习过,这里是 howtoktotak ))))))

ZY:关于我:我学习、读书、服役、工作、结婚、幸福地生活,并在同一天死去,我还不会死--还有未竟的事业 !!!!

 

对于入门级用户来说,这篇文章很不错,希望能有后续报道。

IgorM 2012.10.06 19:10 

然后,我自己写了一个脚本,在线教授 NS 乘法表,并使用 Comment() 将结果打印到屏幕上,然后......哦,不知道...我高兴得热泪盈眶,因为我看到了 NS 是如何学习的,真正的学习,而不是通过枯燥的公式来得到想要的结果。如果能在文章中举例说明就更好了 2x2=4,1 2x3=5,9 ..... .....10x10= 10.2 ,但 11x2= 10.3,因为 11 的乘法表 NS 没有学过,wotkaktotak ))))))

这个问题问得好。

虽然乘法表与交易关系不大,但我还是想知道,网络是否能够教授乘法表?

也许回答了 "网络为什么学不会乘法表 "这个问题,我们就会明白如何教会网络进行交易。

 
her.human:

问题陈述得很好。

1.虽然乘法表与交易关系不大,但我还是想知道,有没有可能教网络学习乘法表?

2.也许回答了这个问题,网络为什么学不会乘法表?

3.就会明白如何教会网络进行交易。

1.是的,NS 已经学会了从 1x1 到 9x9 (包括 9x9 在内)的乘法表,视频显示的结果似乎精确到了小数点后两位。

2.网络没有学习过 9x9 以上的乘法表,这并不奇怪--没有人教过,任何正确结果的巧合都是随机的。

3.有一种理解,但"New Neural"--MetaTrader 5 平台神经网络引擎开源项目--的 开发人员仍抱有希望,但正如他们所说 "仍然一无所获"(克雷洛夫语)。开发多层 NS 项目是一项劳动密集型任务 - 添加 .dll 更容易,不过,与现成的 NS 包/.dll 实现相比,在纯 mql5 上的训练速度可能会有所下降。

SZY:您可以在 MT5 的主题中询问是否希望内置多层 NS 的实现,但开发人员的回答是否定的,没有提供,半年后他们就会宣布这样的更新,我已经 "得到 "了两次:我希望有运算符重载和在图表上绘图的画布:)。

ZYZY:对我来说,用 NS 进行实验,这样的导入就足够了:

#import "fannmql.dll"
   void     fannmql_build(string NN_config);                   // 创建 FANN 神经网络,在 NN_config 中确定神经元层的属性
                                                               // 您可以使用分隔符:', .; -' 或空格 
   void     fannmql_unbuild();                                 // 删除 FANN 神经网络
   double   fannmql_train(double &input[],double &output[]);   // 训练 FANN 神经网络,返回 RMS 值
   void     fannmql_run  (double &input[],double &output[]);   // 计算神经网络的 FANN
   void     fannmql_savetofile  (string File_name);            // 将神经网络的 FANN 保存到文件中
   void     fannmql_loadfromfile(string File_name);            // 从文件中加载神经网络的 FANN
#import

string s = "8-10-10-2"; // NS,8 个输入,2 个隐层,每层 10 个神经元,2 个输出
double inp[8],out[2];
//________________________________________________
int init(){
   fannmql_build(s);
..............
但是,很显然,要在 MT5 标准函数中加入这样的函数是一个巨大而难以实现的问题;)))))
 
her.human:

也许回答了 "网络为什么学不会乘法表 "这个问题,我们就能理解如何教会网络进行交易。

最有趣的是,网络无法学习乘法表(广义上的)。当然,您可以教它从 1*1 到 9*9 的乘法运算,然后......Repin 的画--"无花果你"。

但大脑在执行这些步骤时并不困难,为什么会这样呢?- 这就是智慧宝库的所在,你必须在这里挖掘,但它并不像看起来那么简单--它与人工智能领域接壤,那是另一个故事....。

 
joo:

最有趣的是,网络无法教授乘法表(广义上的)。也就是说,你当然可以教授从 1*1 到 9*9 的乘法运算,然后......Repin 的画--"无花果你"。

但是,大脑却能毫无困难地完成这些步骤,为什么会这样呢?- 这就是智慧的宝库,我们需要在这里挖掘,但它并不像看起来那么简单--它已经接近人工智能领域,这是一个不同的故事....。


我不同意无花果网络的观点。

神经网络不是属于人工智能领域吗?

如果您想继续这个话题,我建议您访问"New Neural" - MetaTrader 5 平台神经网络引擎开源项目。

或者通过私人信息,我认为在这里是多余的。

 
joo:

最有趣的是,网络无法教授乘法表(广义上的)。也就是说,你当然可以教授从 1*1 到 9*9 的乘法运算,然后......Repin 的画--"无花果你"。

但大脑在执行这些步骤时并不困难,为什么会这样呢?- 这就是智慧宝库的所在,我们需要在这里挖掘,但它并不像看起来那么简单--它涉及人工智能领域,那是另一回事....。


尤拉-雷舍托夫(Yura Reshetov)甚至写道,可以教 NS 学习乘法表,其中 2*2 = 5,其他所有变化在算术上都是正确的。顺便说一句,这就是拟合的本质。至于为什么教 NS 1-9,给它 10-20 就会开始撒谎,也是有答案的。关键在于,只有当样本外数据与训练集上的数据处于同一区间时,网络才能正确工作。粗略地说,我们的输入范围是 [1;9]。而我们给 NS 提供的数据范围不同,这将导致输入数据非稳态,而非稳态将给出错误的答案。试着在 [1;20] 范围内的样本 上训练网络,然后给它相同范围内的其他 样本,哦,奇了怪了,它真的会工作。你可以测试一下。

在这里,我已经测试过了。样本外效果很好 )

教 NS 学习乘法表 1-20。在随机抽取的例子(样本量的 1/3 和 1/3)上进行训练和停止训练。验证--样本量的其余 1/3,但最重要的是来自同一范围。验证结果与训练样本一样好。误差在 +-0.1 以内。

问题的关键在于,NS 可以学习任何函数,正如你所知道的,并能成功完成,最主要的是样本外数据的范围应在训练范围内。