M-P模型很简单,仅仅是一种单个神经元上的建模,并没有形成网络,没法去完成一些特定的任务。由此人们提出了神经网络的概念,而早期的研究,由于当时硬件水平和计算条件的限制,神经网络结构一般比较简单。
上面我们提到两层神经网络,其中隐层的权值是需要我们学习的,而这个权值我们不能直接获取,所以我们利用输出层得到输出结果和期望输出的误差来间接调整隐层的权值。BP算法的学习过程由信号的正向传播和误差的反向传播两个过程组成。
BP网络有三个要素:
网络拓扑结构便是我们之前总结的两层神经网络结构,我们主要从传递函数和学习算法进行整理阐述下。
可以看出根据上面的S函数,我们会整合所有输入,输出一个新的值,从之前生物学的原理来看也就是说神经元是否被激活。
有三层神经网络,我们自然而然就会想到将神经网络加入更多层,扩展到深度神经网络,但是一个非常显著的问题就是参数的个数,比如之前我们的三层神经网络每层有1000个节点,那么我们需要调整的权值参数就达到了10^9量级,这问题限制了很大程度上限制了深度神经网络的发展。这就要把大哥叫出来帮忙了,就是近期一直火热的deeplearning,由于本人在这方面也是门外汉,只从经典的卷积神经网络(CNN)进行一些归纳整理。
根据网上的资料总结,CNN的核心点有三个:
上面我们给出了MDP的定义,作为一个智能体(agent),当它在决定下一步应该走什么时,最简单的方式就是看下Reward函数的值是多少,即比较走不同动作的回报,从而做出决定。但是就像下棋的时候,我们每走一步都会向后考虑,所谓“走一步看三步”,所以这里我们只看一步即一次Reward函数是不够的,这就引出了值函数(ValueFunction)也叫折算累积回报(discountedcumulativereward)。
噗噗噗,终于写到这里了,综上我们将马里奥只能AI需要用到的算法简单整理了下(如有任何谬误请指出^v^)。下面我们结合两种成熟的算法,归纳整理马里奥AI的两种实现方式。
所谓NEAT算法即通过增强拓扑的进化神经网络(EvolvingNeuralNetworksthroughAugmentingTopologies),算法不同于我们之前讨论的传统神经网络,它不仅会训练和修改网络的权值,同时会修改网络的拓扑结构,包括新增节点和删除节点等操作。NEAT算法几个核心的概念是:
综上便是从最基本的神经网络算法+增强学习,到将这些算法用在智能AI上的一些基本整理,长舒一口气,整理了好久。。。关于智能AI的应用有很多,也跟好多小伙伴讨论过,包括智能测试、新式游戏、游戏平衡性调整以及AI机器人的加入。这个领域除了枯燥的理论知识还能玩游戏,想想有点小激动。总结完毕,如有任何纰漏还请指出,我会尽快修改,谢谢^v^。