"新神经 "是MetaTrader 5平台的一个开源神经网络引擎项目。 - 页 62

 
joo:

哪个更快是显而易见的。但在整个训练中,你要向文件写多少次?- 一次?

因此,速度并不关键,但视觉控制被简化。

我不会说一个xml-文件会很容易在视觉上控制。

我仍然可以使用某种模板作为xml-文件,但是将一层有1500个神经元的网格可视化将是一件很麻烦的事情,所以你会得到创建xml-文件的麻烦,而且无论如何你也不会得到好的可视化。虽然我不排斥它,但当你保存它时,你也可以在xml中复制它。

MetaDriver

我说的初始化是什么意思? 如果加载权重,这是一件事。如果配置网格+加载权重是另一回事。

--

对。我来唱。

有两种方法将中间网络配置(结构、类型)映射到mql5代码中。

第一个:在初始化过程中从库类中动态配置网络。这样的网络充斥着动态数组 和通过指针的链接。 这种方法到目前为止隐含着主导地位。

但还有第二种方法:在预配置和映射到xml之后,生成一个刚性的网格(有静态数组和直接访问所需的地址(索引))。

这样的引擎可能对用户更有吸引力,因为生成的网格速度更高(明显)。但实现起来比较复杂。 事实上,你需要做一个xml2mql编译器。

我,事实上,为第二种方式。 我希望元引号将帮助,如果我们被卡住。

第一条路。

第二种选择被放弃了(我不记得确切的时间,但在第一页),因为在未来的 "用户 "类别中会包括不知道什么是F7的人。

此外,该引擎的目的是易于扩展,任何知道F7目的的人都可以添加另一种类型的网格或发明自己的网格。

ZY理解你对模板编码的重视,但同意以第二种方式,我们在实现学习算法和神经元类型的扩展方面都会有很大的问题,另外这仍然需要为GPU进行优化。第一个变体存在严重的问题,最简单的事情大家都能做,光是描述通用 引擎的项目就让我脑子发热。

 

明天我将从我的工作电脑上复制我在网络原型存储方面的工作,设置训练任务,在这里存储发现的解决方案。

一切以xml为单位

我认为解析xml文件的资源密集度太夸张了

不要忘记,这是一个一次性的程序。

更重要的是,与神经网络项目 的复杂性相比,为MQL5编写一个本地xml文件分析器是一项微不足道的任务。

 
Urain

第一种方式。

第二种选择已经被抛弃了(我不记得具体内容了,但在第一页),因为在未来,不知道F7是什么的人将被征入 "用户 "类别。

而且这个引擎应该是很容易扩展的,所以每个知道F7目的的人都可以为自己增加一些网格或发明自己的网格。

我只有一个问题,因为我对网格类型缺乏能力。

网格类型是否可以由查找表唯一定义,即我们是否可以创建一个通用的抽象网格,它只是从一个给定的查找表出发?换句话说,一个真正的通用 网络?

如果答案是肯定的,那么 创建中间视图之前,网格配置编辑器就已经定义了网格类型,而不需要修改通用库。我的意思是它永远不会被要求(如果它没有故障的话),无论网格结构是什么。 你唯一能做的就是优化它,扩大非线性转换器的库,训练方法等等。

如果 "没有",请随时给我一些不适合这种方式的例外情况的链接。

--

如果xml-representation的网络描述是经过深思熟虑的,并且完全从mql-implementation中抽象出来(这是正确的),那么这些替代方案看起来并不矛盾。不仅两者都可以实施,而且替代品也可以相互交叉。

 
MetaDriver
...

答案不是二元的。

一方面,答案是否定的,关系表本身并没有指定神经元的类型。

另一方面,答案是肯定的,有可能以数字形式指定类型(你通过开关创建一个从共同祖先继承的特定类型的对象)。

所以总的来说,一个参数数组和一个关系表是没有问题的。

但另一方面,即使是配置编辑器也有参数(层数、每层的神经元数量、层中神经元的类型),而这是在创建链接之前。

 
MetaDriver

换句话说--一个 真正的通用 网络?

从前馈来看是的。对于其他人,你必须看一下拓扑结构。
 
TheXpert
从前馈来看,是的。对于其他人,你必须看一下拓扑结构。

拓扑结构是由联结表设定的....。

?

 
MetaDriver

拓扑结构是由联结表....。

以及要链接的部件的功能。
 
TheXpert
以及要链接的部件的功能。

好吧,让我们在这里再详细介绍一下。

这种功能可以由一个有限的(小的)表格给出吗? 不同类型的神经元之间有什么区别(除了激活函数)?

 
MetaDriver

好吧,让我们在这里再详细介绍一下。

这种功能可以由一个有限的(小的)表格给出? 不同类型的神经元之间有什么区别(除了激活函数)?

严格说来,不是。

首先是一个简单的案例。比方说,我们有线性、西格玛和切线神经元。如果我们想增加一种新的激活类型,我们必须扩展激活类型的枚举。

基本上,所以什么是地狱。但首先,为什么,例如在Kohonen网络中,输出层需要一些=一些激活函数的符号?这是多余的,多余的信息。

第二,这个名单理论上是无限的。

第三,每个网络在运作和安排上可能有其特殊性。例如,一个Kohonen网络(SOM)可能有一个相邻函数设置和一个标志,即是否将结果作为输出或只输出领导者(将所有非领导者清零)。

例如,在逻辑模型中,可配置的参数是在激活函数中。这也在一般的模型中吗?

在MLP层,它可能是一个单一的神经元存在的标志。

____________________________

顺便说一下,xml比二进制表示法更容易检查其有效性。而保存/恢复基本上没有时间上的要求。

 
TheXpert:

1. 严格来说,没有。

首先是一个简单的案例。比方说,我们有线性、西格玛和切线神经元。如果我们想增加一种新的激活类型,我们必须扩展激活类型的枚举。

基本上,所以什么是地狱。但首先,为什么,例如在Kohonen网络中,输出层需要一些=一些激活函数的符号?这是不必要的和多余的信息。

第二,这个名单理论上是无限的。

第三,每个网络在运作和结构上都可能有自己的特殊性。例如,一个Kohonen网络(SOM)可能有一个相邻函数设置和一个标志,即是否将结果作为输出或只输出领导者(将所有非领导者清零)。

例如,在逻辑模型中,可配置的参数是在激活函数中。这也在一般的模型中吗?

在MLP层中,它可能是一个单一神经元的标志。

____________________________

2. 顺便说一下,xml比二进制表示法更容易检查其有效性。而saving/recovery基本上是没有时间限制的。

1. 为什么不 我的想法是这样的--创建一个通用的 "元素库",任何类型的神经网络都可以从中 "焊接"(很可能是可扩展的)。这个基础中的元素是由准确无误的定义--公式来定义的。如有必要,可应用伪代码。但不是以mql-code的形式,以提供与实现的分离--它们可以随着时间的推移而改进。 在抽象元素库创建之后(如果可能的话),你可以格式化xml-file,能够描述元素之间的所有连接。在xml-description被批准后,该项目 可以很容易地进行并联:分别编写

1)组件的实施。=>输出是一个组件库。

2) 网络类型/结构配置器 => 输出 - 图形、逐步或任何其他配置器,将配置保存为xml-文件。

3)翻译成mql代码。=> 输出要么是(1)一个超级自我配置的mql-神经网络,以xml-文件为参数,要么是(2)一个编译器到一个特定的基于mql的刚性网络。

类似这样的事情。似乎是有道理的。

2. 是的。