BP算法的实现步骤

BP算法的实现步骤,第1张

BP算法实现步骤(软件):

1)初始化

2)输入训练样本对,计算各层输出

3)计算网络输出误差

4)计算各层误差信号

5)调整各层权值

6)检查网络总误差是否达到精度要求

满足,则训练结束;不满足,则返回步骤2)

3、多层感知器(基于BP算法)的主要能力:

1)非线性映射:足够多样本->学习训练

能学习和存储大量输入-输出模式映射关系。只要能提供足够多的样本模式对供BP网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线橡液性映射。

2)泛化:输入梁肆物新样本(训练时未有)->完成正确的输入、输出映射

3)容错:个别样本误差不能左右对权矩阵的调整

4、标准BP算法的缺陷:

1)易形成局部极小(属贪婪算法,局部最优)而得不到全局最优;

2)训练次数多使得学习效率低下,收敛速度慢(需做大量运算);

3)隐节点的选取缺乏理论支持;

4)训练时学习新样本有遗忘旧样本趋势。

注3:改进算法—增加动量项、自适应调整学习速率(这个似乎不错)及引入雹春陡度因子

基追踪(basis pursuit)算法是一种用来求解未知参量L1范数最小化的等式约束问题的算法。

基追踪是通常在信号处理中使用的一种对已知系数稀疏化的手段。将优化问题中的L0范数转化为L1范数的求解就是基追踪的基本思想。

比如我原先有一个优化问题:

min ||x||_0(就是L0范数的最小值)subject to y=Ax。

这个||x||_0,就是表示x中有多少个非零元素;那么我们要求min ||x||_0,就是想知道含有最多0元素的那个解x是什么。

但是呢,L0范数有非凸性,不怎么好求解,这时我们就转而求解L1范数的优化问题。

那么,基追踪算法就是磨备转而求解

min||x||_1(就是L1范数的最小值)subject to||y-Ax||_2=0(2范数)

这个||x||_1,就是x的绝对值;那么我们要求min||x||_1,就是求绝对值最小的那个解x是什么。

更通俗一点来讲,比如我要求一个线性方程组

Ax=b

x就是我们要求的未知量。这个A矩阵不是个方阵,是个欠定矩阵,那么就导致这个线性方程组会有若干组解瞎升毁。那么我们到底要哪组解好呢?

如果在一般情况下,可以直接用最小二乘法来获得一组最小二乘解,就是x=(A'A)^(-1)A'b。但是我们现在利用基追踪,就是想要来获得一组含0元素最多的解。

那么我们为什么希望我们获得的解里面0元素越多越好呢?这就要谈到“稀疏化”了。所谓稀疏化,就是希望我获得的这个解放眼望去全是0,非0元素稀稀疏疏的。这样在大样本或者高维数的情况下,计算速度不会太慢,也不会太笑桐占计算机的内存。当然,所谓稀疏解是有一定精度误差的,想要提高计算速度,必然会损失一点精度,这是不可避免的。

可以参考:Stephen Byod 的<Distributed Optimization and Statistical Learning via the ADMM>41页


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12468652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存