当前位置: 首页 > news >正文

做外贸学网站第一推广网

做外贸学网站,第一推广网,做网站客户最关心哪些问题,猪八戒上面还是淘宝上做网站技术好说明 在本专栏机器学习_墨#≯的博客-CSDN博客前面几篇文章中,大多采用梯度下降法来求解。其实还有很多的高级优化算法可以用来求解回归和分类问题,本文就是在吴恩达机器学习视频课程[1]的启示下,想要简单尝试一下Matlab自带的无约束多变量函数…

说明

    在本专栏机器学习_墨@#≯的博客-CSDN博客前面几篇文章中,大多采用梯度下降法来求解。其实还有很多的高级优化算法可以用来求解回归和分类问题,本文就是在吴恩达机器学习视频课程[1]的启示下,想要简单尝试一下Matlab自带的无约束多变量函数最小值优化工具:fminunc。

    本文的内容很简单,说白了就是一个函数的介绍和使用。(本来并不想形成一篇博文的,不过csdn一天连发两篇似乎有流量券,于是凑了一下本文)。不过,本文也算是对高级优化算法起了个头,后续如果接触和使用到更具体的算法我再在本文基础上补充。

Blog

2024.10.24  博文第一次撰写

目录

说明

目录

一、有关机器学习问题中的高级优化算法

二、Matlab自带的Fminunc函数介绍与实践

2.1 fminunc函数介绍

2.2 fminunc函数实践1 --- 曲面最小值

2.3 fminunc函数实践2 --- 直线拟合

三、总结

四、参考资料

五、数据与代码链接


一、有关机器学习问题中的高级优化算法

    在本专栏机器学习_墨@#≯的博客-CSDN博客前面几篇文章中,对于机器学习的典型问题如:回归、分类的解决,我们采用的方法是梯度下降法(特别是批量梯度下降法,当然也对其变体,如小批量梯度下降法以及随机梯度下降法做了介绍)。梯度下降法有其缺点:特别是要预设合适的超参数:学习率,此外,梯度下降法的收敛速度一般(当然,也与学习率有关)。  那么,有没有更加优越的方法?(不需要设置学习率,收敛速度还能更快?)。自然是有的!计算机以及数学发展这么多年,科研工作者们发明了很多的高级优化算法:比如共轭梯度算法(Conjugate Gradient)、牛顿法及其变体(如BFGS、L-BFGS)、AdaGrad算法、Adam算法等等。这些算法可以不需要人为地设置学习率,且收敛速度比梯度下降法更快(当然,这些都是以增加计算复杂度为代价的)。

    不过前述更高级的优化算法的原理理解需要比梯度下降法更复杂繁琐的数学推导,本文不做尝试。本文只是在吴恩达机器学习视频课程[1]的启示下,想要简单尝试一下Matlab自带的无约束多变量函数最小值优化工具fminunc。Fminunc使用的应该是拟牛顿法来进行优化求解。

二、Matlab自带的Fminunc函数介绍与实践

2.1 fminunc函数介绍

    fminunc函数是一个非线性规划求解器,可用于求解无约束多变量函数的最小值。其典型的调用方式如下:

输入包括:

costfunc是一个需要定义的函数,我们要在该函数体中给出需要优化的函数。

InitilaTheta 是解的初始值(这里的解就是前述损失函数costfunc的解)。

options 是优化选项,是一个结构体,可以在其中配置包括:所使用的优化算法(支持quasi-newton和trust-region)、允许的最大迭代次数等。

输出包括:

optTheta是优化完成后的参数值(损失函数的解)。

functionval是损失函数在该优化好的参数值下的损失值。

exitFlag是给出是否已经收敛的标签,为1表示已经收敛。

    使用fminunc函数的关键在于设计损失函数costfunc,在前述介绍的基础上,我们就可以基于该函数解决一些问题。

2.2 fminunc函数实践1 --- 曲面最小值

    视频课[1]中介绍该函数时,使用的例子是:

                    (2-1)

    在实数范围内求使得该损失函数取得最小值的theta值。其实有些数学基础的就直接可以看出当theta = [5 5]时,上式取得最小值0。 其函数图像如下图所示:

图2.1 costfunc图像

    对该损失函数的优化,代码如下:

图2.2 调用fminunc函数解决式(2-1)问题的代码

    得到的结果如下:

图2.3  优化结果

    其优化得到的theta值为5和5,损失值为0,并且收敛。 结果符合预期。

