线性回归函数的梯度下降算法求解流程


1.对于线性回归,假设函数表示为:
h_\theta \left( x_{1}, x_{2}, ..., x_{n} \right) = \theta_{0} + \theta_{1}x_{1} + ... + \theta_{n}x_{n} ,
其中:

  • \theta_i(i=0,1,2,...,n)为模型参数
  • x_{i}(i=0,1,2,...,n)为每个样本的n个特征值

2.同样是线性回归,对应于上面的假设函数,代价(损失)函数为:
J \left( \theta_0, \theta_1, ... , \theta_n \right) = \frac {1}{2m}\sum\limits_{i=1}^m \left( h_{\theta}(x_{0}^{(i)}, x_{1}^{(i)}, ... , x_{n}^{(i)})-y^{(i)} \right)^{2}
(PS: 为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。)


3.通过求解代价函数的最小值, 得到与数据最匹配的拟合函数


4.通过梯度下降算法, 求解代价函数的最小值。
    先决条件: 确认优化模型的假设函数和损失函数
    a. 初始化算法相关参数:
      - \theta_0, \theta_1, ... , \theta_n,我喜欢将所有的θ初始化为0
      - 将步长α 初始化为1
      - 算法终止距离ε
    b. 算法过程:
      - 1)确定当前位置的代价函数的梯度,对于θi,其梯度表达式如下:
          \frac{\partial }{\partial {{\theta }_{i}}}J \left( \theta_0, \theta_1, ... , \theta_n \right)
      - 2) 用步长乘以损失函数的梯度,得到当前位置下降的距离,即:
          \alpha \frac{\partial }{\partial {{\theta }_{i}}}J \left( \theta_0, \theta_1, ... , \theta_n \right) , 对应于前面登山例子中的某一步。
      - 3) 确定是否所有的\theta_{i}梯度下降都小于终止距离ε ?
              - 都小于终止距离ε则算法终止,当前所有的\theta_i(i=0,1,2,...,n)即为最终结果。
              - 否则进入步骤4
      - 4)更新所有的\theta 对于 \theta_{i} , 更新完毕后继续转入步骤1。更新表达式为:
          {\theta_{i}}:={\theta_{i}}-\alpha \frac{\partial }{\partial {\theta_{i}}}J\left(\theta_{0}, \theta_{1}, ... , \theta_{n} \right)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容