Dorian 君翻译,转载请注明。
加入系列课程,请扫文末二维码。
This four part series will explore the NeuroEvolution of Augmenting Topologies (NEAT) algorithm. Parts one and two will briefly out-line the algorithm and discuss the benefits, part three will apply it to the pole balancing problem and finally part 4 will apply it to market data.
本系列文的4个部分将探索如何通过增广的拓扑结构提高人工神经网络的算法(NEAT) 第一部分和第二部分将大致列出算法的大纲以及其优势,第三部分将着重应用在杆平衡问题。第四部分将把此算法应用在实际的市场数据上。
This algorithm recently went viral in a video called MarI/O where a network was developed that was capable of completing the first level of super mario see the video below.
这个算法近期随着一个叫做Marl/O的视频爆火,在视频中一个计算机神经网络被开发并用来训练其游玩超级马里奥的第一关,如以下视频所示:
https://www.youtube.com/watch?v=qv6UVOQ0F44 你懂的
Typically when one chooses to use a neural network they have to decide how many hidden layers there are, the number of neurons in each layer and what connections exist between the neurons. Depending on the nature of the problem it can be very difficult to know what is a sensible topology. Once the topology is chosen it will most likely be trained using back-propagation or a genetic evolution approach and tested. The genetic evolution approach is essentially searching through the space of connection weights and selecting high performing networks and breeding them (this is known as fixed-topology evolution).
通常地,当工程师们选择使用神经网络去开发程序时,他们必须决定其中将应用到多少隐含层,每个隐含层应该运用到的神经元的数量以及神经元之间存在的既定联系。根据问题本身,对于工程师来说,是非常难以了解到(对于开发的算法而言)那些是足够敏感的拓扑机构。当工程师(开发者)决定运用某个拓扑结构,此算法将以反向传播法或是遗传进化方法用以训练并且测试。遗传进化方法的本质是通过寻找理解连接权值的空间并且筛选出高效的网络并且榨干他们的效能(这被称为固定拓扑结构进化)。
The above approach finds optimal connection weights, it’s then down to an “expert” to manually tweak the topology of the network in an attempt to iteratively find better performing networks.
上述的方法用来寻找最优化的连接权值,并直接取决于此“专家”是否采用迭代的方法以手动扭转拓普网络,以此寻找最佳的网络。
This led to the development of variable-topology training, where both the connection space and structure space are explored. With this came a host of problems such as networks becoming incredibly bushy and complex slowing down the machine learning process. With the genetic approaches it was difficult to track genetic mutations and crossover structure in a meaningful way.
而这些对于连接空间以及结构空间的探索引领了变量-拓扑结构的训练的开发。而这成为了问题的根源,比如说网络变得非常的复杂并且减缓了机械学习流程的效率。而当采用了基因手段,想以有效的方法追踪基因变异以及交叉结构变得非常困难。
The NEAT algorithm aims to develop a genetic algorithm that searching through neural network weight and structure space that has the following properties:
NEAT算法专注于开发出一套具有如下特性,可用来搜寻神经网络权值以及结构空间基因的算法
Have genetic representation that allows structure to be crossed over in a meaningful way 基因表达允许机构形成一个有意义的交叉结构。
Protect topological innovations that need a few evolutions to be optimised so that it doesn’t disappear from the gene pool prematurely 保护拓扑学上的创新需要几个进化被优化以保证这些创新不会在未成熟阶段时就从基因池里消失。
Minimise topologies throughout training without specially contrived network complexity penalisation functions 在训练时,通过排除特别开发的人工复杂网络遗留下的罚分功能以最小化拓扑结构。
A through treatment of the algorithm can be found in the paper Evolving Neural Networks through Augmenting Topologies by Kenneth O. Stanley and Risto Miikkulainen
(http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf).
整个算法的流程可见由Kenneth O Stanley 和Risto Miikkulainen 学术论文,链接见上
The information about the network is represented by a genome, the genome contains node genes and connection genes. The node genes define nodes in the network, the nodes can be inputs (such as a technical indicator), outputs (such as a buy / sell recommendation), or hidden (used by the network for a calculation). The connection genes join nodes in the network together and have a weight attached to them.
网络的信息以染色体组的方式呈现,而这些基因组包含了结基因以及连接基因。而结基因定义了网络中的节点,节点可以作为输入(并作为技术指标),输出(比如说买入/卖出建议)尔或是隐藏(被用于计算的网络采用)这些连接基因和网络中的节点组合在一起,各自有自身的权值。
Connection genes have an input node, an output node, a weight, an enabled/disabled flag and an innovation number. The innovation number is used to track the history of a genes evolution and will be explained in more detail in part two.
连接基因有输入节点,一个输出节点,以作为权值,作为一个激活/失效的信号和创新的数字而被算法采用。这些创新数用来追踪基因进化的历史,我们将在本系列文章的第二部分深入探究。
This post will look at some of the mutations that can happen to the network, it is worth noting that each genome has embedded inside it a mutation rate for each type of mutation that can occur. These mutation rates are also randomly increased or decreased as the evolution progresses.
此篇文章将专注在部分网络中可能发生的变异情况,同样值得注意的是每个基因组都被嵌入在突变值,其中每一种类的变异都可能发生。随着进化的持续,这些变异率同样的随机增加或是减少。
Point Mutate
突变点
Randomly updates the weight of a randomly selected connection gene
The updates are either:
随机地更新随机的连接基因的权值
这些更新如下:
New Weight = Old Weight +/- Random number between 0 and genome$MutationRate[[“Step”]]
or
New Weight = Random number between -2 and 2
Link Mutate
连接突破
Randomly adds a new connection to the network with a random weight between -2 and 2
在神经网络中随机增加新的连接,并且随机赋予在-2到2之间范围中的权重
Node Mutate
节点变异
This mutation adds a new node to the network by disabling a connection, replacing it with a connection of weight 1, a node and a connection with the same weight as the disabled connection. In essence it’s been replaced with an identically functioning equivalent.
这个突变通过关闭一个连接为神经网络增加了一个新的节点,并且用连接权值为1的所代替。一个节点和连接和失效的连接具有相同的权值。本质上来说,这些因素皆可被认证,可运作的对等物所替代
Enable Disable Mutate
激活/失效化突变
Randomly enables and disables connections
随机地激活或是关闭连接
更多免费行业调研报告,金融理论深度学习,电子书,
请关注公众号并加入金融核心微信群/商业合作
(注明加群+工作单位+工作地区)否则不加,感谢合作
请加Dorian君微信:
收听更多直播/金融/英语核心课程,成为投行精英,扫码关注
(订阅更加深度,全面的大课,请扫以上二维码)
微博:Dorian君
雪球网id: 大空神
连续创业者
自营交易员
关注极客文化/大数据/人工智能/国际金融,关注灰岩金融科技公眾號...
國內官網:www.ravenrock-capital.com
國外官網:www.ravenrockcapital.net
长按二维码,赞赏一下!
您的赞赏是我持续写作的动力!
不管茶叶蛋还是大餐,都是您的小小心意~
关注我们
和这个时代一起前行
长按识别二维码关注我们
浏览每日短篇国际英语新闻研报,
点击下方 原文链接 进入灰岩官网,收听更多课程。