特点:具有超线性收敛速度,只需要计算梯度,避免计算二阶导数 算法步骤 \(step0:\) 给定初始值$x_0$,容许误差$\epsilon$ \(step1:\) 计算梯度$g_k=\nabla f(x_k)$,if \(norm(g_k)<=\epsilon\), \(break;\) 输出当前 ...
分类:
编程语言 时间:
2020-08-09 20:21:06
阅读次数:
98
1. 基本算法 1.1 随机梯度下降 1.2 动量算法 1.3 nesterov动量算法 2. 自适应学习率算法 2.1 AdaGrad 2.2 RMSProp 2.3 Adam 3. 二阶导数方法 3.1 牛顿法 3.2 共轭梯度法 1.1 随机梯度下降 从数据集中随机抽取m个小批量样本(满足样本 ...
分类:
编程语言 时间:
2020-04-02 01:36:38
阅读次数:
106
1.代码 %%共轭梯度法(用于求解正定对称方程组) %%线性方程组M*X = b,M是方阵,X0是初始解向量,epsilon是控制精度 function CGM = Conjugate_gradient_method(M,b,X0,epsilon) m = size(M);up = 1000;e = ...
分类:
其他好文 时间:
2019-12-30 14:18:32
阅读次数:
142
协同过滤是一类基于用户行为数据的推荐方法,主要是利用已有用户群体过去的行为或意见来预测当前用户的偏好,进而为其产生推荐。能用于协同过滤的算法很多,大致可分为:基于最近邻推荐和基于模型的推荐。其中基于最近邻推荐主要是通过计算用户或物品之间的相似度来进行推荐,而基于模型的推荐则通常要用到一些机器学习算法 ...
分类:
其他好文 时间:
2019-10-25 20:35:18
阅读次数:
101
minimize.m:共轭梯度法更新BP算法权值 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ Carl Edward Rasmussen在高斯机器学习的MATLAB代码中写到一个优化类的函数:minimize.m,同时,Geoff Hinton在用 ...
分类:
编程语言 时间:
2019-09-26 21:18:16
阅读次数:
130
Optimizer SGD Momentum Nesterov(牛顿动量) 二.自适应参数的优化算法 这类算法最大的特点就是,每个参数有不同的学习率,在整个学习过程中自动适应这些学习率。 AdaGrad RMSProp Adam 二阶近似的优化算法 牛顿法 共轭梯度法 BFGS LBFGS ...
分类:
编程语言 时间:
2019-07-23 15:21:57
阅读次数:
127
在机器学习中,有很多的问题并没有解析形式的解,或者有解析形式的解但是计算量很大(譬如,超定问题的最小二乘解),对于此类问题,通常我们会选择采用一种迭代的优化方式进行求解。 这些常用的优化算法包括:梯度下降法(Gradient Descent),共轭梯度法(Conjugate Gradient),Mo ...
分类:
编程语言 时间:
2018-09-29 21:34:02
阅读次数:
225
共轭梯度法 [TOC] 我们关注共轭梯度法主要有两个原因 1. 它们是求解大规模矩阵方程最有效的方法之一 2. 它们可以经过一些调整去处理非线性的最优化问题 本章我们将讨论共轭梯度法在处理 线性 和 非线性 问题上的优越性质。 首先,线性共轭梯度法是高斯消元法的变种,它适用于处理大规模矩阵方程问题, ...
分类:
其他好文 时间:
2018-08-10 19:47:44
阅读次数:
194
一开始用c++的运算符重载程序总是莫名其妙的崩掉,然后以为是运算符重载的问题就写了个class对矩阵重新封装,结果还是崩,然后好久才发现是我把空间开的太大导致程序崩掉,无语,这样就浪费了我一个上午。。。。 课本上的例题: $$\begin{equation}{\left[ \begin{array} ...
分类:
其他好文 时间:
2018-06-10 15:13:08
阅读次数:
213