美文网首页
参数更新策略算法

参数更新策略算法

作者: Echoooo_o | 来源:发表于2019-06-02 13:57 被阅读0次

SGD

将原来的权重W 减去 学习率和偏导数的积

class SGD:

    """随机梯度下降法(Stochastic Gradient Descent)"""

    def __init__(self, lr=0.01):
        self.lr = lr
        
    def update(self, params, grads):
        for key in params.keys():
            params[key] -= self.lr * grads[key] 

策略:朝着梯度的方向前进
优点:简单易于实现
缺点:效率低

Momentum

class Momentum:

    """Momentum SGD"""

    def __init__(self, lr=0.01, momentum=0.9):
        self.lr = lr
        self.momentum = momentum
        self.v = None
        
    def update(self, params, grads):
        if self.v is None:
            self.v = {}
            for key, val in params.items():                                
                self.v[key] = np.zeros_like(val)
"""
In  [1]: a = np.arange(24).reshape(4,6)
...      b = np.zeros_like(a)

Out [1]: (4, 6) #a.shape
Out [1]: (4, 6) #b.shape
Out [1]: array([[0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0],
                [0, 0, 0, 0, 0, 0]]) # a_0

生成一个和你所给数组a相同shape的全0数组
"""
                
        for key in params.keys():
            self.v[key] = self.momentum*self.v[key] - self.lr*grads[key] 
            params[key] += self.v[key]

策略:模拟物体物理运动 使变化稳定
优点:可以更快地朝x轴方向靠近
缺点:超参数学习率不好确定

AdaGrad

策略:AdaGrad会为参数的每个元素适当地调整学习率 参数的元素中变动较大(被大幅更新)的元素的学习率将变小
优点:函数的取值高效地向着最小值移动
缺点:如果无止境地学习,更新量就会变为0,完全不再更新(梯度消失)

Adam

Adam算法跑得比SGD更快,却存在两大缺陷:结果可能不收敛、可能找不到全局最优解。也就是说它的泛化能力较差,在解决某些问题上,表现还不如SGD

相关文章

  • 参数更新策略算法

    SGD 将原来的权重W 减去 学习率和偏导数的积 策略:朝着梯度的方向前进优点:简单易于实现缺点:效率低 Mome...

  • 策略迭代(Policy Iteration)

    1. 策略迭代算法: 初始化.策略评估:(一般而言,下式中为固定策略由于策略更新)策略更新:如果与上次迭代相比没有...

  • 策略

    iOS设计模式 - 策略 原理图 说明 把解决相同问题的算法抽象成策略(相同问题指的是输入参数相同,但根据算法不同...

  • 优化方法总结

    优化算法框架 神经网络模型中有多种优化算法,优化算法的作用用来优化更新参数。对于优化算法而言,主要的框架如下。参数...

  • 关于在线学习算法ftrl的理解

    今晚在看ftrl算法的参数更新策略, 看得不是很懂,然后就手抄一下,就感觉知道是那么回事了。 当中损失函数对向量的...

  • 深度学习和强化学习(四)从on-policy的SARSA到off

    SARSA算法,属于在线控制这一类,即一直使用一个策略来更新价值函数和选择新的动作,而这个策略是ϵ−贪婪法 算法流...

  • 入门深度学习的相关术语概念(2)成都大数据零基础培训

    动量 Momentum是Gradient Descent算法的扩展,可加速或抑制参数更新。在实践中,在梯度下降更新...

  • 第七节超参数

    超参数:在算法运行前需要决定的参数;模型参数:算法过程中学习的参数。KNN算法没有模型参数;KNN算法中的k是典型...

  • BGD,SGD,MBGD 梯度下降法

    利用样本学习误差更新参数的3种策略 BGD(Batch gradient descent)批量梯度下降法:每次迭代...

  • 机器学习4:局部加权回归

    参数学习算法,非参数学习算法 参数学习算法,用固定的明确的参数进行数据的拟合。比如线性回归。非参数学习算法,使用的...

网友评论

      本文标题:参数更新策略算法

      本文链接:https://www.haomeiwen.com/subject/dantxctx.html