ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

代价函数 and 梯度下降算法

2022-04-27 09:34:58  阅读:197  来源: 互联网

标签:frac 函数 梯度 算法 part theta alpha 代价 我们


此系列笔记来源于

Coursera上吴恩达老师的机器学习课程


线性回归算法

回归问题中,根据已给的数据集,拟合出一个线性的函数。

代价函数

均方误差函数 Mean squared error

\(J(\theta_0, \theta_1) = \frac{1}{2m}\sum_{i=1}^{m}(y'-y_i)^2=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x_i)-y_i)^2\)

前面有个二分之一是为了计算机更好的计算梯度下降,因为求导后\(\frac12\)会被指数2消掉

我们假设拟合曲线为\(h_\theta(x) = \theta_1x\),那么对于不同的\(\theta1\)我们都可以计算出其对应的\(J(\theta1)\)的值,那么便可以对\(J(\theta)\)作出相关函数,便可以求得我们所要的最优解。

梯度下降算法

可以用来最小化代价函数 J

假设代价函数 \(J(\theta_0,\theta_1)\),并设置一个初始点

image-20220426135750710

我们从初始点开始,不断进行计算:

\(\theta_j:=\theta_j-\alpha\frac{\part}{\part\theta_j}J(\theta_0, \theta_1),j =0、1\)

最终也就到达了我们所要的代价函数最小值点

PS:

1、:=为赋值运算符,将右边的值赋给左边

2、在这里\(\theta_0\)和\(\theta_1\)为同步更新,即

\(①temp0:=\theta_0-\alpha\frac{\part}{\part\theta_0}J(\theta_0, \theta_1)\)

\(②temp1:=\theta_1-\alpha\frac{\part}{\part\theta_1}J(\theta_0, \theta_1)\)

\(③\theta_0:=temp0\)

\(④\theta_1:=temp1\)

②式和3式不能颠倒,这将导致我们在计算②式的偏导时会产生错误,从而得出错误的答案

3、\(\alpha\)是学习速率,它决定了我们在图中的每一步的size,而偏导\(\frac{\part}{\part\theta_1}J(\theta_0, \theta_1)\)则决定了我们的移动方向,另外每一步的起点不同,那么最后所到达的终点也可能会不同。

4、在计算中我们不需要去减小\(\alpha\)的值,因为随着梯度下降,我们的导数也会趋于零(当导数为0时,即得到了optimal minimum),随之我们的每次下降的步伐也将越来越小。

5、另外\(\alpha\)如果太小那么最终求解时间会过长,\(\alpha\)太大那么最终可能会使得函数值为无法converge,甚至diverge

标签:frac,函数,梯度,算法,part,theta,alpha,代价,我们
来源: https://www.cnblogs.com/yramvj/p/16197584.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有