• 梯度下降学习总结


    1.梯度的理解

    在机器学习过程中,经常使用梯度下降方法求解损失函数的最小值。梯度的值为函数在某一点,沿着各向量方向的偏导数。沿着梯度相反的方向,函数减小最快,更容易找到函数的最小值。

    2.梯度下降法的矩阵表示

    函数的表达式为$h_ heta(X)=X heta$,损失函数的表达式为$J( heta)=sum_{i=1}^m(h_ heta(x_i)-y_i)^2$,其矩阵表达式为$J( heta)=frac{1}{2}(X heta-Y)^T(X heta-Y)$,损失函数对于$ heta$向量的偏导数为$frac{partial}{partial heta}J( heta)=X^T(X heta-Y)$。

    3.权重计算:使用全部样本、使用部分样本

    全部样本算权重

    1 h = sigmoid(dataMatrix * weights)
    2 error = labelMat - h
    3 weight = weight + alpah * error * dataMatrix.transpose()

    一个样本算权重

    1 h = sigmoid(sum(dataMatrix[i] * weights))
    2 error = classLabel[i] - h
    3 weight = weight + alpha * error * dataMatrix[i]

     h是sigmoid函数的值,error是算出来的值与label之间的误差,然后使用alpha系数、误差、输入更新权重的值。

    此方法没有使用梯度的计算值,而是使用alpha、error、输入值,更新权重。

    4.数值梯度与解析梯度

    理论推导使用解析梯度,在工程计算中,常使用数值梯度进行计算。

    5.梯度下降的代数方式描述

    5.1损失函数

    假设函数表示为$h_ heta(x_1,x_2,...,x_n)= heta_0+ heta_1 x_1+...+ heta_n x_n$,其中$ heta_i(i=0,1,2,...,n)$为模型参数,$x_i(i=0,1,2,...,n)$为每个样本的n个特征值。这里增加一个特征$x_0 = 1$,即可表示为$h_ heta(x_0,x_1,...,x_n)=sum_{i=0}^m heta_ix_i$,对于上面的函数,损失函数如下。

    $$J( heta_0, heta_1,..., heta_n)=frac{1}{2m}sum_{j=0}^m(h_ heta(x_0^{(j)},x_1^{(j)},...,x_n^{(j)})-y_i)^2$$

    5.2相关参数

    主要参数为$ heta_0, heta_1,..., heta_n$,算法终止距离$epsilon$以及步长$alpha$。

    5.3算法过程

    1)确定梯度

    确定当前位置的损失函数的梯度,对于$ heta_i$,其梯度表达式为$frac{partial}{partial heta_i}J( heta_0, heta_1,..., heta_n)$

    2)步长乘以梯度

    用步长乘以损失函数的梯度,得到当前位置下降的距离,即

    $alphafrac{partial}{partial heta_i}J( heta_0, heta_1,..., heta_n)$,为梯度下降中的关键一步

    3)检查终止条件

    确定是否所有$ heta_i$梯度下降的距离都小于$epsilon$,如果小于$epsilon$则算法终止,当前所有$ heta_i(i=0,1,...,n)$即为最张结果,否则进行第4步。

    4)更新参数

    更新所有$ heta$,对于$ heta_i$,其更新方式为$ heta_i= heta_i-alphafrac{partial}{partial heta_i}J( heta_0, heta_1,..., heta_n)$

  • 相关阅读:
    ASP.NET Web API 2 框架揭秘
    跨境之二 对外服务接口接收订单数据(跨境通关申报系统)
    关于程序员的59条搞笑但却真实无比的编程语录
    linux终端常用快捷键
    [ json editor] 如何在网页中使用Json editor 插件
    【简洁之美】裴波那切数列生成器 python
    python 实现树结构的打印
    windows python文件拷贝到linux上执行问题
    python 中变量的命名方法
    <select> 标签使用
  • 原文地址:https://www.cnblogs.com/guesswhy/p/11272935.html
Copyright © 2020-2023  润新知