matlab可以用

-Conjugate gradient
-BFGS
-L-BFGS
等优化后的梯度方法来求解优化问题。当feature过多时,最小二乘计算复杂度过高(O(n**3)),此时
这一些列优化版梯度下降算法就成为了解优化问题的更优选择。
它们的优点为:
不需要像对原始梯度下降那样手动选择学习速率α
一般比梯度下降收敛速度要快
相应的缺点为:比梯度下降要复杂得多
好在,我们可以直接用matlab内置函数进行计算。
例子如下:
我们需要输入cost function J 及其偏导数:

function [jVal, gradient]
           = costFunction(theta)

jVal =
(theta(1)-5)^2 + ...           (theta(2)-5)^2;

gradient = zeros(2,1);

gradient(1)
= 2*(theta(1)-5);
gradient(2) = 2*(theta(2)-5);

之后设置θ初始值及收敛条件

options = optimset(‘GradObj’, ‘on’, ‘MaxIter’, ‘100’);

initialTheta = zeros(2,1);

之后就可以通过调用

[optTheta, functionVal, exitFlag] ...

= fminunc(@costFunction, initialTheta, options);

来求解最优问题了。
注:返回值中的exitFlag表示是否收敛
 

使用matlab用优化后的梯度下降法求解达最小值时参数的更多相关文章

  1. OpenACC 梯度下降法求解线性方程的优化

    ▶ 书上第二章,用一系列步骤优化梯度下降法解线性方程组.才发现 PGI community 编译器不支持 Windows 下的 C++ 编译(有 pgCC 命令但是不支持 .cpp 文件,要专业版才支 ...

  2. 『科学计算_理论』优化算法:梯度下降法&牛顿法

    梯度下降法 梯度下降法用来求解目标函数的极值.这个极值是给定模型给定数据之后在参数空间中搜索找到的.迭代过程为: 可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步 ...

  3. 梯度下降法求解函数极大值-Matlab

    目录 目录题目作答1. 建立函数文件ceshi.m2. 这是调用的命令,也可以写在.m文件里3. 输出结果题外话 题目 作答 本文使用MATLAB作答 1. 建立函数文件ceshi.m functio ...

  4. 机器学习---用python实现最小二乘线性回归算法并用随机梯度下降法求解 (Machine Learning Least Squares Linear Regression Application SGD)

    在<机器学习---线性回归(Machine Learning Linear Regression)>一文中,我们主要介绍了最小二乘线性回归算法以及简单地介绍了梯度下降法.现在,让我们来实践 ...

  5. tensorflow实现svm多分类 iris 3分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)

    # Multi-class (Nonlinear) SVM Example # # This function wll illustrate how to # implement the gaussi ...

  6. tensorflow实现svm iris二分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)

    iris二分类 # Linear Support Vector Machine: Soft Margin # ---------------------------------- # # This f ...

  7. 梯度下降法原理与python实现

    梯度下降法(Gradient descent)是一个一阶最优化算法,通常也称为最速下降法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离 ...

  8. 梯度下降法(BGD、SGD)、牛顿法、拟牛顿法(DFP、BFGS)、共轭梯度法

    一.梯度下降法 梯度:如果函数是一维的变量,则梯度就是导数的方向:      如果是大于一维的,梯度就是在这个点的法向量,并指向数值更高的等值线,这就是为什么求最小值的时候要用负梯度 梯度下降法(Gr ...

  9. (3)梯度下降法Gradient Descent

    梯度下降法 不是一个机器学习算法 是一种基于搜索的最优化方法 作用:最小化一个损失函数 梯度上升法:最大化一个效用函数 举个栗子 直线方程:导数代表斜率 曲线方程:导数代表切线斜率 导数可以代表方向, ...

随机推荐

  1. redis性能指标

    1.当内存使用达到设置的最大阀值时,需要选择一种key的回收策略,可在Redis.conf配置文件中修改“maxmemory-policy”属性值. 若是Redis数据集中的key都设置了过期时间,那 ...

  2. redis基础学习

    redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.它提供了java ...

  3. linux工具之pmap

    1.pmap简介 pmap命令用来报告一个进程或多个进程的内存映射.可以使用这个工具确定系统是如何为服务器上的进程分配内存的.   例如查看ssh进程的内存映射:  

  4. ZenCart通过Contact Us接收垃圾邮件的过滤方案

    最近收到一些通过Contact Us进行垃圾外链群发的邮件,虽然可以通过在Contact Us增加验证码来解决,但不利于客户体验.所以我们可以通过简单的关键词过滤来实现,一般垃圾外链都含有“[url= ...

  5. 执行dlsym()函数出现: undefined symbol

    执行dlsym()函数出现: undefined symbol 执行dlsym()函数出现: undefined symbol 当这个问题出现的时候,可以检查产生so文件的cpp文件,看看是否已经用  ...

  6. Ubuntu下搜狗输入法乱码

    本文适用于Ubuntu 16.04,造冰箱的大熊猫@cnblogs 2018/10/10 参考<这里>,可以不用重新登录 这个问题时不时的出现,很烦人,最简单最粗暴的解决的方法是将&quo ...

  7. Controllers的使用

    代码 angularjs.html <!doctype html> <html> <head> <meta charset="UTF-8" ...

  8. 字符串之format整理

    format 用法 本文根据官方文档及自己理解整理,只整理出自己可以理解的部分,h因个人水平有限,难免有所错误和纰漏,欢迎批评指正. 格式{ [field_name] ["!" c ...

  9. [LOJ3106][TJOI2019]唱、跳、rap和篮球:DP+生成函数+NTT+容斥原理

    分析 令\(f(i)\)表示共\(i\)组同学讨论cxk的位置的方案数(不考虑其他位置上的人的爱好),这个数组可以很容易地通过依次考虑每个位置是否是四个人中最后一个人的位置来递推求解,时间复杂度\(O ...

  10. python学习之路(15)

    map/reduce Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on ...