BP神经网络,指的是用了“BP算法”进行训练的“多层感知器模型”。 多层感知器(MLP,Multilayer Perceptron)是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上,可以解决任何线性不可分问题。 不要把算法和网络搞混了。
经过几十年的发展,神经网络理论在模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功。
将人工神经网络应用至实际问题时,需先分析问题有哪些参量,如何抽象建立模型,最后选择一种适当的神经网络模型,经过训练即可映射该问题。
人工神经网络由于其独特的模型结构和固有的非线性模拟能力,以及高度的自适应和容错特性等突出特征,在控制系统中获得了广泛的应用。其在各类控制器框架结构的基础上,加入了非线性自适应学习机制,从而使控制器具有更好的性能。基本的控制结构有监督控制、直接逆模控制、模型参考控制、内模控制、预测控制、最优决策控制等。
卷积神经网络 (CNN) 是一种神经网络,特别适用于涉及处理和分析具有网格状结构的数据(如图像)的任务。CNN能够通过对数据应用一组学习的过滤器来处理和分析图像,这使他们能够学习不同尺度的特征和模式,并自动识别图像中的对象和特征。
CNN在各种任务上取得成功的关键原因之一是因为它们能够自动从数据中学习特征,这使他们能够在各种任务上表现良好,而无需大量的手动调整或特征工程。这对于图像分类、对象检测和分割等任务特别有用,在这些任务中,模型需要能够识别和分类图像中的对象和特征。
CNN被广泛使用的另一个原因是,它们能够在整个输入中使用共享权重和偏差来有效地处理数据,这使他们能够学习与整个输入相关的特征。这对于图像分类等任务特别有用,在这些任务中,模型需要能够识别和分类对象和特征,而不管它们在图像中的位置如何。
总体而言,CNN在广泛的任务上取得了成功,因为它们能够自动从数据中学习特征,并且因为它们能够在整个输入中使用共享权重和偏差来有效地处理数据。这使它们成为涉及处理和分析具有网格状结构的数据(如图像)的任务的强大工具。
RNN建立在与FNN相同的计算单元上,两者之间区别在于:组成这些神经元相互关联的架构有所不同。FNN是建立在层面之上,其中信息从输入单元向输出单元单向流动,在这些连通模式中并不存在不定向的循环。尽管大脑的神经元确实在层面之间的连接上包含有不定向循环,我们还是加入了这些限制条件,以牺牲计算的功能性为代价来简化这一训练过程。因此,为了创建更为强大的计算系统,我们允许RNN打破这些人为设定强加性质的规定:RNN无需在层面之间构建,同时定向循环也会出现。事实上,神经元在实际中是允许彼此相连的。
人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别可处理一些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,神经网络方法允许样品有较大的缺损和畸变神经网络的类型很多,建立神经网络模型时,根据研究对象的特点,可以考虑不同的神经网络模型 前馈型BP网络,即误差逆传播神经网络是最常用,最流行的神经网络BP网络的输入和输出关系可以看成是一种映射关系,即每一组输入对应一组输出BP算法是最著名的多层前向网络训练算法,尽管存在收敛速度慢,局部极值等缺点,但可通过各种改进措施来提高它的收敛速度,克服局部极值现象,而且具有简单,易行,计算量小,并行性强等特点,目前仍是多层前向网络的首选算法
多层前向BP网络的优点:
网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题;
网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力;
网络具有一定的推广、概括能力。
多层前向BP网络的问题:
从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;
网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。
难以解决应用问题的实例规模和网络规模间的矛盾。这涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题;
网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。为此,有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题;
新加入的样本要影响已学习成功的网络,而且刻画每个输入样本的特征的数目也必须相同;
网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律
由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,必然会出现“锯齿形现象”,这使得BP算法低效;
存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;
为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。
我觉得可以把(state,action) pair输入,输出一个Q(state,action) 但这样要算出在这个state 所有action的Q(state,action)要算N次, N是action的个数
也可以只把state 当做输入,让神经网络的输出个数是N,这样只要过一遍神经网络就可以得到所有的action 的Q。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)