
1、用随机值初始化权重和偏差。
2、把输入传入网络,得到输出值。
3、计算预测值和真实值之间的误差。
4、对每一个产生误差的神经元,调整相应的(权重)值以减小误差。
5、重复迭代,直至得到网络权重的最佳值。
梯度下降法,它是解析法中最古老的一种,其他解析方法或是它的变形,或是受它的启发而得到的,因此它是最优化方法的基础。作为一种基本的算法,他在最优化方法中占有重要地位。其优点是工作量少,存储变量较少,初始点要求不高。其缺点是收敛慢,效率不高,有时达不到最优解。
第一步,测量系统当前的像质评价函数值;
第二步,对控制参量 施加扰动 ,随机生成扰动向量,各扰动向量相互独立且同为伯努利分布;
第三步,保持控制参量的扰动状态,测量此时系统的像质评价函数值;
第四步,计算像质评价函数值的改变量,并按迭代公式对控制参量的取值进行修正;下图为随机并行梯度下降算法的迭代公式。
在进行梯度估计时,可使用双边扰动来提高梯度估计的精度。也就是分别对控制电压参量 施加一次正向扰动和负向扰动,并测量两次扰动后的像质评价函数值的改变量作为性能指标梯度估计。在实际应用中,如使目标函数向极大方向优化,μ取负值;反之,μ取正。算法流程图如下图所示
大部分的机器学习模型里有直接或者间接地使用了梯度下降的算法。虽然不同的梯度下降算法在具体的实现细节上会稍有不同,但是主要的思想是大致一样的。梯度下降并不会涉及到太多太复杂的数学知识,只要稍微了解过微积分里导数的概念,就足够完全理解梯度下降的思想了。梯度下降的目的
绝大多数的机器学习模型都会有一个损失函数。比如常见的均方误差(Mean Squared Error)损失函数:
[公式] (1)
其中, [公式] 表示样本数据的实际目标值, [公式] 表示预测函数 [公式] 根据样本数据 [公式] 计算出的预测值。从几何意义上来说,它可以看成预测值和实际值的平均距离的平方。(关于更多的损失函数的介绍,可以参见这篇文章。)
损失函数用来衡量机器学习模型的精确度。一般来说,损失函数的值越小,模型的精确度就越高。如果要提高机器学习模型的精确度,就需要尽可能降低损失函数的值。而降低损失函数的值,我们一般采用梯度下降这个方法。所以,梯度下降的目的,就是为了最小化损失函数。
梯度下降的原理
寻找损失函数的最低点,就像我们在山谷里行走,希望找到山谷里最低的地方。那么如何寻找损失函数的最低点呢?在这里,我们使用了微积分里导数,通过求出函数导数的值,从而找到函数下降的方向或者是最低点(极值点)。
损失函数里一般有两种参数,一种是控制输入信号量的权重(Weight, 简称 [公式] ),另一种是调整函数与真实值距离的偏差(Bias,简称 [公式] )。我们所要做的工作,就是通过梯度下降方法,不断地调整权重 [公式] 和偏差b,使得损失函数的值变得越来越小。
假设某个损失函数里,模型损失值 [公式] 与权重 [公式] 有下图这样的关系。实际模型里,可能会有多个权重 [公式] ,这里为了简单起见,举只有一个权重 [公式] 的例子。权重 [公式] 目前的位置是在A点。此时如果求出A点的梯度 [公式] ,便可以知道如果我们向右移动,可以使损失函数的值变得更小。
通过计算梯度,我们就可以知道 [公式] 的移动方向,应该让 [公式] 向右走而不是向左走,也可以知道什么时候会到达最低点(梯度为0的地方)。
上面的例子里只出现了一个权重 [公式] , 实际的项目里样本数据会有很多个。对于每一个样本数据,我们都可以求出一个权重的梯度。这个时候,我们需要把各个样本数据的权重梯度加起来,并求出它们的平均值,用这个平均值来作为样本整体的权重梯度。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)