hermitwyc的个人博客分享 http://blog.sciencenet.cn/u/hermitwyc

博文

最小二乘法与梯度下降法的简单实例

已有 5913 次阅读 2019-5-4 21:36 |系统分类:科研笔记

最小二乘法

最小二乘法是通过最小化误差的平方和,使得拟合对象无限接近目标对象

 

相比于绝对值的方法,平方和的方法可以得到更短的距离,使得拟合函数更接近于目标函数

 

一个简单的例子,有一组数据(1,6),(3,5),(5,7),(6,12),找出一条直线y=ax+b与这几个点最为匹配。

 

首先我们求一下各点到这条直线的距离的和

blob.png

得 [6-(a+b)]^2 + [5-(3a+b)]^2 + [7-(5a+b)]^2 +[12-(6a+b)]^2

然后我们为了求这个式子的最小值,我们要对a与b求偏导数并令偏导数=0

得15a+4b=15 71a+15b=128

最终可求a与b的值得到直线方程

 

总的流程来说就是先求各点到要求的方程距离之和,然后对所有的未知数做偏导并且令偏导数等于0,然后利用方程组的求解求出所有未知数,就可以求出最终的最佳拟合函数。

 

梯度下降法

梯度下降法是沿梯度下降的方向求解函数极小值,迭代公式为blob.png

其中blob.png代表梯度负方向,blob.png代表梯度搜索步长,步长的确定一般和实际问题有关。

 

一个简单的例子,求函数blob.png的极小值,假设我们的起点为(2,4)

我们先求梯度,梯度的算法就是求该未知数的偏导,这里就对x求导得到梯度为blob.png

第二步我们沿与梯度相反的方向移动,移动距离为blob.png,其中blob.png为步长,太大可能会波动,太小可能会收敛过慢,这里我们取步长为0.1,那么我们第一次移动到的点为2-0.1*4,x的值变为了1.6,可以看到x向极小值点在移动

 

第三步重复第二步的工作,第二次的迭代移动到的点为1.6-0.1*3.2=1.28,继续重复,直到两次迭代中x的移动特别小,比如0.00001,我们这时候就认为x已经收敛到了局部的最小值

 

最后输出x,得到结果

 

我们常用的两种梯度算法为随机梯度下降法和批量梯度下降法,随机梯度下降法指每次迭代只用一个样本对参数进行更新,优点是速度快,缺点是只用了一个样本不能代表全体样本的一个总趋势,可能只会收敛到局部最优。而批量梯度下降法一次迭代进行了所有样本的计算,能准确的朝着极值前进,迭代次数也会少,但由于一次迭代用了所有样本,速度会慢很多。



https://blog.sciencenet.cn/blog-3413658-1177114.html

上一篇:第一章ppt
下一篇:第四章朴素贝叶斯法PPT
收藏 IP: 119.164.132.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 22:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部