在看人工神经网络的时候,经常有些书提及一些提高或改善网络学习效率的方法。这里面包括很多,有很多从其它学科借鉴过来的想法,知识。其中,共轭梯度下降法就是一个比较常见,它属于二阶技术,也经常被用到无约束优化的情形下。
在神经网络的书中,这个方法总是被赋予很少的笔墨,但过于简短的描述常带来更多的疑惑。起码我没有那么多书去查阅,记下点什么是个更好的选择,一是从中能读到很有启发的产生过程,二是弥补这慢慢记忆衰退的大脑。(每天脑袋里有那么多东西跑来跑去,过目不忘,算了吧)
我这篇内容主要来自:An Introduction to the Conjugate Gradient Method Without the Agonizing Pain
, 很容易搜到,因为很多地方引用。原文的笔者是因为各个教科书(不管是什么地方啦)对此方法阐述的含含糊糊不满意,遂萌生了自己要把它解释清楚的强烈冲动,呵呵。
先阐明下应用场景:它解决的是优化问题,理念很简单,从二次型优化出发。
二次型优化有时候不是很明显有谷底嘛(以此种为例),解一下方程不就成了。但共轭梯度下降法作为一种迭代方法,而不是直接求解,当然是因为矩阵计算比较费劲,比较耗内存。但共轭梯度下降适合的是稀疏矩阵
,毕竟它需要迭代好几步的,如果矩阵比较稠密,最好的方式,你还是因式分解系数矩阵去计算吧,用不上这种逼近算法了,处理矩阵的时间可能和迭代的时间差别不大,且分解完后,求解相当方便。
给一个二次型形式: f(x) = 1/2 x'Ax - b'x + c, f'(x) = 1/2 A'x + 1/2Ax + b
A是矩阵,b是向量。当A是正定对阵矩阵的时候,f(x)在当A(x)=b的时候被最小化。其实A不对阵也无所谓,因为1/2(A' + A),这个可是对称的。
为什么正定对称矩阵有如此好的性质,讨论的时候中意它,负定,奇异非正定等都有不同的图形表象
?考虑任意点p,以及最优点x=A''b(这里仍然用''表示逆矩阵)。
f(p) = f(x) + 1/2(p-x)'A(p-x),当p!=x时,很显然f(p) = f(x).
一个点下降最快的方向 -f'(xi) = b - Axi
, 我们以ei = xi - x
,来标记我们离最终想要结果间的偏差。那么ri = b - Axi就标记我们离正确的b有多远,很容易注意到 ri = -f'(xi) = -Aei
。每一次看到r记号
,记得它等同梯度
就行了。
假设我们从x0点开始,我们沿着梯度下降的方向走,那么需要找到下一个点x1 = x0 + ar(0)
. 那么问题来了,每一次我们应该迈多大步,也就是要求那个a,这里a在一些式子里的名字叫做学习率
。
------
上面一直说的是最速下降,结合图来说一下,上了一张大图,好像是模式分类里自己贴的最大图了。当我们寻找梯度方向的时候,梯度的方向首先是垂直于(a)图的等高线的,(b)图的二次型才是真是的函数图像。
最开始看的时候,我脑袋里面一直认为最速下降方向是往最低点的方向指。直到自己在文章的引导表述里觉得有些说不通,无奈亲手代入点解了下结果,才发现自己错了,梯度的方向是如(a)图里的实线方向,平行于x1,x2平面的。(a)图一直认为最简单,都没在意,教训啊。况且对x的求导得出的结果就是关于x1,x2的一次的, 肯定是平行于坐标平面,说简单点就是解出来的f'(x)就是平面上一点。
(b)图里的平面和抛物面的交线是个抛物线,梯度下降的候选点就在这条抛物线上。到哪个点最低,好像大家在(c)图上一眼就看的出来,但程序不知道啊,会试图在这条抛物线上(也等同于就是在梯度下降的那条实线上)做搜索。当上面的学习率式子对a求导的时候,会得到
d(f(x1))/da = f'(x1)'r(0)
。
这个结果一出,自然而然,与上一个点的梯度方向垂直的点是最速下降的。这个点自然是抛物线上的最低点的,不用怀疑。
直接引用结果了哈, a = r(0)'r(0)/r(0)'Ar(0)
在最速下降这一块,得到的式子也就是这个 x(i+1) = x(i) + a(i)r(i)
如果两边都乘以-A,再加上b,那么上式就变成下式
r(i+1) = r(i) - a(i)Ar(i)
这样有什么好处呢,因为变换前的式子的最速下降算法的最大开销在于每次的矩阵乘法运算
,包括两次,一次求r(i),一次求a(i), 变换后的话就可以只有一次矩阵乘法[Ar(i)]就可以了,保存起来第二次调用直接用。当然r(0)那一次矩阵运算还是免不掉的。
一点点最速下降也写了这么多文字,不过还是记详细点好。自己作为寥寥的几个看官,再次回到这页面的时候若想追究些细节还有迹可循。
文章分几节来写比较好,所以分割此篇作为(1)。
还是会往共轭下降方向走,下面会从特征向量方向切入。
分享到:
相关推荐
引入了二次形式的概念并用于推导最速下降、共轭方向和共轭梯度的方法。 特征向量被解释并用于检查雅可比方法、最速下降和共轭梯度的收敛性。 其他主题包括预处理和非线性共轭梯度方法。 我已竭尽全力使本文易于阅读...
共轭梯度法则在保持简单性的同时,提供了更快的二次收敛性,但并不直接适用于BP网络,需要通过Fletcher-Reeves共轭梯度法进行修改。拟牛顿法是另一种替代方案,它可能比共轭梯度法收敛更快,但对优化过程的精度要求...
梯度下降法是一种常用的优化算法,课程笔记中对梯度下降法进行了详细的讲解,包括了梯度下降法的定义、搜索方向、步长选择等方面的内容。此外,课程笔记还提供了梯度下降法的实现代码,帮助学生更好地理解和应用梯度...
2. 共轭梯度、L-BFGS等高效优化算法在机器学习中也有广泛应用。 八、推荐系统 推荐系统利用协同过滤、基于内容的推荐以及混合方法,为用户个性化推荐商品或服务。 九、生成对抗网络(GANs) GANs是一种深度学习...
- **梯度下降法**:介绍了一种基本的优化算法及其变体。 - **最速下降法**:讨论了几种不同的下降方向。 - **算法的选择**:根据问题的特点推荐了不同的算法。 - **拉格朗日法与增广拉格朗日法**:对比了两种常用的...
- `traincgb`:共轭梯度反向传播,带鲍威尔重启动。 - `trainlm`:Levenberg-Marquardt反向传播。 - `trainrp`:RPROP反向传播。 5. 绘图功能: - `plotfit`:绘制拟合情况。 - `plotresponse`:绘制动态网络的时间...
### PRML读书会笔记知识点概览 #### 一、引言 《Pattern Recognition and Machine Learning》(PRML)是一本经典的机器学习教材,由Christopher M. Bishop撰写。本书以其全面性和深度著称,在机器学习领域内被视为...
在训练神经网络时,工具箱提供了一系列的训练函数,包括梯度下降(`traingd`)、共轭梯度法(`traincg*`)、Levenberg-Marquardt算法(`trainlm`)以及RPROP(`trainrp`)等。这些算法的选择取决于问题的性质和数据的复杂性...
常见的方法有梯度下降法、牛顿法、拟牛顿法(如BFGS和L-BFGS)以及共轭梯度法。这些方法基于函数的一阶或二阶导数信息来迭代接近最优解。 第六章 约束最优化方法:当目标函数受到一系列约束条件限制时,需要采用...
此外,还有更高效的算法,如拟牛顿法和共轭梯度法,它们在保持全局收敛性的前提下,通过更精确地近似海森矩阵(Hessian矩阵)来加速收敛。 在机器学习中,凸优化的应用广泛。例如,逻辑回归、支持向量机、线性回归...
优化算法:共轭梯度,BFGS,L-BFGS 多类别分类:一对多分类 过度拟合:减少特征空间; 正则化。 正则化和正则化线性/逻辑回归,梯度下降 第4周:神经网络:表示形式 非线性假设 动机,代表 前向传播算法 学习功
**求解方法**:同样可以通过梯度下降法或更高效的算法如牛顿法、共轭梯度法等来最小化损失函数。 **多分类问题**:对于多于两类的问题,可以使用“一对多”策略(one-vs-all)来进行多分类。 #### 二、模型评估与...
除了梯度下降法,还有其他高级的凸优化算法,如拟牛顿法(如BFGS和L-BFGS)、共轭梯度法和Nesterov加速梯度等,它们在处理大规模问题时表现出更高的效率和精度。 在实际应用中,凸优化不仅用于训练机器学习模型,还...
- **共轭梯度法**:在某些情况下比梯度下降法更快的一种算法。 - **二阶条件**:用于判断局部极小点或极大点的充分条件。 - **凸函数**:凸函数的性质对于确定全局最优解非常重要。 - **海森矩阵**:在多元函数中...
对于线性规划问题,笔记提到了拉格朗日乘数法、梯度下降法等优化算法,以及如何将约束问题转化为无约束问题,如罚函数法(外点罚函数和内点罚函数)和障碍函数法。 最后,笔记还提及了遗传算法中的变异运算,这是...
- 在模式识别和分类问题中,该定理可以用来构建决策边界。 - 在凸优化问题中,分离定理有助于理解优化问题的可行解集结构。 #### 四、共轭凸函数 ##### 4.1 共轭凸函数 共轭凸函数是凸分析中的一个重要概念,它...
- **优化算法**:优化算法如梯度下降法、共轭梯度法等在图像处理中用于求解最优解。 #### 4. 实验与应用案例 - 书中可能包含了一些具体的实验案例,展示如何运用上述数学方法解决实际问题。 ### 四、教育意义 该...
1. **数值线性代数**:矩阵运算、线性方程组的求解方法(如高斯消元法、LU分解、QR分解、SVD分解等),以及迭代法(如雅可比法、高斯-塞德尔法、共轭梯度法等)。 2. **插值与拟合**:拉格朗日插值、牛顿插值、样条...