2.3 fminunc函数实践2 --- 直线拟合

    在博文[2]中,我们使用梯度下降法求解了单变量(特征)下的曲线拟合问题、多变量(特征)下的房屋价格拟合问题。 这些问题也可以用高级优化算法求解,具体到fminunc函数,关键在于求解损失函数costfunc。

    为类比博文[2],我尝试过用fminunc来求一元四次函数的拟合,但是costfunc的求解太繁琐了,最终放弃了。 本章以最基本的直线拟合来实践一下该fminunc函数。

    【数据集】:待拟合的直线设置为: y = 1 + x,数据集我直接通过给该直线上的点噪声获得。

图2.4  数据集生成

    通过给y值加一个SNR =10的高斯白噪声得到如右图所示的数据集。进一步地,将数据的顺序随机打乱,并选取2/3的数据作为训练集,其余为测试集。如下图所示:

图2.5  训练集和测试集

【模型与损失函数】:我们用线性模型来做回归:

                                                        (2-2)

    其损失函数设计为均方误差和:

                                          (2-3)

    式中,m为训练集的样本数。关于这里有不了解的,可以参考博文[2]。

【调用fminunc函数】:使用该fminunc函数的关键在于计算得到costfunc,式(2-3)就是costfunc,对(2-3)式拆解(公式插入有误,我这里直接贴图片):

    我们需要把全部的训练数据集代入式(2-4)!并最终求得各θ值对应的系数。 (试想如果是一元四次函数,上面的式子要复杂几倍不止,暂时没想到更简单的解法,所以我放弃了)。求得前述θ值后,按照图2.2所示类似的方法,代入对应的数据,得到结果如下:

图2.6  fminunc函数输出结果

    截距和系数几乎都为1,与我们预设的直线很接近,结果符合预期。将拟合得到的曲线与数据集画在一起,得到:

图2.7 回归结果(与全部数据集的对比)

    图中红色为拟合得到的直线。 结果符合预期。

三、总结

    本文对适用于机器学习里的回归、分类问题的高级优化算法做了简单的介绍,随后介绍了Matlab自带的非线性规划求解器:fminunc函数,并基于该函数对曲面最小值问题、直线回归问题进行了求解尝试。

    本文的内容很基础,后续如果接触和使用到更具体的算法我再在本文基础上补充。

四、参考资料

[1] [中英字幕]吴恩达机器学习系列课程_哔哩哔哩_bilibili

[2] 回归问题探讨与实践-CSDN博客

五、数据与代码链接

本文相关的代码请参考如下链接获取:

高级优化算法之fminunc函数实践博文对应的代码资源-CSDN文库

  

 

 

http://www.hkea.cn/news/118018/

相关文章:

  • 物业服务网站建设建立网站要多少钱一年
  • 中铁建设门户加长版廊坊百度提升优化
  • 最便宜的外贸网站建设电商平台运营方案
  • 做网站应该会什么问题网络营销软文范例500字
  • 摄影网课百度关键词优化查询
  • 打广告型的营销网站西安百度推广外包
  • 乌鲁木齐招聘网站建设一站式网络营销
  • 中小型网站建设服务淘宝数据分析工具
  • 梧州网站设计企业网站模板建站
  • 行政事业单位网站建设建议营销策划公司
  • 网络推广网站怎么做百度联盟广告点击一次收益
  • wordpress居中样式宁波seo网络推广外包报价
  • java做网站用到哪些技术网络营销的重要性与意义
  • 网络营销推广的作用谷歌seo什么意思
  • 免费网站建设解决方案郑州网络营销公司哪个好
  • 转转怎么做钓鱼网站税收大数据
  • 株洲专业网站排名优化深圳产品网络推广
  • 深圳美食教学网站制作如何免费搭建自己的网站
  • 兰州移动端网站建设广东整治互联网霸王条款
  • 彩票网站该怎么建设天津seo实战培训
  • 原平的旅游网站怎么做的新冠疫情最新情况最新消息
  • 网站开发软件著作权归谁seo外包
  • 小说网站的网编具体做哪些工作南宁网站快速排名提升
  • 承德网站设计seo互联网营销培训
  • 工信部网站备案查询 手机seo专员的工作内容
  • 淘宝活动策划网站视频营销成功的案例
  • 精准营销数据杭州排名优化软件
  • 中卫网站建站设计seo学习论坛
  • wordpress初始登录seo排名赚app靠谱吗
  • 软件外包保密协议seo相关岗位